升级工作负载集群

本主题介绍了如何升级 Tanzu Kubernetes Grid (TKG) 工作负载集群。对于具有独立管理集群的 TKG,首先需要升级管理工作负载集群的管理集群。

重要

独立管理集群和工作负载集群使用客户端证书对客户端进行身份验证。这些证书的有效期为一年。要续订证书,请至少每年升级一次集群。

必备条件

基础架构必备条件

vSphere
如果要升级 vSphere 上运行的群集,则在将群集升级到 Tanzu Kubernetes Grid 版本的非默认 Kubernete 版本之前,vSphere 中必须提供适当的基本映像模板 OVA 作为虚拟机模板。有关将 OVA 文件导入到 vSphere 的信息,请参见 准备在 vSphere 上升级 集群
AWS
如果要升级在 Amazon Web Services (AWS) 上运行的集群,则包含受支持 Kubernetes 版本的 Amazon 2 Amazon 计算机映像 (AMI) 将公开提供给所有受支持 AWS 区域中的所有 AWS 用户。Tanzu Kubernetes Grid 会自动为升级期间指定的 Kubernetes 版本使用相应的 AMI。
Azure
如果要升级在 Azure 上运行的集群,请确保已完成 准备升级 Azure 上的集群中的步骤。


过程

升级过程将升级工作负载集群的所有控制平面和工作节点中的 Kubernetes 版本。

  1. 要查看可用管理集群的交互式列表并选择管理要升级的集群的管理集群,请运行 tanzu login 命令:

    tanzu login
    
  2. 要列出工作负载集群,请运行:

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

    具有 --include-management-cluster -A 选项的 tanzu cluster list 命令会显示管理集群及其管理的所有集群中运行的 Kubernetes 版本。在此示例中,您可以看到管理集群已升级到 v1.24.10,但工作负载集群运行的是旧版本的 Kubernetes。

    NAME                 NAMESPACE   STATUS    CONTROLPLANE  WORKERS  KUBERNETES         ROLES       PLAN  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
    
  3. 要了解管理集群提供了哪些版本的 Kubernetes,请运行 tanzu kubernetes-release get 命令:

    tanzu kubernetes-release get
    

    输出将列出可用于部署集群的所有 Kubernetes 版本,并具有以下注释:

    • COMPATIBLE:当前的管理集群可以使用此 Tanzu Kubernetes 版本 (tkr) 部署工作负载集群。
    • UPDATES AVAILABLE:此 tkr 在其 Kubernetes 版本行中不是最新的。运行此 tkr 版本的任何工作负载集群都可以升级到较新版本。

    例如:

    NAME                       VERSION                  COMPATIBLE  ACTIVE  UPDATES AVAILABLE
    v1.22.17---vmware.1-tkg.1  v1.22.17+vmware.1-tkg.1  True        True
    v1.23.16---vmware.1-tkg.1  v1.23.16+vmware.1-tkg.1  True        True
    v1.24.10---vmware.1-tkg.1  v1.24.10+vmware.1-tkg.1  True        True
    
  4. 要发现运行较旧 tkr 版本的工作负载集群可以升级到的较新 tkr 版本,请运行 tanzu kubernetes-release available-upgrades get 命令,同时指定当前 tkr 版本:

    tanzu kubernetes-release available-upgrades get v1.23.10---vmware.1-tkg.1
    

    此命令将列出运行指定版本的集群可以升级到的所有可用 Kubernetes 版本。

    您还可以通过在 tanzu cluster available-upgrades get 命令中指定集群名称来发现特定工作负载集群可用的 tkr 版本:

    tanzu cluster available-upgrades get k8s-1-23-10-cluster
    

    此命令将列出与指定集群兼容的所有 Kubernetes 版本。

    升级 tkr 版本时,不能跳过次要版本。例如,无法将集群直接从 v1.22.x 升级到 v1.24.x。必须先将 v1.22.x 集群升级到 v1.23.x,然后再将集群升级到 v1.24.x。

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

    export AZURE_CLIENT_SECRET=YOUR-AZURE-CLIENT-SECRET
    
  6. 运行 tanzu cluster upgrade CLUSTER-NAME 命令并输入 y 进行确认。要跳过确认步骤,请指定 --yes 选项。

    要将集群升级到此版本 Tanzu Kubernetes Grid 的默认 Kubernetes 版本,请在没有任何选项的情况下运行 tanzu cluster upgrade 命令。在此版本中,默认版本为 v1.24.10。例如:

    tanzu cluster upgrade k8s-1-23-10-cluster
    

    如果集群未在 default 命名空间中运行,请指定 --namespace 选项:

    tanzu cluster upgrade CLUSTER-NAME --namespace NAMESPACE-NAME
    

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

    tanzu cluster upgrade CLUSTER-NAME --timeout 45m0s
    
    重要

    Azure 上的操作有时比其他平台上所需的时间长。如果要升级 Azure 上的集群,请定期设置 --timeout 选项以避免出现故障。

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

    例如,在 vSphere 上,如果同时上载了使用 Kubernetes v1.23.16 的 Photon 模板和 Ubuntu OVA 模板,请指定 --os-name ubuntu 以升级要在 Ubuntu 上运行的工作负载集群。

    tanzu cluster upgrade CLUSTER-NAME --os-name ubuntu
    

    由于无法跳过次要版本的 tkr,如果尝试升级位于默认版本后面的多个次要版本的集群,升级命令将失败。例如,无法直接从 v1.22.x 升级到 v1.24.x。要将集群升级到不是此版本 Tanzu Kubernetes Grid 的默认版本的 Kubernetes 版本,请使用所选版本的 NAME 指定 --tkr 选项,如上面的 tanzu kubernetes-release get所列。例如,将集群 k8s-1-22-13-cluster 从 v1.22.13 升级到 v1.23.16。

    tanzu cluster upgrade k8s-1-22-13-cluster --tkr v1.23.16---vmware.1-tkg.1
    
  7. 升级完成后,运行 tanzu cluster list 命令以检查工作负载集群是否已升级:

    tanzu cluster list --include-management-cluster -A
    
  8. 重新生成管理员 kubeconfig

    tanzu cluster kubeconfig get CLUSTER-NAME --admin
    

    其中,CLUSTER-NAME 是工作负载集群的名称。

    重要

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

  9. 如果使用的是 LDAP 或 OIDC 身份提供程序,请确认您可以使用 kubectl 对集群进行身份验证。例如:

    kubectl get pods -A --kubeconfig my-cluster-credentials
    
  10. 升级工作负载集群上运行的任何 CLI 管理的软件包,例如 Contour、Fluent Bit 或 Prometheus。有关升级 CLI 管理的软件包的详细信息,请参见更新软件包

下一步操作

现在,您可以继续使用 Tanzu CLI 来管理集群。有关详细信息,请参见使用 Tanzu CLI 创建和管理 TKG 2.1 工作负载集群

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