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