在 DR 环境中升级 global 集群
当环境同时包含主 global 集群和备用 global 集群时,请使用此操作步骤。DR 特定步骤是在 Upgrade the global cluster 中标准 CVO 工作流的基础上附加的。
目录
升级操作步骤升级操作步骤
在升级前验证 DR 环境
按照常规的 global DR 检查操作步骤,确保 备用 global 集群 中的数据与 主 global 集群 保持一致。有关 DR 拓扑和同步工作流的背景信息,请参见 Global Cluster Disaster Recovery。
如果检测到不一致,请不要在下一步中卸载 etcd 同步插件,并在继续之前联系技术支持。当备用 global 集群缺少主集群持有的数据时,卸载该插件可能会导致 owner reference 解析错误,并且工作负载集群的 Machine 对象——包括 immutable-OS 集群,在这些集群中这会销毁其底层虚拟机——可能会被删除。
在 两个 global 集群上运行以下命令,确保没有处于非运行状态的 Machine 节点:
如果存在此类节点,请先解决这些问题再继续。
从备用 global 集群卸载 etcd 同步插件
- 通过 IP 或 VIP 访问 备用 global 集群 的 Web Console。
- 切换到 Administrator 视图。
- 导航到 Marketplace > Cluster Plugins 并选择
global集群。 - 找到 etcd Synchronizer 并将其卸载。
- 等待卸载完成后再继续。
在两个 global 集群上同步升级工件
在备用 global 集群和主 global 集群上都完成 Sync upgrade artifacts。在两个集群上使用相同的 registry 类型和完全一致的目标版本负载。对于外部 registry,请为两个 global 集群使用的每个 registry endpoint 完成两种上传模式。
升级备用 global 集群
如果您将使用备用 global 集群上的 Web Console,请验证备用集群 ProductBase 的 spec.alternativeURLs 中包含备用 VIP:
同步完成后,在 备用 global 集群 上执行剩余的标准工作流步骤:
- 运行预检检查。
- 部署 cluster version operator。
- 请求升级。
- 观察执行过程,直到备用 global 集群达到目标版本。
升级主 global 集群
在备用 global 集群达到目标版本后,在 主 global 集群 上执行剩余的标准工作流步骤:
- 运行预检检查。
- 部署 cluster version operator。
- 请求升级。
- 观察执行过程,直到主 global 集群达到目标版本。
重新安装 etcd 同步插件并验证同步状态
在重新安装插件之前,请验证在使用端口转发模式时,端口 2379 是否已从两个 global 集群的 VIP 正确转发到各自的控制平面节点。如果备用 global 集群能够直接访问活动 global 集群,则不需要通过负载均衡器进行端口转发。
从活动集群获取活动 global 集群 API server 的 bearer token,然后使用它在备用集群上创建或更新 etcd-sync-active-cluster-token Secret。请仅将 token 保留在当前 shell 中,并在创建 Secret 后将其清除。
在备用集群上运行:
要重新安装该插件:
- 通过其 VIP 访问 备用 global 集群 的 Web Console,并切换到 Administrator 视图。
- 导航到 Marketplace > Cluster Plugins 并选择
global集群。 - 找到 etcd Synchronizer,单击 Install,并配置所需参数。
配置插件时:
- 将 Active Global Cluster VIP 设置为活动 global 集群的 VIP。
- 当端口
2379未通过负载均衡器转发时,请正确设置 Active Global Cluster ETCD Endpoints。 - 将 Standby Cluster ETCD Endpoints 设置为备用集群 etcd 地址。除非本地 etcd service 通过不同的 endpoint 暴露,否则请使用默认值。
- 将 Active Global Cluster Token Secret 设置为
etcd-sync-active-cluster-token。 - 使用 Data Check Interval 的默认值。
- 除非您正在排查问题,否则请保持 Print detail logs 处于禁用状态。
在重新安装期间,系统会在 etcd-sync Deployment 启动之前运行 etcd-sync-bootstrap Job。验证 bootstrap Job 和运行时资源:
验证备用 global 集群上的同步 Pods 和当前 leader:
如果需要重新同步具有 ownerReference 依赖关系的资源,请在出现 Start Sync update 后重新创建当前 leader Pod:
检查同步状态:
LOCAL ETCD missed keys:这些键存在于主 global 集群中,但在备用集群中缺失。通常在重启当前etcd-syncleader Pod 后可以解决。LOCAL ETCD surplus keys:这些键存在于备用 global 集群中,但在主集群中不存在。在删除这些键之前,请与您的运维团队一起审查。
验证成功后,从插件设置或 release values 中移除任何剩余的旧式纯 token 配置。如果活动集群 token 或远程 etcd-ca 之后发生更改,请再次运行插件升级或重新安装工作流,以便 etcd-sync-bootstrap 刷新运行时凭据和证书。
在两个 global 集群都以目标版本保持健康且同步已恢复后,请继续执行 Upgrade Workload Clusters 或 Upgrade Validation。