1. OpenShift版本体系与升级治理全景
在OpenShift容器平台(OCP)的运维与治理工作中,版本管理不是简单的“打补丁”,而是一套贯穿集群全生命周期的治理体系。理解这套体系,需要先回答三个问题:OCP的版本号到底表达了什么?它与上游Kubernetes是什么关系?一个集群从安装到退役,会经历哪些生命周期阶段、又该沿哪条通道升级?本节围绕这三个问题建立整体认知框架。
一、OCP版本号语义:三段数字各有含义
OCP采用语义化版本形式,写作 X.Y.Z,例如 4.14.12。三段数字并非等权:
- X(主版本):代表平台代际。OCP 3.x 与 4.x 在架构上差异巨大(4.x 引入RHCOS、Cluster Version Operator、机器配置池等),主版本之间不支持原地升级,必须重建集群。
- Y(次版本,Minor):代表功能特性版本,如 4.12、4.13、4.14。次版本升级是运维中最常见的动作,通常每约16周发布一个新次版本,每个次版本有独立的支持周期。
- Z(补丁版本,Patch):代表同一功能版本内的缺陷修复与安全补丁,如 4.14.5 → 4.14.12。补丁升级风险最低,是日常维护的主要形式。
需要特别区分两个概念:版本号与发布镜像(Release Image)。OCP 4.x 的每一次发布都对应一个不可变的 release image,例如 quay.io/openshift-release-dev/ocp-release:4.14.12-x86_64。集群升级的本质,就是把控制面与节点的目标版本切换到另一个 release image,由 Cluster Version Operator(CVO)驱动完成。因此“升级到 4.14.12”在技术上等价于“让集群收敛到该 release image 所声明的期望状态”。
二、OCP与Kubernetes的版本对应关系
OCP 是 Kubernetes 的企业级发行版,每个 OCP 次版本都绑定一个特定的 Kubernetes 次版本。例如 OCP 4.12 对应 Kubernetes 1.25,4.13 对应 1.26,4.14 对应 1.27。这种绑定意味着:你不能单独升级 OCP 中的 Kubernetes 组件,Kubernetes 版本随 OCP 版本一起演进。
这对使用原生 Kubernetes API 或依赖特定 API 版本的应用有直接影响。Kubernetes 每个次版本都会弃用(deprecate)并最终移除(remove)部分 API,例如 extensions/v1beta1 的 Ingress 在 1.22 被移除。因此升级 OCP 前,必须检查工作负载是否使用了即将被移除的 API。OCP 提供了 oc adm upgrade 与升级前的 API 检查能力,也可借助 kubectl convert、oc get --raw /metrics 中的 API 使用指标来评估影响。
三、升级通道:稳定、快速与候选
OCP 通过升级通道(Update Channel)控制集群能看到哪些目标版本。常见通道有三类:
stable-X.Y:稳定通道,只推荐经过充分验证的补丁版本,适合生产环境。fast-X.Y:快速通道,更早获得新补丁,适合愿意承担一定风险的团队。candidate-X.Y:候选通道,包含尚未正式发布的版本,仅用于测试。
通道决定了“可见版本集合”,而升级路径(Upgrade Path)决定了“允许的跳转”。OCP 不支持跨次版本跳跃,例如不能从 4.12 直接升到 4.14,必须 4.12 → 4.13 → 4.14 逐级进行。补丁版本之间通常可以跨多个 Z 版本,但也要遵循官方推荐的路径图(Upgrade Graph)。
stable-X.Y 通道,并在升级前用 oc adm upgrade --include-not-recommended 查看是否存在被标记为“不推荐”的版本,避免踩到已知问题版本。四、生命周期阶段:从安装到退役
每个 OCP 次版本都遵循明确的生命周期:发布 → 全面支持(General Availability)→ 维护支持(Maintenance)→ 延长更新支持(EUS,仅部分版本)→ 生命周期结束(EOL)。以 4.14 为例,其全面支持期约6个月,之后进入维护支持,仅接收关键缺陷与安全修复;到达 EOL 后不再发布任何补丁,集群将暴露在未修复漏洞中。
因此版本治理的核心节奏是:在次版本进入维护支持前完成升级规划,在 EOL 前完成升级落地。对于希望减少升级频率的用户,可选择 EUS 版本(如 4.12、4.14、4.16),EUS 版本支持从上一个 EUS 直接升级,从而把“每16周升一次”拉长为“每约一年升一次”。
五、版本治理全景图
下图把版本号语义、Kubernetes 对应、升级通道与生命周期阶段整合到一条时间轴上,帮助建立整体认知:
六、治理动作:从认知到落地
建立全景认知后,日常治理可归纳为四个持续动作:
- 盘点现状:用
oc get clusterversion查看当前版本与通道,用oc adm upgrade查看可用目标版本。 - 评估影响:对照目标 OCP 版本对应的 Kubernetes 版本,检查工作负载是否使用将被移除的 API;核对 Operator 与 CSI 驱动的兼容矩阵。
- 规划路径:确认当前版本到目标版本是否满足逐级或 EUS 跨级规则,避开被标记为不推荐的版本。
- 执行与验证:升级后检查 CVO 状态、集群 Operator 健康度、节点就绪状态与关键业务 Pod 的可用性。
candidate 通道或使用 --force 跳过推荐路径。跨次版本跳跃或使用未验证版本,可能导致控制面组件无法收敛,甚至需要重建集群。