升级 global 集群
由一个 global 集群 和一个或多个 业务集群 组成。必须先升级 global 集群,然后才能升级任何业务集群。
本文将指导你完成 global 集群的升级操作。
如果 global 集群配置了 global DR(Disaster Recovery) 解决方案,请严格遵循 global DR 操作步骤。否则,请遵循 标准操作步骤。
标准操作步骤
上传镜像
将核心软件包复制到 global 集群的任意控制平面节点上。解压软件包,然后进入解压后的目录。
-
如果 global 集群使用的是内置 registry,请运行:
-
如果 global 集群使用的是外部 registry,还需要提供 registry 地址:
如果你计划在升级 global 集群时同时升级 Operator 和 Cluster Plugin,可以提前将它们的镜像推送到 global 集群的 registry。 批量上传说明请参见 仅从目录中的所有软件包推送镜像。
上传镜像通常需要大约 2 小时,具体取决于你的网络和磁盘性能。
如果你的平台配置了 global 灾难恢复(DR),请记住,备用 global 集群也需要上传镜像。请据此安排维护窗口。
使用 violet 向备用集群上传软件包时,必须指定参数 --dest-repo <备用集群 VIP 地址>。
否则,软件包将被上传到 主集群 的镜像仓库,从而导致备用集群无法安装或升级扩展组件。
另外,请注意,必须提供备用集群镜像仓库的认证信息,或者提供 --no-auth 参数。
有关 violet push 子命令的详细信息,请参阅 上架软件包。
触发升级
镜像上传完成后,运行以下命令以开始升级过程:
请等待脚本执行完成后再继续。
如果你已经提前将 Operator 和 Cluster Plugin 镜像推送到 global 集群的 registry,随后可以按照 仅从目录中的所有软件包创建 CR 执行。运行该命令后,请等待大约 10–15 分钟,直到功能组件出现升级通知。之后,你就可以在后续升级步骤中同时升级 Operator 和 Cluster Plugin。
-
升级 global 集群 时,在 仅从目录中的所有软件包创建 CR 步骤中,不要使用
--clusters参数在业务集群上创建 CR。 否则,后续业务集群升级可能会出现升级失败。 -
如果你是从 3.18 或 4.0 升级,并且目录中包含 Build of TopoLVM 软件包,则必须在执行 仅从目录中的所有软件包创建 CR 步骤之前将其移除。 完成该步骤后,请单独为 TopoLVM 创建 CR,并确保包含
--target-catalog-source "platform"参数。
(条件)移除 TopoLVM
如果你是从 3.18 升级,并且已安装 Build of TopoLVM,则必须在继续升级之前备份并删除相关 TopoLVM 资源。
否则,集群升级将失败。
在待升级集群的任意控制平面节点上运行以下命令:
然后,在global 集群的任意控制平面节点上运行以下命令:
升级 global 集群
如果你是从 3.16 或 3.18 升级,并且平台已安装 Data Services,则在升级集群时还必须升级相关扩展组件。
有关详细信息,请参阅 升级 Data Services。
- 登录 global 集群的 Web Console,并切换到 Administrator 视图。
- 导航到 Clusters > Clusters。
- 单击
global集群以打开其详情视图。 - 转到 Functional Components 选项卡。
- 单击 Upgrade 按钮。
在对话框中查看可用的组件更新,并确认继续。
- Kubernetes 版本升级是可选的。不过,由于无论是否升级都可能发生服务中断,我们建议一并升级 Kubernetes,以避免多次维护窗口。
- 如果 global 集群中安装了 Alauda Container Platform GitOps 插件,并且升级后其 pod 运行异常,请参阅 升级 Alauda Container Platform GitOps。
(条件)升级 TopoLVM
如果你是从 3.18 升级,并且已安装 Build of TopoLVM,且你已经完成了 移除 TopoLVM 步骤。
请在待升级集群的控制平面节点上继续运行以下命令,以升级 TopoLVM:
运行命令后,请等待大约 5–10 分钟。 TopoLVM 组件将自动升级,并反映在 Web Console 中。
安装 Product Docs 插件
Alauda Container Platform Product Docs 插件可用于在平台内访问产品文档。平台中的所有帮助链接都会指向该文档。如果未安装此插件,单击平台中的帮助链接将导致 404 访问错误。
从 4.0 开始,内置产品文档已拆分为 Alauda Container Platform Product Docs 插件。如果你是从 3.x 升级,则需要按照以下步骤安装此插件:
-
导航到 Administrator。
-
在左侧边栏中,单击 Marketplace > Cluster Plugins,然后选择
global集群。 -
找到 Alauda Container Platform Product Docs 插件并单击 Install。
安装 Alauda Container Platform Cluster Enhancer 插件
此步骤仅用于确保已安装 cluster enhancer 插件。如果你发现该 cluster plugin 已经安装,则无需执行任何操作。
-
导航到 Administrator。
-
在左侧边栏中,单击 Marketplace > Cluster Plugins,然后选择
global集群。 -
找到 Alauda Container Platform Cluster Enhancer 插件并单击 Install。
(条件)安装 Service Mesh Essentials
如果已安装 Service Mesh v1,在升级业务集群之前,请先参阅 Alauda Service Mesh Essentials Cluster Plugin 文档。
升级后
global DR 操作步骤
验证数据一致性
请按照常规的 global DR 检查流程,确保 备用 global 集群 中的数据与 主 global 集群 一致。
如果检测到不一致,请不要在下一步卸载 etcd 同步插件,并在继续之前联系技术支持。如果在备用 global 集群缺少主集群持有的数据时卸载该插件,可能会导致 owner references 解析错误,并且可能会删除业务集群节点的 Machine 对象——包括 immutable-OS 集群,这会销毁其底层虚拟机。
在两个集群上运行以下命令,确保没有 Machine 节点处于非运行状态:
如果存在此类节点,请先联系技术支持进行处理,然后再继续。
卸载 etcd sync 插件
- 通过 IP 或 VIP 访问 主集群 的 Web Console。
- 切换到 Administrator 视图。
- 导航到 Catalog > Cluster Plugin。
- 务必确认你已经切换到
global集群。 - 找到 EtcdSync 插件并执行 Uninstall。等待卸载完成。
上传镜像
在备用集群和主集群上都执行 上传镜像 步骤。
详情请参见 标准操作步骤中的上传镜像。
升级备用集群
执行升级时需要访问备用集群的 Web Console。
在继续之前,请确认备用集群的 ProductBase 资源已在 spec.alternativeURLs 中正确配置了集群 VIP。
如果没有,请按以下方式更新配置:
在备用集群上,按照 标准操作步骤 中的步骤完成升级。
升级主集群
备用集群升级完成后,在主集群上继续执行 标准操作步骤。
重新安装 etcd sync 插件
在重新安装之前,请确认端口 2379 已从两个 global 集群 VIP 正确转发到各自的控制平面节点。
重新安装步骤:
- 通过 IP 或 VIP 访问 备用 global 集群 的 Web Console。
- 切换到 Administrator 视图。
- 进入 Marketplace > Cluster Plugins。
- 选择
global集群。 - 找到 Alauda Container Platform etcd Synchronizer,单击 Install,并提供所需参数。
安装验证:
检查同步状态
运行以下命令以验证同步状态:
输出说明:
"LOCAL ETCD missed keys:"– 这些键存在于主集群中,但在备用集群中缺失。通常在 pod 重启后可以恢复。"LOCAL ETCD surplus keys:"– 这些键存在于备用集群中,但在主集群中不存在。删除前请与运维团队确认。