使用 Anthos On-Prem API 客户端升级用户集群

本页面介绍如何使用 Google Cloud 控制台或 Google Cloud CLI 升级由 Anthos On-Prem API 管理的 Anthos clusters on VMware 用户集群。在升级用户集群之前,我们建议您先查看升级最佳实践

什么是 Anthos On-Prem API?

Anthos On-Prem API 是由 Google Cloud 托管的 API,可让您使用 Terraform 和标准 Google Cloud 工具管理本地集群的生命周期。Anthos On-Prem API 在 Google Cloud 的基础架构中运行。Terraform、Google Cloud 控制台和 Google Cloud CLI 都是该 API 的客户端,它们使用该 API 创建、更新、升级和删除数据中心中的集群。如果您使用标准客户端创建集群,则集群会在 Anthos On-Prem API 中注册,这意味着您可以使用标准客户端来管理集群的生命周期(有一些例外情况)。如果您的集群是使用 gkectl 创建的,您可以在 Anthos On-Prem API 中注册集群,这使您可以使用标准客户端。

须知事项

设置 gcloud CLI

如需使用 gcloud CLI 或 Terraform 升级集群:

  1. 确保您拥有最新版本的 gcloud CLI,包括 gcloud CLI Beta 版组件

    如果您还没有 Beta 版组件,请运行以下命令进行安装:

    gcloud components install beta
    
  2. 根据需要更新 gcloud CLI 组件:

      gcloud components update
    

IAM 要求

如果您不是 Project Owner,则必须在创建集群的 Google Cloud 项目中获得 Identity and Access Management 角色 roles/gkeonprem.admin。如需详细了解此角色具备的权限,请参阅 IAM 文档中的 GKE On-Prem 角色

如需使用控制台升级集群,您至少需要以下角色:

  • roles/container.viewer。此角色允许用户在控制台中查看 GKE 集群页面和其他容器资源。如需详细了解此角色中包含的权限或授予具有读写权限的角色,请参阅 IAM 文档中的 Kubernetes Engine 角色

  • roles/gkehub.viewer。此角色允许用户在控制台中查看集群。如需详细了解此角色包含的权限或授予具有读写权限的角色,请参阅 IAM 文档中的 GKE Hub 角色

升级选项

如果您有 1.13 版管理员集群,则可以使用以下选项来升级由 Anthos On-Prem API 管理的用户集群:

  • 如果您的管理员集群为 1.13.1+ 版,您可以使用下一部分中介绍的升级功能。此升级过程目前为预览版,我们建议您不要使用此功能升级生产环境中的集群。

  • 如果管理员集群为 1.13.0 或更低版本,或者对于生产环境,请参阅升级 Anthos clusters on VMware

部署升级平台控制器

在使用控制台或 gcloud CLI 升级用户集群之前,您必须在管理员集群上部署升级平台控制器。

  1. 如果您不确定控制器是否已部署,请在管理员工作站上运行以下命令:

    kubectl  --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
        get onpremadmincluster -n kube-system -o yaml
    

    请替换以下内容:

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

    如果控制器已部署,则以下行位于 YAML 输出的 annotations 部分:

    features.onprem.cluster.gke.io/preview-user-cluster-central-upgrade: enabled
    

    如果您未看到该注释,请在下一步中运行该命令。

  2. 在管理员工作站上运行以下命令以部署升级平台控制器:

    gkectl update admin --enable-preview-user-cluster-central-upgrade \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
        --config ADMIN_CLUSTER_CONFIG_FILE \
        --yes
    

    请替换以下内容:

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

    • ADMIN_CLUSTER_CONFIG_FILE:管理员集群的配置文件的路径。

    • 可选:--yes 标志会在提示时自动响应 yes,以继续部署。

    此命令会在管理员集群上部署一个控制器,可让您使用 Anthos On-Prem API 客户端升级用户集群。在用户集群升级期间,管理员集群会向 Anthos On-Prem API 注册(如果尚未注册),从而无需运行任何命令(在管理员工作站上升级用户集群)。启动用户集群升级时,Anthos On-Prem API 会触发控制器为升级做好准备。控制器会下载并安装软件包,并部署管理用户集群的组件的新版本。

    该命令大约需要 25 分钟(或更长时间)才能完成,具体取决于您的网络。

