1. OpenShift与微服务运行平台认知
在讨论“如何建设一个微服务运行平台”之前,必须先厘清两个基础问题:OpenShift 到底是什么,以及一个企业级微服务运行平台应当具备哪些关键能力。很多团队在选型阶段容易把 OpenShift 简单理解为“带界面的 Kubernetes”,或者把平台建设等同于“装一套容器编排软件”,这两种理解都会导致后续建设范围失控。本节从 OpenShift 的核心架构出发,梳理微服务运行平台的关键能力,再通过企业级容器平台选型对比,最终落到平台建设目标与范围的界定上。
一、OpenShift 核心架构
OpenShift 是 Red Hat 基于 Kubernetes 构建的企业级容器应用平台。它与 Kubernetes 的关系可以概括为:Kubernetes 提供容器编排内核,OpenShift 在其上叠加了面向企业生产环境的完整能力层。理解这一点,是理解整个平台建设逻辑的起点。
从架构分层看,OpenShift 可以划分为四个层次。最底层是基础设施层,包括物理机、虚拟机或公有云实例,以及操作系统(RHCOS,即 Red Hat Enterprise Linux CoreOS)。RHCOS 是专为容器运行设计的不可变操作系统,节点通过 Machine Config Operator 统一管理配置,避免人工登录节点修改系统导致环境漂移。
第二层是集群编排层,即 Kubernetes 核心组件:控制平面包含 kube-apiserver、etcd、kube-scheduler、kube-controller-manager;工作节点运行 kubelet、CRI-O 容器运行时和 kube-proxy。OpenShift 使用 CRI-O 替代 Docker 作为运行时,并通过 OVN-Kubernetes 提供网络与网络策略能力。
第三层是平台能力层,这是 OpenShift 区别于原生 Kubernetes 的核心价值所在。它包含:内置镜像仓库(Image Registry)、Source-to-Image 与 BuildConfig 构建体系、Routes 路由与 Ingress、OperatorHub 与 Operator 生命周期管理、基于 OAuth 的统一认证、RBAC 与 Security Context Constraints(SCC)安全约束、内置监控(Prometheus + Alertmanager)与日志(Loki/Elasticsearch)等。这些能力让平台具备“开箱可用”的生产属性。
第四层是应用与开发者层,包括 Web Console、oc CLI、Developer 视角、Pipelines(基于 Tekton 的 CI/CD)、Service Mesh(基于 Istio 的服务网格)、Serverless(基于 Knative)等,直接面向微服务的开发、交付与治理。
二、微服务运行平台的关键能力
微服务运行平台不是“能跑容器”就够了。一个真正支撑企业微服务生产运行的平台,至少需要具备以下六类关键能力,它们也是后续平台建设验收的核心维度。
第一,弹性调度与资源治理。平台需要支持基于 CPU、内存、QPS 或自定义指标的自动扩缩容(HPA/VPA),并能够通过 ResourceQuota 和 LimitRange 对命名空间进行资源配额约束。例如,为某业务命名空间设置 requests.cpu=4、limits.cpu=8,防止单个团队耗尽集群资源。
第二,服务发现与流量治理。微服务之间通过 Service 和 DNS 实现服务发现,通过 Service Mesh 实现熔断、限流、重试、超时和灰度路由。平台需要提供统一的入口网关(Routes/Ingress)和东西向流量治理能力。
第三,配置与密钥管理。ConfigMap 管理非敏感配置,Secret 管理敏感信息,并支持配置热更新与版本回滚。平台应避免把配置硬编码进镜像,实现“一次构建、多环境部署”。
第四,持续交付与发布策略。平台需要集成 CI/CD 流水线,支持滚动更新、蓝绿发布、金丝雀发布等策略,并能够与 GitOps 工具链(如 ArgoCD)对接,实现声明式交付。
第五,可观测性。包括指标(Metrics)、日志(Logging)和链路追踪(Tracing)三位一体。OpenShift 内置 Prometheus 监控和 Alertmanager 告警,配合 Loki 或 Elasticsearch 实现日志聚合,配合 Jaeger 实现分布式追踪。
第六,安全与多租户隔离。通过 Namespace 实现逻辑隔离,通过 RBAC 控制访问权限,通过 SCC 限制容器特权,通过 NetworkPolicy 控制 Pod 间网络访问,通过镜像扫描和签名确保供应链安全。
三、企业级容器平台选型对比
企业在建设微服务运行平台时,通常会在 OpenShift、原生 Kubernetes 发行版(如 RKE2、K3s)、公有云托管 Kubernetes(如 ACK、EKS、TKE)以及商业发行版(如 Rancher、Tanzu)之间做选择。选型的核心不是“哪个最强”,而是“哪个最匹配企业的运维能力、合规要求和成本预算”。
| 对比维度 | OpenShift | 原生 Kubernetes | 公有云托管 K8s |
|---|---|---|---|
| 开箱即用能力 | 高,内置 CI/CD、监控、日志、镜像仓库 | 低,需自行集成大量组件 | 中,云厂商提供部分托管能力 |
| 安全合规 | SCC、OAuth、镜像签名、FIPS 支持完善 | 需自行设计安全策略 | 依赖云厂商安全体系 |
| 运维复杂度 | 中,有 Operator 自动化但学习曲线陡 | 高,组件版本兼容需自行维护 | 低,控制面由云厂商托管 |
| 成本 | 订阅费用较高 | 软件免费,人力成本高 | 按量付费,长期成本需评估 |
| 适用场景 | 混合云、信创、强合规、多租户中大型企业 | 技术能力强、追求定制化的团队 | 已深度绑定某云厂商的企业 |
需要特别说明的是,选型对比表中的“成本”不能只看软件许可费。原生 Kubernetes 虽然软件免费,但企业需要投入大量人力维护 etcd 备份、证书轮换、版本升级、监控告警集成等工作,三年总拥有成本(TCO)往往并不低于 OpenShift 订阅。因此,选型应基于 TCO 而非采购单价。
四、平台建设目标与范围界定
平台建设最容易失败的原因不是技术选型错误,而是范围失控。建议在项目启动阶段就明确“建设目标”和“范围边界”两个清单。
建设目标应当是可衡量的。例如:支撑 200 个微服务实例稳定运行;应用平均部署时间从 30 分钟缩短到 5 分钟以内;生产环境故障平均恢复时间(MTTR)控制在 15 分钟以内;平台可用性达到 99.95%。这些目标将直接决定集群规模、高可用架构和运维投入。
范围界定则需要明确“做什么”和“不做什么”。建议至少界定以下边界:
- 纳入范围:容器集群的规划与部署、命名空间与租户模型设计、镜像仓库与构建流水线、基础监控告警、日志采集、入口网关、RBAC 权限体系、平台运维 SOP。
- 暂不纳入:业务应用的代码改造、业务数据库的容器化、遗留单体应用的迁移、业务侧的 APM 深度定制、跨集群多活容灾(可作为二期目标)。
综合来看,OpenShift 的核心价值在于它把 Kubernetes 之上大量“企业生产必需但原生不提供”的能力做了产品化封装。理解四层架构,就能理解平台建设的工作面在哪里;理解六类关键能力,就能理解验收标准是什么;理解选型对比和范围界定,就能理解项目边界在哪里。这三件事想清楚了,后续的集群规划、租户设计、流水线建设和运维体系才有稳固的出发点。