将集群更新或升级为高级集群

您可以通过在 1.32 版就地更新或升级到 1.33 版,将 1.32 版集群转换为高级集群。转换为高级集群可为您的环境做好准备,以便在 1.33 版及更高版本中使用高级集群作为默认或必需架构。

改用高级集群后的重要差异

与标准集群相比,将集群升级或更新为高级集群会带来一些重要差异。以下是高级集群中的重大变化:

  • 资源位置:集群和机器资源不再位于用户集群中。这些资源仅位于管理员集群中。

  • NodeExternalIP:未在节点上设置 NodeExternalIP。

  • cert-manager 安装:cert-manager 会自动安装在高级集群上。如果您在集群中安装了 cert-manager,则更新或升级为高级集群会使用高级集群版本覆盖它。

高级集群和非高级集群之间的功能差异

启用高级集群时,某些特性和功能的运作方式可能与非高级集群有所不同。其中一些更改仅适用于 1.31 版高级集群的预览版。相关文档会完整说明这些差异。

下表列出了 Google Distributed Cloud for VMware(纯软件)支持的功能、启用高级集群时的可用性状态,以及行为或使用方面的任何差异:

功能/能力 1.31 高级集群(预览版) 1.32 未启用 1.32 高级集群(正式版) 1.33 高级集群(正式版) 不同之处
高级集群 预览 GA GA GA 不支持
拓扑网域 预览 预览 预览 更改已生效。如需了解详情,请参阅设置拓扑网域和相关的集群配置参考。
区域级舰队成员资格 GA GA GA GA 没有区别。
版本偏差 n+2 管理员集群 - 用户集群 GA GA GA 不推荐:由于不支持管理较低版本的预览版用户集群,因此请勿使用此功能。
版本偏差 n+2 节点池 - 用户集群 GA GA GA 不推荐:由于不支持管理较低版本的预览版用户集群,因此请勿使用此功能。
节点池更新的超额配置数量上限设置 预览 预览 预览 预览 没有区别。
适用于节点的 cgroup v2 GA GA GA GA 没有区别。
Dataplane V2 的 DSR 模式 GA GA GA GA 没有区别。
适用于 Controlplane V2 用户集群的 Binary Authorization GA GA GA GA 没有区别。
用户管理的管理员工作站 GA GA GA GA 没有区别。
StatefulSet CSI 迁移工具 GA GA GA GA 没有区别。
从 Seesaw 迁移到 MetalLB GA GA GA GA 没有区别。
停用捆绑式 Ingress GA GA GA GA 没有区别。
管理员集群准备好的凭证 GA GA GA 没有区别。
用户集群的存储政策 GA GA GA GA 没有区别。
管理员集群的存储政策 GA GA GA GA 没有区别。
节点自动修复 GA GA GA GA 更改已生效:如果启用了高级集群,则系统不会在自动修复过程中运行定期健康检查。如需了解相关信息和其他差异,请参阅自动节点修复和健康检查。
高可用性管理员集群 GA GA GA GA 没有区别。
虚拟机主机亲和性 GA GA GA 在 1.32.200、1.33 及更高版本的高级集群中受支持。使用拓扑网域时,请在 vSphere 基础设施配置文件的 topologyDomains[i].compute.hostGroups 中配置主机组,而不是在用户集群配置文件的 nodePools[i].vsphere.hostgroups 中配置。
从现有集群生成配置文件 GA GA GA GA 更改已生效。不支持使用拓扑网域的集群。
Google Cloud Managed Service for Prometheus 系统指标收集 GA GA GA GA 没有区别。
升级和回滚节点池 GA GA GA 没有区别。
更新私有仓库凭证 GA GA GA GA 没有区别。
使用 gkectl 进行管理员集群备份和恢复 预览 预览 GA 更改已生效。更新了 gkectl 命令,以更好地恢复管理员集群并支持备份和恢复用户集群。如需了解详情,请参阅使用 gkectl 备份和恢复高级集群。
用户集群节点池自动扩缩 GA GA GA GA 没有区别。
集群节点大小自动调整 GA GA 没有区别。
多 vSphere 集群支持 GA GA GA GA 没有区别。
多 vSphere 数据中心支持 GA GA GA GA 没有区别。
集群身份验证的 OpenID Connect (OIDC) 支持 GA GA GA GA 没有区别。
CA 证书变换 GA GA GA 没有区别。
工作负载身份联合支持 GA GA GA GA 没有区别。
支持 LDAP 身份验证的 GKE 身份认证服务 GA GA GA GA 没有区别。
不带硬件安全模块 (HSM) 的始终开启的 Secret 加密 GA GA GA 没有区别。
使用 gkectl 更新 vCenter CA 证书 GA GA GA GA 没有区别。
出站流量 NAT 网关 GA GA GA GA 没有区别。
管理员集群舰队注册 GA GA GA GA 没有区别。
Windows 节点池支持 GA 不受支持。
Windows 节点池的 containerd 运行时 GA 不受支持。
Container-Optimized OS 节点池支持 GA GA GA 没有区别。
CoreDNS 作为集群 DNS 提供商 GA GA GA GA 没有区别。
Google Cloud 控制台中的用户集群生命周期 GA 部分支持 GA 更改已生效。如需了解详情,请参阅高级集群限制。
使用 Container-Optimized OS 创建管理员集群节点 GA GA GA 没有区别。
Pod 的多 NIC 功能 GA GA GA GA 没有区别。
MetalLB 负载均衡器选项 GA GA GA GA 更改已生效。如需了解详情,请参阅使用 MetalLB 进行捆绑式负载均衡。
gkectl update admin 支持启用和停用 Cloud Logging 和 Cloud Monitoring GA GA GA GA 没有区别。
Windows Dataplane V2 支持 GA 不受支持。
摘要 API 指标 GA GA GA GA 没有区别。
gkectl update credentials 支持更新组件访问服务账号密钥 部分支持 GA 部分支持 部分支持 更改已生效。如需详细了解在更新高级集群凭证方面支持或不支持的功能,请参阅变换服务账号密钥的高级集群差异。
为用户集群准备的凭证 GA GA GA 没有区别。
用户集群的试运行升级 GA GA GA GA 没有区别。
用户集群的异步升级 GA GA GA GA 没有区别。
管理员集群的试运行升级 GA GA 没有区别。
管理员集群的异步升级 GA GA GA GA 没有区别。
节点池顺序更新 GA GA GA 没有区别。
使用 vSphere CSI 驱动程序创建卷快照 预览 预览 预览 预览 没有区别。
创建启用 Controlplane V2 的用户集群 GA GA GA GA 没有区别。
使用 SPBM 进行存储迁移 GA GA GA GA 没有区别。
将数据存储区迁移到 SPBM GA GA GA GA 没有区别。
将用户集群迁移到 Controlplane V2 GA GA GA GA 没有区别。
迁移到高可用性管理员集群 GA GA GA GA 没有区别。
迁移 F5 BIG-IP 的配置设置 GA GA GA GA 没有区别。
负载均衡器 部分支持 GA GA GA 更改已生效。如需了解详情,请参阅相关负载均衡器和集群配置参考文档。
预检检查 部分支持 GA GA GA 没有区别。
硬件要求 GA GA GA GA 更改已生效。如需了解详情,请参阅 CPU、RAM 和存储空间要求。
快照 GA GA GA GA 没有区别。
私有注册表 GA GA GA GA 更改已生效。如需详细了解如何在高级集群上使用私有注册数据库,请参阅高级集群和完整软件包的限制。
IPAM、DNS、NTP 和多 NIC GA GA GA GA 没有区别。
集群创建/升级/删除 GA GA GA GA 更改已生效。如需了解详情,请参阅相关的集群操作文档和高级集群限制。
代理 GA GA GA GA 没有区别。
NodePool 更新政策 GA GA GA 没有区别。
诊断 GA GA GA 更改已生效。与 vCenter 相关的检查不适用于高级集群。由于不再存在 onprem-user-cluster-controller 控制器,因此诊断集群问题指南对于高级集群而言已过时。对于 1.32 版高级集群,gkectl diagnose cluster 命令会针对指定集群运行健康检查。
vSphere 标记和虚拟机跟踪 GA GA 没有区别。
vSphere 主机组 GA GA 没有区别。
日志记录和监控 GA GA GA GA 没有区别。
反亲和性群组 GA GA GA 没有区别。
非高可用性用户集群控制平面 GA 不受支持。
gkectl check-config GA GA GA 更改已生效。以下版本中添加了对高级用户集群上该命令的支持:1.32.700+、1.33.300+ 以及 1.34.0 及更高版本。

