升级 global 集群
由一个global 集群和一个或多个工作负载集群组成。必须先升级 global 集群,然后才能升级任何工作负载集群。
本文将引导你完成 global 集群的升级操作步骤。
如果 global 集群配置了global DR(灾难恢复) 解决方案,请严格按照global DR 操作步骤执行。否则,请按照标准操作步骤执行。
标准操作步骤
上传镜像
将核心软件包复制到 global 集群的任意控制平面节点。解压软件包,并在解压后的目录中执行 cd。
-
如果 global 集群使用内置 registry,请运行:
-
如果 global 集群使用外部 registry,还需要提供 registry 地址:
如果计划在升级 global 集群时升级 Operator 和集群插件,请提前将相应的软件包推送到相应集群的 registry。 有关批量上传的说明,请参阅一次性推送所有软件包。
上传镜像通常需要约 2 小时,具体取决于网络和磁盘性能。
如果平台配置了 global 灾难恢复(DR),请记住,备用 global 集群也需要上传镜像。请务必合理规划维护时段。
有关 violet push 子命令的详细信息,请参阅上架软件包。
触发升级
镜像上传完成后,运行以下命令以启动升级流程:
请等待脚本运行完成后再继续。约 10–15 分钟后,功能组件选项卡中的升级按钮将可用。随后,你可以按照以下升级说明升级 Operator 和集群插件。
ACP 4.2.1 中的已知问题:
此问题仅影响从 ACP 4.2.0 升级到 4.2.1 的操作,并将在 ACP 4.2.2 中修复。此问题仅适用于集群插件,不影响 Operator。
运行 bash upgrade.sh --skip-sync-image 后,当功能组件选项卡中的升级按钮可用时,你可能会发现 Alauda Container Platform Base 等集群插件的目标版本显示为较低版本。
需要采取的操作: 你必须手动将这些集群插件的目标更改为不升级。否则,集群插件可能会被降级到较旧版本。
升级 global 集群
- 登录 global 集群的 Web Console,并切换到管理员视图。
- 前往集群 > 集群。
- 点击
global集群,打开其详细信息视图。 - 前往功能组件选项卡。
- 点击升级按钮。
在对话框中查看可用的组件更新,并确认以继续。
- 如果 global 集群中安装了 Alauda Container Platform GitOps 插件,并且升级后其 Pod 运行异常,请参阅 升级 Alauda Container Platform GitOps。
ACP 4.2.1 中的已知问题:
此问题仅影响从 ACP 4.2.0 升级到 4.2.1 的操作,并将在 ACP 4.2.2 中修复。此问题仅适用于集群插件,不影响 Operator。
在功能组件选项卡中完成升级后,集群插件的升级按钮可能仍显示为可点击状态。
请勿再次点击集群插件的升级按钮。如果点击,你会发现已升级到新补丁版本的集群插件,其目标版本显示为较低版本。再次升级会导致这些集群插件被降级到较旧版本。
安装 Alauda Container Platform Cluster Enhancer Plugin
此步骤仅用于确保已安装集群增强插件。如果发现已安装此集群插件,则无需执行任何操作。
-
前往管理员。
-
在左侧边栏中,点击Marketplace > 集群插件,然后选择
global集群。 -
找到 Alauda Container Platform Cluster Enhancement 插件(对于重命名前发布的软件包,该插件显示为 Alauda Container Platform Cluster Enhancer),然后点击安装。
(有条件)升级 Service Mesh Essentials
如果已安装 Service Mesh v1,请在升级工作负载集群前参阅 Alauda Service Mesh Essentials Cluster Plugin 文档。
升级后
global DR 操作步骤
验证数据一致性
按照常规的 global DR 检查操作步骤,确保备用 global 集群中的数据与主 global 集群一致。
如果检测到不一致,请勿在下一步卸载 etcd sync 插件,并在继续操作前联系技术支持。在备用 global 集群缺少主集群所持有的数据时卸载该插件,可能导致所有者引用解析不正确,并且工作负载集群节点 Machine 对象可能被删除,其中包括 immutable-OS 集群;对于此类集群,删除对象会破坏其后端虚拟机。
在两个集群上运行以下命令,确保没有 Machine 节点处于非运行状态:
如果存在任何此类节点,请联系技术支持,在继续操作前解决这些问题。
卸载 etcd sync 插件
- 通过 IP 或 VIP 访问备用集群的 Web Console。
- 切换到管理员视图。
- 导航至Marketplace > 集群插件。
- 确保已切换到
global集群。 - 找到 Alauda Container Platform Global Cluster Disaster Recovery 插件(对于重命名前发布的软件包,该插件显示为 Alauda Container Platform etcd Synchronizer),然后点击卸载。等待卸载完成。
上传镜像
在备用集群和主集群上均执行上传镜像步骤。
有关详细信息,请参阅标准操作步骤中的上传镜像。
升级备用集群
必须访问备用集群的 Web Console 才能执行升级。
在继续操作前,验证备用集群的 ProductBase 资源是否已在 spec.alternativeURLs 下正确配置集群 VIP。
如果未正确配置,请按如下方式更新配置:
在备用集群上,按照标准操作步骤完成升级。
升级主集群
备用集群升级完成后,在主集群上按照标准操作步骤继续操作。
重新安装 etcd sync 插件
重新安装前,验证端口 2379 是否已从两个 global 集群 VIP 正确转发到其控制平面节点。
重新安装:
- 通过 IP 或 VIP 访问备用 global 集群的 Web Console。
- 切换到管理员视图。
- 转到Marketplace > 集群插件。
- 选择
global集群。 - 找到 Alauda Container Platform Global Cluster Disaster Recovery(对于重命名前发布的软件包,该插件显示为 Alauda Container Platform etcd Synchronizer),点击安装并提供所需参数。
验证安装:
检查同步状态
运行以下命令以验证同步状态:
输出说明:
"LOCAL ETCD missed keys:"– 主集群中存在密钥,但备用集群中缺少这些密钥。重启 pod 后通常可以解决此问题。"LOCAL ETCD surplus keys:"– 备用集群中存在密钥,但主集群中不存在这些密钥。删除前请与运维团队一起检查这些密钥。