升级用户集群

在管理员集群上部署升级平台控制器后,您可以升级由管理员集群管理的一个或多个用户集群。

如需升级用户集群,请运行以下命令:

控制台

  1. 在控制台中,转到“Anthos 集群”页面。

    转到“Anthos 集群”页面

  2. 选择 Google Cloud 项目,然后选择要升级的集群。

  3. 详细信息面板中,点击更多详细信息

  4. 集群基本信息部分,点击 升级

  5. 选择简化升级对话框中,读取两个复选框的文本,选中它们,然后点击继续

  6. 选择目标版本列表中,选择您要升级到的版本。精选列表仅包含最新的补丁程序版本。

  7. 点击升级

在集群升级之前,系统会运行预检检查以验证集群状态和节点健康状况。预检检查通过后,用户集群会开始升级。升级大约需要 30 分钟才能完成。

如需查看升级的状态,请点击集群详情标签页上的显示详情

gcloud CLI

  1. 运行以下命令以使用您的 Google 帐号登录:

    gcloud auth login
    
  2. 更新 Google Cloud CLI 组件:

    gcloud components update
    
  3. 获取可用的升级目标版本列表:

    gcloud beta container vmware clusters query-version-config \
      --cluster=USER_CLUSTER_NAME \
      --project=FLEET_HOST_PROJECT_ID \
      --location=REGION
    

    请替换以下内容:

    • USER_CLUSTER_NAME:用户集群的名称。

    • FLEET_HOST_PROJECT_ID:该用户集群是舰队成员的舰队项目的 ID。这是您在创建集群时指定的项目。如果您的集群是使用 gkectl 创建的,则这是集群配置文件的 gkeConnect.projectID 字段中的项目 ID。

    • REGION:Anthos On-Prem API 在其中运行并存储其元数据的 Google Cloud 区域。如果您的集群是使用 Anthos On-Prem API 客户端创建的,那么这是您在创建集群时指定的区域。如果您是使用 gkectl 创建集群的,这是您在注册集群以使用 Anthos On-Prem API 进行管理时指定的区域。

  4. 使用以下命令升级集群:

    gcloud beta container vmware clusters upgrade USER_CLUSTER_NAME \
      --project=FLEET_HOST_PROJECT_ID \
      --location=REGION \
      --version=VERSION
    

    请替换以下内容:

    • USER_CLUSTER_NAME:要升级的用户集群的名称。

    • FLEET_HOST_PROJECT_ID:用户集群所属的舰队项目的 ID。这是您在创建集群时指定的项目。如果您的集群是使用 gkectl 创建的,则这是集群配置文件的 gkeConnect.projectID 字段中的项目 ID。

    • REGION:Anthos On-Prem API 在其中运行并存储其元数据的 Google Cloud 区域。如果您使用 Anthos On-Prem API 客户端创建集群,则这是您在创建集群时选择的区域。如果您是使用 gkectl 创建集群的,则这是您在注册集群以使用 Anthos On-Prem API 进行管理时指定的区域

    • VERSION:要升级到的 Anthos Clusters on VMware 版本。根据上一个命令的输出指定版本。我们建议您升级到最新的补丁程序版本。

    升级大约需要 30 分钟才能完成。

  5. 在集群升级时,请在另一个终端窗口中运行以下命令来检查集群的状态:

    gcloud beta container vmware clusters describe USER_CLUSTER_NAME \
      --project=FLEET_HOST_PROJECT_ID \
      --location=REGION
    

如需详细了解字段和标志,请参阅 gcloud beta container vmware clusters upgrade

停用升级平台控制器

  1. 在管理员工作站上运行以下命令:

    gkectl update admin --disable-preview-user-cluster-central-upgrade \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
        --config ADMIN_CLUSTER_CONFIG_FILE \
        --yes
    
  2. 要确认控制器已停用,请运行以下命令:

    kubectl  --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
        get onpremadmincluster -n kube-system -o yaml
    

    如果控制器已停用,则 YAML 输出的 annotations 部分中不会显示以下行:

    features.onprem.cluster.gke.io/preview-user-cluster-central-upgrade: enabled