可以通过升级 Tanzu Kubernetes 版本 版本更新 Tanzu Kubernetes 集群。

可以通过升级 Tanzu Kubernetes 版本版本对 Tanzu Kubernetes集群启动滚动更新。具体操作方式取决于所使用的 Tanzu Kubernetes Grid 服务 API 版本。
TKGS API 版本 版本更新方法
v1alpha2 API 更新集群清单的 spec.topology.controlPlane.tkr.refernece.namespec.topology.nodePools[*].tkr.reference.name 属性中的 TKR NAME 字符串。请参见将集群规范转换为 Tanzu Kubernetes Grid 服务 v1alpha2 API 后更新 Tanzu Kubernetes 版本
v1alpha1 API 更新集群清单的 spec.distribution.versionspec.distribution.fullVersion 属性中的 DISTRIBUTION 版本。请参见下文。

前提条件

确认已完成更新 Tanzu Kubernetes 集群的必备条件。请参见更新 Tanzu Kubernetes 集群

此任务使用命令 kubectl edit tanzukubernetescluster/CLUSTER-NAME 更新集群清单。kubectl edit 命令将在您的 KUBE_EDITOR 或 EDITOR 环境变量定义的文本编辑器中打开集群清单。保存文件时,将使用所做更改更新集群。请参见为 Kubectl 指定默认的文本编辑器

过程

  1. 主管集群 进行身份验证。请参见以 vCenter Single Sign-On 用户的身份连接到 主管集群
    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
  2. 将上下文切换到置备了目标 Tanzu Kubernetes 集群的 vSphere 命名空间
    kubectl config use-context SUPERVISOR-NAMESPACE
  3. 获取目标 Tanzu Kubernetes 集群和版本。
    kubectl get tanzukubernetescluster
    例如,使用 TKGS v1alpha2 API 的结果:
    kubectl get tanzukubernetescluster
    NAMESPACE        NAME            CONTROL PLANE   WORKER   TKR NAME                             AGE    READY   TKR COMPATIBLE   UPDATES AVAILABLE
    tkgs-cluster-1   test-cluster    3               3        v1.21.2---vmware.1-tkg.1.ee25d55     38h    True    True             [1.21.2+vmware.1-tkg.1.ee25d55]
    例如,使用 TKGS v1alpha1 API 的结果:
    kubectl get tanzukubernetescluster
    NAME             CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1   3               3        v1.19.16+vmware.1-tkg.1.df910e2  19h   running
  4. 列出可用的 Tanzu Kubernetes 版本。
    kubectl get tanzukubernetesreleases
  5. 运行以下命令以编辑集群清单。
    kubectl edit tanzukubernetescluster/CLUSTER-NAME
  6. 编辑清单,更新 Tanzu Kubernetes 版本。具体操作方式取决于所使用的 TKGS API 版本。
    如果使用的是 TKGS v1alpha2 API,请更新 TKR NAME 字符串。请参见 将集群规范转换为 Tanzu Kubernetes Grid 服务 v1alpha2 API 后更新 Tanzu Kubernetes 版本
    如果使用的是 TKGS v1alpha1 API,举例来说,可以将清单从:
    spec:
      distribution:
        fullVersion: v1.19.16+vmware.1-tkg.1.df910e2
        version: v1.19.16
    更新为:
    spec:
      distribution:
        fullVersion: null
        version: v1.20.12
    注: 如果使用的是 TKGS v1alpha1 API,可以指定完全限定版本,也可以使用版本快捷方式,如 version: v1.20.12(解析为与该修补程序版本匹配的最新映像)或 version: v1.20(解析为最新匹配的修补程序版本)。解析后的版本在集群清单中显示为 fullVersion。要使用快捷方式执行版本升级,必须取消设置 fullVersion 或将其设为 null,以避免在发现过程中可能出现版本不匹配问题。
  7. 保存对清单文件所做的更改。
    保存该文件时,kubectl 会将更改应用到集群。在后台,主管集群中的虚拟机服务置备新的工作节点。
  8. 验证 kubectl 是否报告清单编辑已成功记录。
    kubectl edit tanzukubernetescluster/tkgs-cluster-1
    tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 edited
    注: 如果显示错误,或者 kubectl 未报告集群清单已成功编辑,请确保使用 KUBE_EDITOR 环境变量正确配置了默认文本编辑器。请参见 为 Kubectl 指定默认的文本编辑器
  9. 验证集群是否正在更新。
    kubectl get tanzukubernetescluster
    NAME             CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1   3               3        v1.20.12+vmware.1-tkg.1.b9a42f3  21h   updating
  10. 验证集群是否已更新。
    kubectl get tanzukubernetescluster
    NAME             CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1   3               3        v1.20.12+vmware.1-tkg.1.b9a42f3   22h   running