升级业务集群的发行版

升级路径

此页面适用于两种节点操作系统。对于使用非 Alauda OS 的业务集群,此操作步骤还会原地升级 Kubernetes;操作完成后,集群升级即告完成。对于使用 Alauda OS 的业务集群,请先完成此页面上的操作,然后继续执行在 Alauda OS 上升级 Kubernetes,通过替换节点来推出 Kubernetes。

global 层已达到目标 ACP 发行版后,即可升级业务集群。如果 global 层已达到该发行版,则无需再次升级。

业务集群升级采用与 global 集群相同的基于 CVO 的工作流:确认前提条件、运行预检、请求升级并观察执行情况。此工作流还有两条额外规则:

  • 如果平台使用 global DR,则 standby 和 primary global 集群都必须达到目标发行版,然后才能将任何业务集群升级到该发行版。
  • 通常只有在 global 层已达到相同发行版后,目标版本才会对业务集群开放。

业务集群升级的阶段安排与 global 集群升级类似,但流程更短。业务集群没有自己的 cluster version operator — CVO 在 global 集群上运行,并集中驱动业务集群升级 — 因此业务集群本身不需要执行制品同步或 CVO 部署步骤:

阶段时间操作
1. 预检升级窗口前 1–2 周确认前提条件并运行 upgrade.sh --cluster=<cluster> --preflight;在升级窗口开启前解决所有阻塞项。
2. 升级维护窗口期间请求升级并观察执行情况,直到集群达到目标版本。

工作流

确认业务集群前提条件

请求升级前,请确认:

  • 业务集群版本低于当前 global 集群版本。
  • global 层已达到目标 ACP 发行版。
  • 在 global DR 环境中,standby 和 primary global 集群都已达到目标发行版。

确保 Aligned operator 软件包可用

升级 global 集群中推荐的做法是在 global 集群升级窗口期间,将 operator 软件包推送到每个 集群。如果已遵循此建议,业务集群就已拥有所需的全部 operator 软件包,可以跳过本节。

集群插件无需针对每个业务集群单独发布。通过 upgrade.sh 或 violet 提供给 global 层的集群插件,可在平台上的所有集群中安装和升级。

如果 global 窗口期间未向此业务集群推送 operator 软件包(例如,该集群在 global 窗口期间处于离线状态,或是在之后才添加的),请在提交升级请求前,为此业务集群上安装的每个 Aligned operator 推送目标版本的软件包:

violet push <path/to/operator-package> \
  --platform-address "https://<your-platform-domain>" \
  --platform-token "<platform_token>" \
  --clusters "<workload-cluster-name>"

只需推送此业务集群上实际安装的 Aligned operator 软件包。提供给 global 层的 Aligned 集群插件软件包对所有业务集群都可用,无需针对每个集群单独发布。

如果已安装的 Aligned operator 的目标软件包不可用,CVO 可能会等待匹配的目标 InstallPlan,随后在重试现有请求时报告错误。请检查 operator 的 catalog、Subscription、InstallPlan 和 ModuleInfo;使用上述命令发布缺失的软件包,或修正报告的 catalog 或 registry 问题。继续观察现有请求,无需再次提交。此业务集群上未安装的 Aligned operator 软件包不会阻塞升级。

运行预检

时间:维护窗口前 1–2 周,以便在窗口开启前留出时间解决所有阻塞项。

对目标集群以预检模式运行 upgrade.sh:

bash upgrade.sh --cluster=<cluster> --preflight

预检为只读操作,只验证升级就绪情况,不会更改集群状态。

预检会返回两部分结果:

输出用途
Summary显示总体结果、当前版本、目标版本和目标镜像。
Checks显示各项验证的结果。

如果预检未通过,在解决所有阻塞项之前,请勿提交升级请求。

有关预检阻塞项的处理模式,请参阅升级故障排除。

请求升级

时间:维护窗口期间,且预检通过之后。

通过以下任一入口请求升级。这些入口功能相同,请根据您的运维模式选择合适的入口。

平台在 Web Console 中提供两种集群管理界面。Web Console 是平台内置的界面,也是默认入口。Web Console (Fleet Essentials) 是较新的集群管理界面,以独立集群插件的形式交付,使用前必须先安装。

Web Console
Web Console (Fleet Essentials)
ACP CLI

