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

升级 Tanzu Kubernetes Grid

要升级 Tanzu Kubernetes Grid (TKG),请在用作引导计算机的计算机上下载并安装新版本的 Tanzu CLI。还必须下载并安装基础映像模板和虚拟机,具体取决于要升级之前部署到 vSphere、Amazon Web Services (AWS) 或 Azure 的集群。

在 TKG 升级途径中,v2.4 紧跟 v2.3。

安装新版本的组件后,可以使用 tanzu mc upgradetanzu cluster upgrade CLI 命令升级管理集群和工作负载集群。

接下来几节是升级 Tanzu Kubernetes Grid 所需的整体步骤。此过程假定您要升级到 Tanzu Kubernetes Grid v2.4.0。

仅当执行从 Tanzu Kubernetes Grid v2.3.x 到 v2.4.x 的次要升级时,才需要执行一些步骤;如果要执行从 Tanzu Kubernetes Grid v2.4.x 到 v2.4.y 的修补程序升级,则不需要执行某些步骤。

重要

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

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

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

必备条件

在升级到 TKG v2.4.x 之前,请确保当前部署为 TKG v2.3.x 或更早的 v2.4 版本。要从早于 v2.3 的版本升级到 TKG v2.4.x,必须先使用 Tanzu CLI 的 v2.3.x 升级到 v2.3.x。

检查 TKG 版本

如果不确定管理集群中运行的 TKG 版本,则可以从管理集群对象中提取版本。

  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. 运行 kubectl get cluster 命令以提取 TKG 版本。

    kubectl get cluster MGMT-CLUSTER-NAME -n tkg-system -o yaml | grep TKGVERSION
    

    输出将显示管理集群中运行的 TKG 版本,例如:

    TKGVERSION: v2.3.0
    

下载并安装新版本的 Tanzu CLI

对于从 v2.3.x 到 v2.4.x 以及将 v2.4.x 修补到 v2.4.y 的升级,都需要执行此步骤。

要下载并安装新版本的 Tanzu CLI,请执行以下步骤。

  1. 删除 ~/.config/tanzu/tkg/compatibility/tkg-compatibility.yaml 文件。

    如果不删除此文件,新版本的 Tanzu CLI 将继续使用先前版本的物料清单 (BOM)。删除此文件会导致 Tanzu CLI 提取更新的 BOM。从 2.3.x 升级到 2.4.x 以及从 2.4.x 升级到 2.4.y 时,必须执行此步骤。

  2. 按照安装 Tanzu CLI 和 Kubernetes CLI 以与独立管理集群配合使用中的说明在当前运行 tanzu 命令的计算机上下载并安装 Tanzu CLI 和 kubectl。如果任何独立管理集群配置为使用 LDAP 身份提供程序,请在安装 Tanzu CLI 之后执行(仅限 LDAP)更新 LDAP 设置中的步骤,然后再将 CLI 插件更新为 Tanzu Kubernetes Grid v2.4。

  3. 安装新版本的 Tanzu CLI 后,运行 tanzu version 以检查是否正确安装了正确版本的 Tanzu CLI。有关与 Tanzu Kubernetes Grid v2.4 兼容的 CLI 版本列表,请参见产品互操作性矩阵
  4. 安装 kubectl 后,运行 kubectl version 以检查是否正确安装了 kubectl 的正确版本。

有关 Tanzu CLI 命令和可用选项的信息,请参见 Tanzu CLI 命令参考

准备升级集群

升级管理集群和工作负载集群之前,必须执行准备步骤,具体取决于是在 vSphere、AWS 还是 Azure 上部署集群。对于从 v2.3.x 到 v2.4.x 以及将 v2.4.x 修补到 v2.4.y 的升级,都需要执行此步骤。

