本主题介绍了如何升级 Tanzu Kubernetes Grid (TKG) 工作负载集群。对于具有独立管理集群的 TKG,首先需要升级管理工作负载集群的管理集群。
重要独立管理集群和工作负载集群使用客户端证书对客户端进行身份验证。这些证书的有效期为一年。要续订证书,请至少每年升级一次集群。
升级过程将升级工作负载集群的所有控制平面和工作节点中的 Kubernetes 版本。
要查看可用管理集群的交互式列表并选择管理要升级的集群的管理集群,请运行 tanzu login
命令:
tanzu login
要列出工作负载集群,请运行:
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
要了解管理集群提供了哪些版本的 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
要发现运行较旧 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。
如果集群正在 Azure 上运行,请在升级集群之前设置 AZURE_CLIENT_SECRET
环境变量:
export AZURE_CLIENT_SECRET=YOUR-AZURE-CLIENT-SECRET
运行 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
升级完成后,运行 tanzu cluster list
命令以检查工作负载集群是否已升级:
tanzu cluster list --include-management-cluster -A
重新生成管理员 kubeconfig
:
tanzu cluster kubeconfig get CLUSTER-NAME --admin
其中,CLUSTER-NAME
是工作负载集群的名称。
重要如果在升级后不续订
kubeconfig
,则集群过期后将无法访问该集群。
如果使用的是 LDAP 或 OIDC 身份提供程序,请确认您可以使用 kubectl
对集群进行身份验证。例如:
kubectl get pods -A --kubeconfig my-cluster-credentials
升级工作负载集群上运行的任何 CLI 管理的软件包,例如 Contour、Fluent Bit 或 Prometheus。有关升级 CLI 管理的软件包的详细信息,请参见更新软件包。
现在,您可以继续使用 Tanzu CLI 来管理集群。有关详细信息,请参见使用 Tanzu CLI 创建和管理 TKG 2.1 工作负载集群。