这是内置的集群管理界面。业务集群升级使用与 global 集群升级相同的页面,但页面打开时选择的是业务集群,而不是 global。

请求升级需要对目标集群的 ClusterVersionShadow 和 ResourcePatch 资源具有更新权限。

  1. 在左侧导航栏中,单击 Clusters > Clusters,然后单击业务集群。

  2. 打开 Functional Components 选项卡,然后单击 Upgrade。

    当没有可升级的版本(No upgradable version)、已有升级正在运行(Upgrading)或集群运行状况不佳(Cluster Abnormality)时,此按钮将被禁用。global 层达到目标发行版之前,业务集群不会有可升级的版本。

  3. 在 Personalized Configuration Confirmation 步骤中,检查列出的配置,然后单击 Acknowledge。

    仅当集群包含个性化配置时才会显示此步骤,包括自定义的 ModuleInfo、自定义的 ClusterModule 或 ResourcePatch。如果集群不包含这些配置,则不会显示此步骤,页面会直接打开确认表单。

  4. 在 Confirm Component Upgrade 步骤中,检查 Current Version 和 Target Version。

    对于业务集群,目标版本是 global 层已达到的发行版,无法在此界面中手动选择。

  5. 单击 Upgrade,然后在 Are you sure you want to upgrade the cluster version? 对话框中确认。

默认开启维护模式,且会应用于整个平台

此确认对话框与 global 集群升级共用,打开时已启用 Maintenance mode。此开关设置的是平台范围的维护模式,而非业务集群的设置:启用后,非平台管理员用户将无法访问整个平台上的功能,并会看到 Platform maintenance announcements 中的文本。除非您打算在此次业务集群升级期间限制整个平台,否则请在提交前关闭此开关。

提交请求后,页面会返回 Functional Components 选项卡,并显示 The upgrade has been initiated. It may take 5~10 minute for the status to update.

观察进度

提交升级请求后,使用 cvsh.status 跟踪当前版本、目标版本、预检结果、阶段和历史记录:

kubectl get cvsh <cluster> -n cpaas-system
kubectl get cvsh <cluster> -n cpaas-system -o yaml

如果当前 ACP 上下文指向目标业务集群,也可以查看 CLI 报告的状态:

# Show summary, preflight, and stage progress for the target cluster upgrade
ac adm upgrade status

有关 ac adm upgrade status 输出(预检和阶段解读)的详细说明,请参阅升级集群。

如果升级报告 Stalled=True,请使用升级故障排除。缺失的 Aligned operator 软件包与集群插件软件包有不同的恢复路径。

上述命令用于跟踪集群级(Core 和 Aligned)升级。若要观察单个插件或 operator 模块(例如升级 Agnostic 插件时),请读取其 ModuleInfo:

kubectl get moduleinfo -l cpaas.io/cluster-name=<cluster> \
  -o custom-columns='MODULE:.metadata.labels.cpaas\.io/module-name,CURRENT:.status.version,TARGET:.spec.version,NEW:.status.availableVersions[0].version,PHASE:.status.phase'

当模块的 status.phase 为 Running,且 status.version 等于目标版本时,即表示模块已达到目标版本。

从 Marketplace 升级 Agnostic 插件

CVO 会驱动 Core 和 Aligned 插件。Agnostic 插件不在 CVO 的范围内,必须在此业务集群达到目标发行版后逐一升级。

对于此业务集群上正在使用的每个 Agnostic 插件:

  1. 在 Web Console 中,切换到 Administrator 视图。
  2. 对于 Agnostic 集群插件,导航到 Marketplace > Cluster Plugins;对于 Agnostic operator,导航到 operator 工作流。
  3. 选择目标插件或 operator,然后触发升级。

每个 Agnostic 插件是否需要在此窗口期间升级,取决于其自身的 Kubernetes 兼容性 — 请查看插件的 release notes,确认其与业务集群已升级到的新 Kubernetes 版本的兼容性。

如果 Marketplace 未向此业务集群提供 operator 的目标版本,请先按照确保 Aligned operator 软件包可用中的说明处理该 operator,然后重试 Marketplace 升级。

验证升级

业务集群及其正在使用的 Agnostic 插件均达到目标版本后,请完成升级验证。如果业务集群使用 Alauda OS,请先完成Alauda OS 上的 Kubernetes 升级。

相关文档