vSphere
必须先将已升级的管理集群和工作负载集群将运行的基础映像模板导入 vSphere 新版本的基础映像模板,然后才能在 vSphere 上升级 Tanzu Kubernetes Grid 部署。VMware 会为每个受支持的操作系统和 Kubernetes 版本以 OVA 格式发布基础映像模板。导入 OVA 后,必须将生成的虚拟机转换为虚拟机模板。

此过程假定您要升级到 Tanzu Kubernetes Grid v2.4.x。

  1. 转到 Tanzu Kubernetes Grid 下载页面,然后使用您的 VMware Customer Connect 凭据登录。
  2. 下载管理集群和工作负载集群正在运行的操作系统和 Kubernetes 版本系列的最新 Tanzu Kubernetes Grid OVA。

    例如,对于 Photon v3 映像:

    • Kubernetes v1.27.5:Photon v3 Kubernetes v1.27.5 OVA
    • Kubernetes v1.26.8:Photon v3 Kubernetes v1.26.8 OVA
    • Kubernetes v1.25.13:Photon v3 Kubernetes v1.25.13 OVA

    对于 Ubuntu 20.04 映像:

    • Kubernetes v1.27.5:Ubuntu 2004 Kubernetes v1.27.5 OVA
    • Kubernetes v1.26.8:Ubuntu 2004 Kubernetes v1.26.8 OVA
    • Kubernetes v1.25.13:Ubuntu 2004 Kubernetes v1.25.13 OVA
    重要

    确保在使用安全修补程序版本时下载最新的 OVA 基础映像模板。您可以在 Tanzu Kubernetes Grid 产品下载页面上找到更新后其中包含安全修补程序的基础映像模板。

  3. 在 vSphere Client 中,右键单击 vCenter Server 清单中的对象,然后选择部署 OVF 模板 (Deploy OVF template)
  4. 选择 本地文件 (Local File),单击按钮以上载文件,然后导航到本地计算机上下载的 OVA 文件。
  5. 按照安装程序提示从 OVA 部署虚拟机。

    • 接受或修改设备名称.
    • 选择目标数据中心或文件夹。
    • 选择目标主机、集群或资源池。
    • 接受最终用户许可协议 (EULA)。
    • 选择磁盘格式和目标数据存储。
    • 选择虚拟机要连接的网络。
  6. 单击完成 (Finish) 以部署虚拟机。
  7. OVA 部署完成后,右键单击虚拟机,然后选择模板 (Template) > 转换为模板 (Convert to Template)
  8. 虚拟机和模板 (VMs and Templates) 视图中,右键单击新模板,选择添加权限 (Add Permission),然后将 Tanzu Kubernetes Grid 用户(例如,tkg-user)分配给具有 Tanzu Kubernetes Grid 角色的模板,例如 TKG。您已在 准备将管理集群部署到 vSphere 中创建了此用户和角色。

对下载了 OVA 文件的每个 Kubernetes 版本重复此过程。

VMware Cloud on AWS SDDC 兼容性

如果要升级在 VMware Cloud on AWS 上部署的工作负载集群,请确认现有部署使用的底层软件定义的数据中心 (SDDC) 版本与要升级到的 Tanzu Kubernetes Grid 版本兼容。

要查看 SDDC 的版本,请在 VMware Cloud 控制台中的 SDDC 磁贴上选择查看详细信息 (View Details),然后单击支持 (Support) 窗格。

要验证与 Tanzu Kubernetes Grid 的兼容性,请参见 VMware 产品互操作性矩阵

AWS
安装新版本的 Tanzu CLI 和其他工具后,必须先运行 tanzu mc permissions aws set 命令以重置 AWS 帐户中的权限,然后才能升级管理集群。
tanzu mc permissions aws set

从主要 v2.3.x 升级到 v2.4.x 或将 v2.4.x 修补到 v2.4.y 升级时,需要执行此步骤。有关命令设置的 AWS 权限的详细信息,请参见需要的 AWS 权限

