升级独立管理集群

要升级具有独立管理集群的 Tanzu Kubernetes Grid,必须先升级独立管理集群。在升级管理工作负载集群的管理集群之前,无法升级工作负载集群。

如果运行具有 vSphere with Tanzu 主管的 TKG,则不会执行此过程。相反,您可以在 vSphere 中升级主管,并通过升级其 TKr 来更新主管的 Kubernetes 版本。

升级管理集群会自动升级其运行的自动管理的软件包

注意

安装 v2.1 CLI 之后,在升级独立管理集群之前,所有特定于上下文的 CLI 命令组(tanzu clustertanzu kubernetes-release)以及除 tanzu mc upgradetanzu mc create 之外的所有 management-cluster 插件命令都不可用,并且不包含在 --help 输出中。

管理集群和工作负载集群使用客户端证书对客户端进行身份验证。这些证书的有效期为一年。要续订集群,请至少每年升级一次集群,或者按照 续订集群证书(标准 Mc)或知识库文章如何在或 VMware 知识库文章如何在 Tanzu Kubernetes Grid 集群中轮转证书

必备条件

  • 您已查看升级的已知问题。请参阅已知问题
  • 您执行了升级管理集群之前升级 Tanzu Kubernetes Grid 中的步骤。
  • 如果在 Internet 受限环境中部署了以前版本的 Tanzu Kubernetes Grid,则已执行准备 Internet 受限环境中的步骤,以使用新的组件映像版本重新创建并运行所需的脚本。
  • 如果您的现有管理集群的版本高达 1.6.0 (含 1.6.0),且已在没有主管集群的 vSphere 7 上运行,并且您希望将 vSphere 升级到 vSphere 8,请将管理集群及其工作负载集群升级到 Tanzu Kubernetes Grid v2.1.x 或 v1.6.1,最好先从 vSphere 7 升级到 vSphere 8。如果在 vSphere 7 上运行独立管理集群,并且 vSphere 实例在升级到 vSphere 8 后再升级到 Tanzu Kubernetes Grid v2.1.x 或 v1.6.1,则必须尽快升级管理集群和工作负载集群。vSphere 8 不支持 v1.6.0 及以下的 Tanzu Kubernetes Grid 版本。

过程

  1. 运行 tanzu login 命令以查看可用于升级的管理集群的交互式列表。

    tanzu login
    
  2. 选择要升级的管理集群。有关详细信息,请参见列出管理集群和更改上下文

  3. 获取集群的管理员凭据。Tanzu CLI 别名 mcmanagement-cluster 的缩写。

    tanzu mc kubeconfig get --admin
    
  4. kubectl 连接到管理集群。


    kubectl config use-context CLUSTER-NAME-admin@CLUSTER-NAME.
    
  5. 如果管理集群正在 Azure 上运行,请在升级集群之前设置 AZURE_CLIENT_SECRET 环境变量:

    export AZURE_CLIENT_SECRET=YOUR-AZURE-CLIENT-SECRET
    
  6. 如果管理集群最初是在 TKG v1.3 或更低版本中创建的,或者如果您不确定,请执行以下操作。以下步骤添加了在 TKG v2.1 中将管理集群升级到其基于软件包的配置所需的密钥,但在 TKG v1.4 之前创建的管理集群中不包含该密钥:

    1. 停用 package-based-cc 功能标记,以启用旧版管理集群创建试运行:

      tanzu config set features.management-cluster.package-based-cc false
      
    2. 通过使用原始配置文件执行试运行式管理集群创建,为管理集群获取更新的旧式清单。例如,在 vSphere 上:

      tanzu mc create -f mgmt-config.yaml --dry-run > legacy-mgmt.yaml
      Do you want to configure vSphere with Tanzu? [y/N]: N
      Would you like to deploy a non-integrated Tanzu Kubernetes Grid management cluster on vSphere 7.0? [y/N]: y
      
      
    3. 提取所需的 -config-values 密钥:

      cat legacy-mgmt.yaml | yq 'select(.metadata.name == "MANAGEMENT-CLUSTER-NAME-config-values")' > mgmt-config-secret.yaml
      
    4. 在管理集群上下文中,将密钥应用于管理集群:

      kubectl apply -f mgmt-config-secret.yaml
      
    5. 重新启用 package-based-cc 功能标记,以禁止创建旧版管理集群。

      tanzu config set features.management-cluster.package-based-cc true
      
  7. 运行 tanzu mc upgrade 命令并输入 y 进行确认。

    注意

    运行此命令后,非管理员用户无法登录到关联的工作负载集群,直到 Pinniped Pod 完成重新启动。

    tanzu mc upgrade
    

    如果 IaaS 帐户中的多个基础虚拟机映像具有要升级到的相同版本的 Kubernetes,请使用 --os-name 选项指定所需的操作系统。有关详细信息,请参见在集群升级期间选择操作系统

    例如,在 vSphere 上,如果同时上载了使用 Kubernetes v1.24.10 的 Photon 模板和 Ubuntu OVA 模板,请指定 --os-name ubuntu 以升级要在 Ubuntu 虚拟机上运行的管理集群。

    tanzu mc upgrade --os-name ubuntu
    

    要在升级集群时跳过确认步骤,请指定 --yes 选项。

    tanzu mc upgrade --yes
    

    升级过程首先升级管理集群中运行的 vSphere、Amazon Web Services (AWS) 或 Azure 的集群 API 提供程序。然后,其将升级管理集群的所有控制平面和工作节点中的 Kubernetes 版本。

    重要

    升级管理集群时,请勿对管理集群或其管理的工作负载集群运行 tanzu clustertanzu mc 命令,例如从另一个引导计算机或 shell 窗口中运行命令。

    如果升级在完成之前超时,请再次运行 tanzu mc upgrade 并指定值大于默认值 30 分钟的 --timeout 选项。

    tanzu mc upgrade --timeout 45m0s
    
    注意

    安装 v2.1 CLI 之后,但在升级管理集群之前,所有特定于上下文的 CLI 命令组(tanzu clustertanzu kubernetes-release)以及除 tanzu mc upgradetanzu mc create 以外的所有management-cluster 插件命令均不可用且不包含在 Tanzu CLI --help 输出中。

  8. 升级完成后,再次运行带有 --include-management-cluster -A 选项的 tanzu cluster list 命令以检查管理集群是否已升级。

    tanzu cluster list --include-management-cluster -A
    

    您会看到管理集群现在正在运行新版本的 Kubernetes,但工作负载集群仍运行以前版本的 Kubernetes。

     NAME                 NAMESPACE   STATUS    CONTROLPLANE  WORKERS  KUBERNETES         ROLES       PLA   TKR
     k8s-1-22-13-cluster  default     running   1/1           1/1      v1.22.13+vmware.1  <none>      dev   v1.22.13---vmware.1-tkg.1
     k8s-1-23-10-cluster  default     running   1/1           1/1      v1.23.10+vmware.1  <none>      dev   v1.23.10---vmware.1-tkg.1
     mgmt-cluster         tkg-system  running   1/1           1/1      v1.24.10+vmware.1  management  dev   v1.24.10---vmware.1-tkg.1
    
  9. 重新生成管理员 kubeconfig

    tanzu management-cluster kubeconfig get --admin
    

    以下是此命令的输出示例:

    Credentials of cluster 'mgmt' have been saved
    You can now access the cluster by running 'kubectl config use-context mgmt-admin@mgmt'
    
    重要

    如果在升级后不续订 kubeconfig,则集群过期后将无法访问该集群。

下一步操作

您现在可以:

check-circle-line exclamation-circle-line close-line
Scroll to top icon