可以通过升级 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 字符串。请参见将集群规范转换为 TKGS 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 字符串。请参见 将集群规范转换为 TKGS 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