包含受支持 Kubernetes 版本的 Amazon 2 Amazon 计算机映像 (AMI) 将公开提供给所有受支持 AWS 区域中的所有 AWS 用户。Tanzu Kubernetes Grid 会自动为升级期间指定的 Kubernetes 版本使用相应的 AMI。

Azure
在 Azure 上升级 Tanzu Kubernetes Grid 部署之前,您必须接受新默认虚拟机映像以及计划用于集群虚拟机的每个非默认虚拟机映像的条款。您需要为每个订阅接受一次这些条款。

要接受条款,请执行以下操作:

  1. 列出 Azure 应用商店中 Tanzu Kubernetes Grid 的所有可用虚拟机映像:

    az vm image list --publisher vmware-inc --offer tkg-capi --all
    
  2. 接受新默认虚拟机映像的条款:

    az vm image terms accept --urn publisher:offer:sku:version
    

    例如,要接受 Tanzu Kubernetes Grid v2.4.0 (k8s-1dot27dot5-ubuntu-2004) 中默认虚拟机映象的条款,请运行:

    az vm image terms accept --urn vmware-inc:tkg-capi:k8s-1dot27dot5-ubuntu-2004:2021.05.17
    
  3. 如果计划将任何工作负载集群升级到非默认 Kubernetes 版本(如 v1.26.8 或 v1.25.13),请接受要用于集群虚拟机的每个非默认版本的条款。


升级独立管理集群

仅具有独立管理集群的 TKG 需要执行此步骤。如果运行具有 vSphere with Tanzu 主管的 TKG,请作为 vSphere 的一部分升级主管,并通过升级其 TKr 更新主管的 Kubernetes 版本。

对于从 v2.3.x 到 v2.4.x 以及将 v2.4.x 修补到 v2.4.y 的升级,都需要执行此步骤。

要升级 Tanzu Kubernetes Grid,必须升级部署中的所有管理集群。在升级管理工作负载集群的管理集群之前,无法升级工作负载集群。

按照升级独立管理集群中的过程升级管理集群。

升级工作负载集群

对于从 v2.3.x 到 v2.4.x 以及将 v2.4.x 修补到 v2.4.y 的升级,都需要执行此步骤。

按照升级工作负载集群中的过程升级正在运行工作负载的工作负载集群。

升级后操作

升级集群后,还需要执行一些其他步骤以完成升级过程。

同步早于 n-2 的软件包版本

默认情况下安装在管理集群中的某些软件包(例如,cert-manager)可以在工作负载集群和共享服务集群中作为 CLI 管理的软件包进行安装。将管理集群升级到最新的 Tanzu Kubernetes Grid 版本后,其默认软件包将自动更新。

您可以在不同的工作负载集群中运行不同版本的 CLI 管理的软件包。在工作负载集群中,您可以运行最新受支持的 CLI 管理的软件包版本或先前安装的两个 Tanzu Kubernetes Grid 版本中的软件包版本。例如,如果最新打包版本的 cert-manager 为 v1.11.1 并且先前两个 Tanzu Kubernetes Grid 安装运行的是 cert-manager v1.10.1 和 v1.7.2,则可以在工作负载集群中运行 cert-manager 版本 v1.11.1、v1.10.1 和 v1.7.2。

对于运行的软件包版本比管理集群中的软件包版本早 n-2 个安装的 Tanzu Kubernetes Grid 版本的任何工作负载集群,必须更新软件包存储库(请参见更新软件包存储库),然后在工作负载集群中升级软件包(请参见更新软件包)。如果不升级软件包版本,您将无法更新软件包配置,因为软件包存储库可能不包含超过 n-2 的较旧软件包版本。

重要

如果已在工作负载集群上安装 Prometheus,并将工作负载集群升级到 Kubernetes v1.25,则必须将 Prometheus 升级到最新版本 2.37.0+vmware.3-tkg.1。Prometheus 软件包的早期版本(例如版本 2.37.0+vmware.1-tkg.1)与 Kubernetes 1.25 不兼容。

