This site will be decommissioned on December 31st 2024. After that date content will be available at techdocs.broadcom.com.

升级独立管理集群

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

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

重要

Tanzu Kubernetes Grid v2.4.x 是支持升级 AWS 和 Azure 上的现有独立 TKG 管理集群的最新 TKG 版本。Tanzu Kubernetes Grid v2.5 版本中将移除在 AWS 和 Azure 上升级独立 TKG 管理集群的功能。

VMware 建议您使用 Tanzu Mission Control 创建本机 AWS EKS 和 Azure AKS 集群。但是,在 AWS 和 Azure 上升级现有的独立 TKG 管理集群仍完全受 TKG v2.4.x 及以下版本支持。

有关详细信息,请参见《VMware Tanzu Kubernetes Grid v2.4 发行说明》中的弃用 AWS 和 Azure 上的 TKG 管理和工作负载集群

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

注意

安装 Tanzu CLI 之后但在升级独立管理集群之前,所有上下文特定的 CLI 命令组 (tanzu cluster, tanzu kubernetes-release) 不可用并且不包含在 Tanzu CLI --help 输出中。

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

必备条件

  • 您已查看升级的已知问题。请参阅已知问题
  • 您执行了升级管理集群之前升级 Tanzu Kubernetes Grid 中的步骤。
  • Internet 受限:如果在 Internet 受限环境中部署了以前版本的 Tanzu Kubernetes Grid,则已执行准备 Internet 受限环境中的步骤,以使用新的组件映像版本重新创建并运行所需的脚本。
  • 自定义集群:如果您的工作负载集群使用自定义 ClusterClass 定义,则您已执行升级自定义集群中的步骤。
  • LDAP:如果管理集群的先前版本已与 LDAP 身份提供程序集成,则您已执行下面(仅限 LDAP)更新 LDAP 设置中的步骤。

(仅限 LDAP)更新 LDAP 设置

从 Tanzu Kubernetes Grid v2.3 开始,您必须在配置 LDAP 身份提供程序时设置 LDAP_BIND_DNLDAP_BIND_PASSWORD 变量。在升级配置为使用 LDAP 身份提供程序到 Tanzu Kubernetes Grid v2.4 的管理集群之前,如果尚未设置这些变量,请进行设置。在未设置 LDAP_BIND_DNLDAP_BIND_PASSWORD 的情况下升级管理集群会导致 Pinniped App 部署失败,并且 App 自定义资源返回错误。有关这些配置变量的详细信息,请参见《配置文件变量参考》中的身份供程序 - LDAP

要更新 LDAP_BIND_DNLDAP_BIND_PASSWORD,必须使用与管理集群版本对应的 management-cluster CLI 插件版本。升级管理集群之前,请执行以下步骤:

  1. LDAP_BIND_DNLDAP_BIND_PASSWORD 添加到管理集群的配置文件中。

  2. 确认在您的计算机上安装了正确版本的 management-cluster 插件。对于 Tanzu Kubernetes Grid v2.4.0,正确的版本为 v0.31.0

    tanzu plugin list
    

    如果未安装正确版本的 management-cluster 插件,请执行以下操作:

    1. 在所有可用版本的列表中,找到与管理集群版本对应的 management-cluster 插件的版本:

      tanzu plugin search -n management-cluster --show-details
      
    2. 安装插件:

      tanzu plugin install management-cluster --version PLUGIN-VERSION
      

      其中,PLUGIN-VERSION 是在上一步中查找的版本。

  3. 通过运行以下命令为 Pinniped 软件包生成新密钥:

    FILTER_BY_ADDON_TYPE=authentication/pinniped tanzu management-cluster create --dry-run -f YOUR-MANAGEMENT-CLUSTER-CONFIG-FILE.yaml > PINNIPED-PACKAGE-SECRET.yaml
    

    其中,YOUR-MANAGEMENT-CLUSTER-CONFIG-FILE.yaml 是在上一步中更新的配置文件,PINNIPED-PACKAGE-SECRET.yaml 是 Pinniped 软件包的新密钥。

  4. 确认生成的密钥包括更新的设置,将 kubectl 上下文设置为管理集群,然后应用该密钥:

    kubectl apply -f PINNIPED-PACKAGE-SECRET.yaml
    

过程

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

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

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

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

    kubectl config use-context MGMT-CLUSTER-NAME-admin@MGMT-CLUSTER-NAME.
    

    您可以从在上一步中运行 tanzu mc kubeconfig get --admin 命令的输出中复制确切的命令,包括管理集群上下文的名称。

  5. 如果管理集群正在 Azure 上运行,请在升级集群之前设置 AZURE_CLIENT_SECRET 环境变量:

    export AZURE_CLIENT_SECRET=YOUR-AZURE-CLIENT-SECRET
    
  6. 运行 tanzu mc upgrade 命令并输入 y 进行确认。

    注意

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

    tanzu mc upgrade
    

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

    例如,在 vSphere 上,如果同时上载了使用 Kubernetes v1.27.5 的 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.4 CLI 之后,但在升级管理集群之前,所有特定于上下文的 CLI 命令组(tanzu clustertanzu kubernetes-release)以及除 tanzu mc upgradetanzu mc create 之外的所有 management-cluster 插件命令都不可用,并且不包含在 Tanzu CLI --help 输出中。

  7. 升级完成后,再次运行带有 --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-25-10-cluster  default     running   1/1           1/1      v1.25.10+vmware.1  <none>      dev   v1.25.10---vmware.1-tkg.1
     k8s-1-26-5-cluster   default     running   1/1           1/1      v1.26.5+vmware.1  <none>       dev   v1.26.5---vmware.1-tkg.1
     mgmt-cluster         tkg-system  running   1/1           1/1      v1.27.5+vmware.1   management  dev   v1.27.5---vmware.2-tkg.1
    
  8. 重新生成管理员 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