前提条件

  • gkectl 版本必须与目标集群版本相同。

    • 如果需要,请参阅下载 gkectl 以获取受支持的 gkectl 版本。
  • 在更新或升级到高级集群之前,请务必先诊断集群:

    • 在管理员集群和用户集群上运行 gkectl diagnose cluster,以确保它们运行状况良好。
    • 如果该命令报告任何错误或警告,请先解决这些问题,然后再开始更新或升级到高级集群。
  • 确保您的集群仅使用推荐的功能。

  • 在开始更新或升级之前,请验证您的集群是否未使用任何高级集群不支持的功能。如果有任何不支持的功能处于活跃状态,请先使用更新功能将其停用。

    • 虽然高级集群上需要高可用性 (HA) 用户集群,但您仍然可以按照本指南将非高可用性用户集群更新或升级为高可用性高级集群。
  • 您必须先将管理员集群更新或升级为高级集群,然后才能更新或升级任何用户集群。

  • 关于 cert-manager 安装:cert-manager 会自动安装在高级集群上。从非高级集群迁移到高级集群时,集成的 cert-manager 会自动覆盖客户安装的所有 cert-manager 版本。在更新或升级到高级集群之前,请确保您没有对现有 cert-manager 应用关键自定义配置或功能。

将管理员集群更新或升级为高级集群