提供程序特定的升级后操作

根据集群是在 vSphere、AWS 还是 Azure 上运行,在升级集群后必须执行某些操作。

vSphere
Tanzu Kubernetes Grid 升级后升级 NSX Advanced Load Balancer 配置

如果在 TKG v2.3 安装中未启用 NSX ALB,请参见安装和配置 NSX Advanced Load Balancer,了解有关如何安装 NSX ALB 的信息。

如果在 TKG v2.3 安装中启用了 NSX ALB,请参见《Tanzu Kubernetes Grid v2.4 发行说明》,此版本支持 Avi 控制器版本,并根据需要将 Avi 控制器升级到兼容版本。有关如何升级 Avi 控制器,请参见 Avi Vantage 的灵活升级

AWS
Tanzu Kubernetes Grid 升级后安装 AWS EBS CSI 驱动程序

TKG v2.2 及更高版本会在新创建的工作负载集群上自动安装 AWS EBS CSI 驱动程序,但要在从 v2.1 升级的集群上运行 AWS EBS CSI,必须手动安装该驱动程序。按照以下过程在 TKG v2.1 或更低版本中创建且从未安装 AWS EBS CSI 驱动程序的集群上手动安装 AWS EBS CSI 驱动程序。

  1. 授予 AWS EBS CSI 驱动程序的权限:

    export AWS_REGION={YOUR_AWS_REGION}
    tanzu mc permissions aws set
    
  2. 对于使用 CSI 存储的每个工作负载集群:

    1. 导出以下环境变量并设置功能标记:

      export _TKG_CLUSTER_FORCE_ROLE="management"
      export FILTER_BY_ADDON_TYPE="csi/aws-ebs-csi-driver"
      export NAMESPACE="tkg-system"
      export DRY_RUN_MODE="legacy"
      tanzu config set features.cluster.allow-legacy-cluster true
      

      在上面的示例中,将 NAMESPACE 设置为集群的命名空间 tkg-system

    2. 生成 CSI 驱动程序清单:

      tanzu cl create ${TARGET_CLUSTER_NAME} --dry-run -f ~/MANAGEMENT_CLUSTER_CREATE_CONFIG.yaml > csi-driver-addon-manifest.yaml
      

      其中,TARGET_CLUSTER_NAME 是在其上安装 CSI 驱动程序的集群的名称。

    3. 使用工作负载集群的命名空间更新 csi-driver-addon-manifest.yaml 中元数据中的密钥命名空间。使用 kubectl get cluster -A 命令查看集群的命名空间。

    4. 在管理集群的上下文中应用更改:

      kubectl apply -f csi-driver-addon-manifest.yaml
      
    5. 取消设置以下环境变量和功能标记:

      unset _TKG_CLUSTER_FORCE_ROLE
      unset FILTER_BY_ADDON_TYPE
      unset NAMESPACE
      unset DRY_RUN_MODE
      tanzu config set features.cluster.allow-legacy-cluster false
      
  3. 对于使用 CSI 存储的管理集群:

    1. 导出以下环境变量:

      export _TKG_CLUSTER_FORCE_ROLE="management"
      export FILTER_BY_ADDON_TYPE="csi/aws-ebs-csi-driver"
      export NAMESPACE="tkg-system"
      export DRY_RUN_MODE="legacy"
      tanzu config set features.cluster.allow-legacy-cluster true
      

      在上面的示例中,将 NAMESPACE 设置为集群的命名空间 tkg-system

    2. 生成 CSI 驱动程序清单:

      tanzu mc create ${MANAGEMENT_CLUSTER_NAME} --dry-run -f ~/MANAGEMENT_CLUSTER_CREATE_CONFIG.yaml > csi-driver-addon-manifest.yaml
      

      其中,MANAGEMENT_CLUSTER_NAME 是管理集群的名称。

    3. 使用管理集群的命名空间更新 csi-driver-addon-manifest.yaml 中元数据中的密钥命名空间。使用 kubectl get cluster -A 命令查看集群的命名空间。

    4. 在管理集群的上下文中应用更改:

      kubectl apply -f csi-driver-addon-manifest.yaml
      
    5. 取消设置以下环境变量和功能标记:

      unset _TKG_CLUSTER_FORCE_ROLE
      unset FILTER_BY_ADDON_TYPE
      unset NAMESPACE
      unset DRY_RUN_MODE
      tanzu config set features.cluster.allow-legacy-cluster false
      
