本文档介绍了如何将集群从 1.32 版更新或升级为高级集群。
前提条件
gkectl版本必须与目标集群版本相同。- 如果需要,请参阅
下载
gkectl以获取 受支持的gkectl版本。
- 如果需要,请参阅
下载
在更新或升级到高级集群之前,请务必先诊断集群:
- 在管理员集群和用户集群上运行
gkectl diagnose cluster,以确保它们健康状况良好。 - 如果该命令报告任何错误或警告,请先解决这些错误或警告,然后再开始更新或升级到高级集群。
- 在管理员集群和用户集群上运行
确保您的集群仅使用 推荐的功能。
在开始更新或升级之前,请验证您的集群是否未使用任何高级集群不支持的功能。如果有任何不支持的功能处于活跃状态,请先使用更新功能将其停用。
- 虽然高级集群上需要高可用性 (HA) 用户集群,但您仍然可以按照本指南将非高可用性用户集群更新或升级为高可用性高级集群。
您必须先将管理员集群更新或升级为高级集群,然后才能更新或升级任何用户集群。
- 关于
cert-manager安装:cert-manager会自动安装在高级集群上。当您从非高级集群迁移到高级集群时,集成的cert-manager会自动替换任何客户安装的cert-manager版本。在更新或升级到高级集群之前,请确保您没有将关键的自定义配置或功能应用于现有的cert-manager。如需了解详情,请参阅升级到cert-manager与高级集群捆绑。
将管理员集群更新或升级为高级集群
更新
诊断集群,确保其健康状况良好:
gkectl diagnose cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG- 如果该命令报告任何错误或警告,请参阅 诊断集群问题 并解决这些问题,然后再继续。
为高级集群做好准备:
gkectl prepare \ --bundle-path BUNDLE_PATH \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --advanced-cluster替换以下内容:
BUNDLE_PATH:软件包文件的路径。此文件位于/var/lib/gke/bundles/中的管理员工作站上。例如:/var/lib/gke/bundles/gke-onprem-vsphere-1.32.0-gke.1085-full.tgzADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径
将管理员集群配置文件中的
enableAdvancedCluster设置为true。将管理员集群更新为高级集群:
gkectl update admin \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config ADMIN_CLUSTER_CONFIG \ --reuse-bootstrap-cluster替换以下内容:
ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径ADMIN_CLUSTER_CONFIG:管理员集群配置文件的路径。
该命令将重新创建管理员集群中的所有节点。
升级
根据需要 升级管理员工作站。
诊断集群,确保其健康状况良好:
gkectl diagnose cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG- 如果该命令报告任何错误或警告,请参阅 诊断集群问题 并解决这些问题,然后再继续。
为高级集群做好准备:
gkectl prepare \ --bundle-path BUNDLE_PATH \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --advanced-cluster替换以下内容:
BUNDLE_PATH:软件包文件的路径。此文件位于/var/lib/gke/bundles/中的管理员工作站上。例如:/var/lib/gke/bundles/gke-onprem-vsphere-1.32.0-gke.1085-full.tgzADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径
将管理员集群配置文件中的
enableAdvancedCluster设置为true。确保管理员集群配置文件中的
bundlepath字段与您要升级到的软件包的路径相匹配。将管理员集群升级为高级集群:
gkectl upgrade admin \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config ADMIN_CLUSTER_CONFIG \ --reuse-bootstrap-cluster替换以下内容:
ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径ADMIN_CLUSTER_CONFIG:管理员集群配置文件的路径。
该命令将以发布方式重新创建管理员集群中的所有节点。 借助发布重新创建部署策略,节点一次只能升级一个。在节点升级期间,虚拟机会删除,然后使用新版本重新创建。
将管理员集群更新或升级为高级集群后:
您现有的非高级用户集群会继续正常运行。
您只能创建由高级管理员集群管理的高级用户集群。
我们建议您在此之后尽快将所有用户集群升级为高级集群,以保持一致且功能齐全的环境。
将用户集群更新或升级为高级集群
更新
诊断集群,确保其健康状况良好:
gkectl diagnose cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --cluster-name USER_CLUSTER_NAME- 如果该命令报告任何错误或警告,请参阅 诊断集群问题 并解决这些问题,然后再继续。
如果用户集群控制平面不具备高可用性 (HA):
将
masterNode.replicas从 1 更改为 3。将用户集群控制平面节点的静态 IP 地址添加到
network.controlPlaneIPBlock.ips部分。
为高级集群做好准备:
gkectl prepare \ --bundle-path BUNDLE_PATH \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --advanced-cluster替换以下内容:
BUNDLE_PATH:软件包文件的路径。此文件位于/var/lib/gke/bundles/中的管理员工作站上。例如:/var/lib/gke/bundles/gke-onprem-vsphere-1.32.0-gke.1085-full.tgzADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径
将用户集群配置文件中的
enableAdvancedCluster设置为true。将用户集群更新为高级集群:
gkectl update cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG替换以下内容:
ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径USER_CLUSTER_CONFIG:用户集群配置文件的路径。
该命令将以发布方式重新创建用户集群中的所有节点。 使用发布重新创建部署策略时,节点会逐个更新。在节点更新期间,系统会删除虚拟机,然后使用新配置重新创建虚拟机。
升级
诊断集群,确保其健康状况良好:
gkectl diagnose cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --cluster-name USER_CLUSTER_NAME- 如果该命令报告任何错误或警告,请参阅 诊断集群问题 并解决这些问题,然后再继续。
如果用户集群控制平面不具备高可用性 (HA):
将
masterNode.replicas从 1 更改为 3。将用户集群控制平面节点的静态 IP 地址添加到
network.controlPlaneIPBlock.ips部分。
为高级集群做好准备:
gkectl prepare \ --bundle-path BUNDLE_PATH \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --advanced-cluster替换以下内容:
BUNDLE_PATH:软件包文件的路径。此文件位于/var/lib/gke/bundles/中的管理员工作站上。例如:/var/lib/gke/bundles/gke-onprem-vsphere-1.32.0-gke.1085-full.tgzADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径
将用户集群配置文件中的
enableAdvancedCluster设置为true。确保用户集群配置文件中的
gkeOnPremVersion字段与您要升级到的目标版本相匹配。将用户集群升级为高级集群:
gkectl upgrade cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG替换以下内容:
ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径USER_CLUSTER_CONFIG:用户集群配置文件的路径。
该命令将重新创建用户集群中的所有节点。
与高级集群捆绑的 cert-manager
cert-manager 是 高级集群中的强制性系统管理组件。
如果您在不使用高级集群的情况下使用 cert-manager,请在升级到高级集群之前检查以下内容:
- 您的
cert-manager中没有自定义配置或功能标志。 - 您的
cert-manager版本与捆绑的版本相同或比捆绑的版本低一个版本。
Apigee Hybrid 兼容性
捆绑的 cert-manager 与 Apigee Hybrid 工作负载完全兼容。升级到高级集群时,安装程序可能会警告您,现有的
cert-manager 安装将被替换。这是预期行为,系统会自动处理。
为确保 Apigee 工作负载顺利过渡,请执行以下操作:
- 在升级之前,请勿手动卸载 现有的
cert-manager。 - 恢复自定义设置:如果您使用
cert-manager管理 GitOps,或者已将自定义配置应用于cert-manager部署,则必须在升级之前恢复这些自定义设置或暂停同步,以避免配置偏移和潜在的升级暂停。
功能和限制
您可以使用捆绑的 cert-manager 执行以下操作:
- 创建和修改
Issuer和ClusterIssuer资源。 - 创建和修改引用签发者和标准签发者类型的证书资源。
- 创建和修改
cert-manager使用的标准 Kubernetes 资源。 - 创建包含 API 密钥的 Kubernetes Secret,并在签发者中引用它们。
- 将签发者配置为使用特定的 HTTP-01 或 DNS-01 求解器。
您无法在捆绑的 cert-manager 中自定义以下内容:
- 设置
deployment或helm值。 - 向
cert-manager二进制文件添加命令行实参或标志。 - 更改
cert-managerpod 的资源限制或节点选择器。 - 修改
cert-manager软件的安装逻辑。 - 开启实验性功能。
- 强制
cert-manager控制平面 pod 在特定基础架构节点上运行。
如果您有特定的限制导致无法使用捆绑的
cert-manager,请与Google Cloud 支持
团队联系,以获取有关高级配置选项的帮助。
捆绑的版本
下表列出了每个版本的 Google Distributed Cloud for VMware(纯软件)的捆绑 cert-manager 版本。
| Google Distributed Cloud for VMware(纯软件) | 捆绑的 cert-manager 版本 |
|---|---|
| 1.32 | 1.17 |
| 1.33 | 1.18 |
| 1.34 | 1.19 |
改用高级集群后的重要差异
与标准集群相比,将集群升级或更新为高级集群会带来一些重要差异。以下是高级集群中的重大变化:
资源位置:集群和机器资源不再位于用户集群中。这些资源仅位于管理员集群中。
NodeExternalIP:未在节点上设置NodeExternalIP。cert-manager安装:cert-manager会自动安装在高级集群上。如果您在集群中安装了cert-manager,则更新或升级为高级集群会使用高级集群版本覆盖它。
如需全面了解功能差异,请参阅功能对比表。