更新

  1. 诊断集群,确保其运行状况良好:

    gkectl diagnose cluster \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    
    • 如果该命令报告任何错误或警告,请参阅诊断集群问题并解决这些问题,然后再继续。
  2. 为高级集群做好准备:

    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.tgz
      
    • ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径

  3. 将管理员集群配置文件中的 enableAdvancedCluster 设置为 true。

  4. 将管理员集群更新为高级集群:

    gkectl update admin \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
        --config ADMIN_CLUSTER_CONFIG
    

    替换以下内容:

    • ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径
    • ADMIN_CLUSTER_CONFIG:管理员集群配置文件的路径。

    该命令将重新创建管理员集群中的所有节点。

升级

  1. 根据需要升级管理员工作站。

  2. 诊断集群,确保其运行状况良好:

    gkectl diagnose cluster \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    
    • 如果该命令报告任何错误或警告,请参阅诊断集群问题并解决这些问题,然后再继续。
  3. 为高级集群做好准备:

    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.tgz
      
    • ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径

  4. 将管理员集群配置文件中的 enableAdvancedCluster 设置为 true。

  5. 确保管理员集群配置文件中的 bundlepath 字段与您要升级到的软件包的路径相匹配。

  6. 将管理员集群升级为高级集群:

    gkectl upgrade admin \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
        --config ADMIN_CLUSTER_CONFIG
    

    替换以下内容:

    • ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径
    • ADMIN_CLUSTER_CONFIG:管理员集群配置文件的路径。

    该命令将以发布方式重新创建管理员集群中的所有节点。 借助发布重新创建部署策略,节点一次只能升级一个。在节点升级期间,虚拟机会删除,然后使用新版本重新创建。

将管理员集群更新或升级为高级集群后:

  • 您现有的非高级用户集群会继续正常运行。

  • 您只能创建由高级管理员集群管理的高级用户集群。

在此之后尽快将所有用户集群升级为高级集群,以保持一致且功能齐全的环境。

将用户集群更新或升级为高级集群

更新

  1. 诊断集群,确保其运行状况良好:

    gkectl diagnose cluster \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
        --cluster-name USER_CLUSTER_NAME
    
    • 如果该命令报告任何错误或警告,请参阅诊断集群问题并解决这些问题,然后再继续。
  2. 如果用户集群控制平面不具备高可用性 (HA):

    1. 将 masterNode.replicas 从 1 更改为 3。

    2. 将用户集群控制平面节点的静态 IP 地址添加到 network.controlPlaneIPBlock.ips 部分。

  3. 为高级集群做好准备:

    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.tgz
      
    • ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径

  4. 将用户集群配置文件中的 enableAdvancedCluster 设置为 true。

  5. 将用户集群更新为高级集群:

    gkectl update cluster \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
        --config USER_CLUSTER_CONFIG
    

    替换以下内容:

    • ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径
    • USER_CLUSTER_CONFIG:用户集群配置文件的路径。

    该命令将以发布方式重新创建用户集群中的所有节点。 使用发布重新创建部署策略时,节点会逐个更新。在节点更新期间,系统会删除虚拟机,然后使用新配置重新创建虚拟机。

升级

  1. 诊断集群,确保其运行状况良好:

    gkectl diagnose cluster \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
        --cluster-name USER_CLUSTER_NAME
    
    • 如果该命令报告任何错误或警告,请参阅诊断集群问题并解决这些问题,然后再继续。
  2. 如果用户集群控制平面不具备高可用性 (HA):

    1. 将 masterNode.replicas 从 1 更改为 3。

    2. 将用户集群控制平面节点的静态 IP 地址添加到 network.controlPlaneIPBlock.ips 部分。

  3. 为高级集群做好准备:

    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.tgz
      
    • ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径

  4. 将用户集群配置文件中的 enableAdvancedCluster 设置为 true。

  5. 确保用户集群配置文件中的 gkeOnPremVersion 字段与您要升级到的目标版本相匹配。

  6. 将用户集群升级为高级集群:

    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。
  • 还原自定义设置:如果您使用 GitOps 管理 cert-manager,或已对 cert-manager 部署应用自定义配置,则必须在升级前还原这些自定义设置或暂停同步,以避免配置偏移和潜在的升级暂停。

功能和限制

您可以使用捆绑的 cert-manager 执行以下操作:

  • 创建和修改 Issuer 和 ClusterIssuer 资源。
  • 创建和修改引用颁发者和标准颁发者类型的证书资源。
  • 创建和修改 cert-manager 使用的标准 Kubernetes 资源。
  • 创建包含 API 密钥的 Kubernetes Secret,并在签发者中引用它们。
  • 将签发者配置为使用特定的 HTTP-01 或 DNS-01 求解器。

您无法在捆绑的 cert-manager 中自定义以下内容:

  • 设置 deployment 或 helm 值。
  • 向 cert-manager 二进制文件添加命令行参数或标志。
  • 更改 cert-manager Pod 的资源限制或节点选择器。
  • 修改 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