Azure
Tanzu Kubernetes Grid 升级后安装 Azure Disk CSI 驱动程序

TKG v2.1 及更高版本会在新创建的工作负载集群上自动安装 Azure Disk CSI 驱动程序,但要在从 v1.6 升级的集群上运行 Azure Disk CSI,必须手动安装该驱动程序。按照以下过程在 TKG v1.6 或更低版本中创建且从未安装 Azure Disk CSI 驱动程序的集群上手动安装 Azure Disk CSI 驱动程序。

  1. 导出以下环境变量并设置功能标记:

    export _TKG_CLUSTER_FORCE_ROLE="management"
    export FILTER_BY_ADDON_TYPE="csi/azuredisk-csi-driver"
    export NAMESPACE="tkg-system"
    export DRY_RUN_MODE="legacy"
    tanzu config set features.cluster.allow-legacy-cluster true
    

    在上面的示例中,将 NAMESPACE 设置为集群的命名空间 tkg-system

  2. 对于使用 CSI 存储的每个工作负载集群:

    1. 生成 CSI 驱动程序清单:

      tanzu cl create ${TARGET_CLUSTER_NAME} --dry-run -f ~/MANAGEMENT_CLUSTER_CREATE_CONFIG.yaml > csi-driver-addon-manifest.yaml
      

      其中,TARGET_CLUSTER_NAME 是在其上安装 CSI 驱动程序的集群的名称。

    2. 使用工作负载集群的命名空间更新 csi-driver-addon-manifest.yaml 中元数据中的密钥命名空间。使用 kubectl get cluster -A 命令查看集群的命名空间。

    3. 在管理集群的上下文中应用更改:

      kubectl apply -f csi-driver-addon-manifest.yaml
      
    4. 取消设置以下环境变量和功能标记:

      unset _TKG_CLUSTER_FORCE_ROLE
      unset FILTER_BY_ADDON_TYPE
      unset NAMESPACE
      unset DRY_RUN_MODE
      tanzu config set features.cluster.allow-legacy-cluster false
      
  3. 对于使用 CSI 存储的管理集群:

    1. 导出以下环境变量:

      export _TKG_CLUSTER_FORCE_ROLE="management"
      export FILTER_BY_ADDON_TYPE="csi/azuredisk-csi-driver"
      export NAMESPACE="tkg-system"
      export DRY_RUN_MODE="legacy"
      tanzu config set features.cluster.allow-legacy-cluster true
      

      在上面的示例中,将 NAMESPACE 设置为集群的命名空间 tkg-system

    2. 生成 CSI 驱动程序清单:

      tanzu mc create ${MANAGEMENT_CLUSTER_NAME} --dry-run -f ~/MANAGEMENT_CLUSTER_CREATE_CONFIG.yaml > csi-driver-addon-manifest.yaml
      

      其中,MANAGEMENT_CLUSTER_NAME 是管理集群的名称。

    3. 使用管理集群的命名空间更新 csi-driver-addon-manifest.yaml 中元数据中的密钥命名空间。使用 kubectl get cluster -A 命令查看集群的命名空间。

    4. 在管理集群的上下文中应用更改:

      kubectl apply -f csi-driver-addon-manifest.yaml
      
    5. 取消设置以下环境变量和功能标记:

      unset _TKG_CLUSTER_FORCE_ROLE
      unset FILTER_BY_ADDON_TYPE
      unset NAMESPACE
      unset DRY_RUN_MODE
      tanzu config set features.cluster.allow-legacy-cluster false
      

Tanzu Kubernetes Grid 升级后安装 Azure File CSI 驱动程序

如果集群在之前尚未安装,请在将 Tanzu Kubernetes Grid 安装升级到 v2.4+ 后,按照此过程安装 Azure 文件 CSI 驱动程序。

  1. 导出以下环境变量并设置功能标记:

    export _TKG_CLUSTER_FORCE_ROLE="management"
    export FILTER_BY_ADDON_TYPE="csi/azurefile-csi-driver"
    export NAMESPACE="tkg-system"
    export DRY_RUN_MODE="legacy"
    tanzu config set features.cluster.allow-legacy-cluster true
    

    在上面的示例中,将 NAMESPACE 设置为集群的命名空间 tkg-system

  2. 对于使用 CSI 存储的每个工作负载集群:

    1. 生成 CSI 驱动程序清单:

      tanzu cl create ${TARGET_CLUSTER_NAME} --dry-run -f ~/MANAGEMENT_CLUSTER_CREATE_CONFIG.yaml > csi-driver-addon-manifest.yaml
      

      其中,TARGET_CLUSTER_NAME 是在其上安装 CSI 驱动程序的集群的名称。

    2. 使用工作负载集群的命名空间更新 csi-driver-addon-manifest.yaml 中元数据中的密钥命名空间。使用 kubectl get cluster -A 命令查看集群的命名空间。

    3. 在管理集群的上下文中应用更改:

      kubectl apply -f csi-driver-addon-manifest.yaml
      
    4. 取消设置以下环境变量和功能标记:

      unset _TKG_CLUSTER_FORCE_ROLE
      unset FILTER_BY_ADDON_TYPE
      unset NAMESPACE
      unset DRY_RUN_MODE
      tanzu config set features.cluster.allow-legacy-cluster false
      
  3. 对于使用 CSI 存储的管理集群:

    1. 导出以下环境变量:

      export _TKG_CLUSTER_FORCE_ROLE="management"
      export FILTER_BY_ADDON_TYPE="csi/azurefile-csi-driver"
      export NAMESPACE="tkg-system"
      export DRY_RUN_MODE="legacy"
      tanzu config set features.cluster.allow-legacy-cluster true
      

      在上面的示例中,将 NAMESPACE 设置为集群的命名空间 tkg-system

    2. 生成 CSI 驱动程序清单:

      tanzu mc create ${MANAGEMENT_CLUSTER_NAME} --dry-run -f ~/MANAGEMENT_CLUSTER_CREATE_CONFIG.yaml > csi-driver-addon-manifest.yaml
      

      其中,MANAGEMENT_CLUSTER_NAME 是管理集群的名称。

    3. 使用管理集群的命名空间更新 csi-driver-addon-manifest.yaml 中元数据中的密钥命名空间。使用 kubectl get cluster -A 命令查看集群的命名空间。

    4. 在管理集群的上下文中应用更改:

      kubectl apply -f csi-driver-addon-manifest.yaml
      
    5. 取消设置以下环境变量和功能标记:

      unset _TKG_CLUSTER_FORCE_ROLE
      unset FILTER_BY_ADDON_TYPE
      unset NAMESPACE
      unset DRY_RUN_MODE
      tanzu config set features.cluster.allow-legacy-cluster false
      


升级崩溃恢复和诊断

对于从 v2.3.x 到 v2.4.x 以及将 v2.4.x 修补到 v2.4.y 的升级,都需要执行此步骤。

有关如何升级崩溃恢复和诊断的信息,请参见安装或升级崩溃恢复和诊断二进制文件

下一步操作

检查升级的管理集群或在 Tanzu Mission Control 中注册它们。请参见检查并注册新部署的独立管理集群

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