En este tema se explica cómo actualizar los clústeres de carga de trabajo de Tanzu Kubernetes Grid (TKG). Para TKG con un clúster de administración independiente, primero debe actualizar el clúster de administración que administra los clústeres de carga de trabajo.
Importante
- Para actualizar los clústeres de carga de trabajo que implementó con supervisor en vSphere 8, consulte Actualizar clústeres implementados por supervisor (solo vSphere 8) en Crear y administrar clústeres de carga de trabajo de TKG 2.4 con la CLI de Tanzu.
- Para actualizar los clústeres de carga de trabajo de Edge que utilizan plantillas de máquina virtual almacenadas localmente, consulte Actualizar un clúster de Edge con una plantilla de máquina virtual local.
- Para actualizar los clústeres de carga de trabajo que creó a partir de un manifiesto de clúster personalizado, consulte Actualizar clústeres personalizados.
- Los clústeres de carga de trabajo y clústeres de administración independientes utilizan certificados de cliente para autenticar clientes. Estos certificados son válidos durante un año. Para renovarlos, actualice los clústeres al menos una vez al año.
ImportanteTanzu Kubernetes Grid v2.4.x es la última versión de TKG que admite la actualización de clústeres de carga de trabajo de TKG existentes en AWS y Azure. La capacidad para actualizar clústeres de carga de trabajo de TKG en AWS y Azure se eliminará en la versión 2.5 de Tanzu Kubernetes Grid.
A partir de ahora, VMware recomienda utilizar Tanzu Mission Control para crear clústeres nativos de AWS EKS y Azure AKS. Sin embargo, la actualización de los clústeres de carga de trabajo de TKG existentes en AWS y Azure sigue siendo totalmente compatible con todas las versiones de TKG hasta TKG v2.4.x, incluido.
Para obtener más información, consulte Desuso de la administración de TKG y los clústeres de carga de trabajo en AWS y Azure en las Notas de la versión de VMware Tanzu Kubernetes Grid v2.4.
El proceso de actualización actualiza la versión de Kubernetes en todos los nodos de trabajo y plano de control de los clústeres de carga de trabajo.
Para ver una lista interactiva de clústeres de administración disponibles y seleccionar el clúster de administración que administra los clústeres que desea actualizar, ejecute el comando tanzu context use
:
tanzu context use
Para enumerar los clústeres de carga de trabajo, ejecute:
tanzu cluster list --include-management-cluster -A
El comando tanzu cluster list
con las opciones --include-management-cluster -A
muestra la versión de Kubernetes que se ejecuta en el clúster de administración y todos los clústeres que administra. En este ejemplo, puede ver que el clúster de administración ya se actualizó a la versión 1.27.5, pero los clústeres de carga de trabajo ejecutan versiones anteriores de Kubernetes.
NAME NAMESPACE STATUS CONTROLPLANE WORKERS KUBERNETES ROLES PLAN TKR
k8s-1-25-10-cluster default running 1/1 1/1 v1.25-10+vmware.1 <none> dev v1.25.10---vmware.1-tkg.1
k8s-1-26-5-cluster default running 1/1 1/1 1.26.5+vmware.1 <none> dev v1.26.5---vmware.1-tkg.1
mgmt-cluster tkg-system running 1/1 1/1 v1.27.5+vmware.1 management dev v1.27.5---vmware.1-tkg.1
Para descubrir qué versiones de Kubernetes están disponibles mediante un clúster de administración, ejecute el comando tanzu kubernetes-release get
:
tanzu kubernetes-release get
El resultado enumera todas las versiones de Kubernetes que se pueden utilizar para implementar clústeres, con las siguientes notas:
COMPATIBLE
: El clúster de administración actual puede implementar clústeres de carga de trabajo con esta versión de Tanzu Kubernetes (tkr
).UPDATES AVAILABLE
: Este tkr
no es el más reciente en su línea de versión de Kubernetes. Cualquier clúster de carga de trabajo que ejecute esta versión de tkr
se puede actualizar a versiones más recientes.Por ejemplo:
NAME VERSION COMPATIBLE ACTIVE UPDATES AVAILABLE
v1.25.13---vmware.1-tiny.2-tkg.1 v1.25.13+vmware.1-tiny.2-tkg.1 True True
v1.25.13---vmware.2-tkg.1 v1.25.13+vmware.2-tkg.1 True True
v1.26.8---vmware.1-tiny.2-tkg.1 v1.26.8+vmware.1-tiny.2-tkg.1 True True
v1.26.8---vmware.2-tkg.1 v1.26.8+vmware.2-tkg.1 True True
v1.27.5---vmware.1-tiny.2-tkg.1 v1.27.5+vmware.1-tiny.2-tkg.1 True True
v1.27.5---vmware.1-tkg.1 v1.27.5+vmware.2-tkg.1 True True
Para detectar las versiones más recientes de tkr
a las que puede actualizar un clúster de carga de trabajo que ejecuta una versión anterior de tkr
, ejecute el comando tanzu kubernetes-release available-upgrades get
especificando la versión actual de tkr
:
tanzu kubernetes-release available-upgrades get v1.26.5---vmware.2-tkg.1
Este comando enumera todas las versiones de Kubernetes disponibles a las que se pueden actualizar los clústeres que ejecutan la versión especificada.
También puede detectar las versiones de tkr
que están disponibles para un clúster de carga de trabajo específico indicando el nombre del clúster en el comando tanzu cluster available-upgrades get
:
tanzu cluster available-upgrades get k8s-1-26-5-cluster
Este comando enumera todas las versiones de Kubernetes que son compatibles con el clúster especificado.
No puede omitir las versiones secundarias al actualizar la versión de tkr
. Por ejemplo, no puede actualizar un clúster directamente de la v1.25.x a la v1.27.x. Debe actualizar un clúster de la v1.25.x a la v1.26.x antes de actualizar el clúster a la v1.26.x.
(Azure) Si el clúster se ejecuta en Azure, establezca la variable de entorno AZURE_CLIENT_SECRET
antes de actualizar el clúster:
export AZURE_CLIENT_SECRET=YOUR-AZURE-CLIENT-SECRET
(vSphere) Cualquier clúster que utilice Node IPAM requiere al menos una dirección IP sin asignar en su grupo de direcciones IP antes de actualizar.
Para comprobar si un clúster utiliza Node IPAM, busque addressesFromPools
en el ajuste spec.topology.variables
network
del objeto clúster:
kubectl -n NAMESPACE get cluster CLUSTER-NAME -o json | jq '.spec.topology.variables[] | select(.name=="network")'
Donde CLUSTER-NAME
y NAMESPACE
son el espacio de nombres del clúster de carga de trabajo y del clúster de administración. Por ejemplo:
kubectl -n default get cluster my-work-cluster -o json | jq '.spec.topology.variables[] | select(.name=="network")'
{
"name": "network",
"value": {
"addressesFromPools": [
{
"apiGroup": "ipam.cluster.x-k8s.io",
"kind": "InClusterIPPool",
"name": "mgmt-cluster-nimbus"
}
],
"ipv6Primary": false
}
}
Para comprobar que el grupo de direcciones IP del clúster tiene direcciones sin utilizar, compare el número total del grupo con el número asignado actualmente, como resultado del siguiente comando:
kubectl -n NAMESPACE get ipaddress | grep POOL-NAME | wc -l
Ejecute el comando tanzu cluster upgrade CLUSTER-NAME
e introduzca y
para confirmar. Para omitir el paso de confirmación, especifique la opción --yes
.
Para actualizar el clúster a la versión predeterminada de Kubernetes para esta versión de Tanzu Kubernetes Grid, ejecute el comando tanzu cluster upgrade
sin opciones. En esta versión, la versión predeterminada es v1.27.5
. Por ejemplo:
tanzu cluster upgrade k8s-1-26-5-cluster
Si el clúster no se está ejecutando en el espacio de nombres default
, especifique la opción --namespace
:
tanzu cluster upgrade CLUSTER-NAME --namespace NAMESPACE-NAME
Si se agota el tiempo de espera de la actualización antes de que se complete, vuelva a ejecutar tanzu cluster upgrade
y especifique la opción --timeout
con un valor superior al valor predeterminado de 30 minutos:
tanzu cluster upgrade CLUSTER-NAME --timeout 45m0s
ImportanteLas operaciones en Azure a veces tardan más que en otras plataformas. Si va a actualizar clústeres en Azure, establezca de forma rutinaria la opción
--timeout
para evitar errores.
Si varias imágenes base de máquina virtual en su cuenta de IaaS tienen la misma versión de Kubernetes a la que va a actualizar, utilice la opción --os-name
para especificar el sistema operativo que desea. Consulte Seleccionar un sistema operativo durante la actualización del clúster para obtener más información.
Por ejemplo, en vSphere, si cargó plantillas OVA de Photon y Ubuntu con Kubernetes v1.27.5, especifique --os-name ubuntu
para actualizar su clúster de carga de trabajo para que se ejecute en Ubuntu.
tanzu cluster upgrade CLUSTER-NAME --os-name ubuntu
Puesto que no se pueden omitir versiones secundarias de tkr
, se produce un error en el comando de actualización si se intenta actualizar un clúster que tiene más de una versión secundaria detrás de la versión predeterminada. Por ejemplo, no puede actualizar directamente de la v1.25.x a la v1.27.x. Para actualizar un clúster a una versión de Kubernetes que no sea la versión predeterminada para esta versión de Tanzu Kubernetes Grid, especifique la opción --tkr
con el NAME
de la versión seleccionada, tal como se indica en tanzu kubernetes-release get
anteriormente. Por ejemplo, para actualizar el clúster k8s-1-24-11-cluster
de v1.25.13 a v1.26.8.
tanzu cluster upgrade k8s-1-25-13-cluster --tkr v1.26.8---vmware.1-tkg.1
Cuando finalice la actualización, ejecute el comando tanzu cluster list
para comprobar que se actualizó el clúster de carga de trabajo:
tanzu cluster list --include-management-cluster -A
Vuelva a generar el kubeconfig
de administrador:
tanzu cluster kubeconfig get CLUSTER-NAME --admin
Donde CLUSTER-NAME
es el nombre del clúster de carga de trabajo.
ImportanteSi no renueva
kubeconfig
después de actualizar, no podrá acceder al clúster una vez que caduque.
Si utiliza un proveedor de identidad ldap u OIDC, confirme que puede autenticarse en el clúster con kubectl
. Por ejemplo:
kubectl get pods -A --kubeconfig my-cluster-credentials
Actualice todos los paquetes administrados por la CLI, como Contour, Fluent Bit o Prometheus, que se ejecutan en los clústeres de carga de trabajo. Para obtener más información sobre cómo actualizar paquetes administrados por CLI, consulte Actualizar un paquete.
ImportanteSi instaló Prometheus en un clúster de carga de trabajo y actualiza el clúster de carga de trabajo a Kubernetes v1.25, debe actualizar Prometheus a la versión
2.37.0+vmware.3-tkg.1
como mínimo. Las versiones anteriores del paquete de Prometheus, por ejemplo, la versión2.37.0+vmware.1-tkg.1
, no son compatibles con Kubernetes 1.25.
No se puede utilizar el comando tanzu cluster upgrade
para actualizar la versión de Kubernetes de un clúster de carga de trabajo de Edge con una plantilla de máquina virtual local, como se describe en Especificar una plantilla de máquina virtual local anteriormente.
En su lugar, actualice la versión de Kubernetes del clúster de carga de trabajo de Edge de la siguiente manera:
Cargue la nueva plantilla de máquina virtual en el vCenter local y registre su ruta de acceso de inventario, por ejemplo, /dc0/vm/ubuntu-2004-kube-v1.27.5+vmware.1-tkg.1
.
Edite el manifiesto del objeto Cluster
para actualizar:
kubectl edit cluster CLUSTER-NAME
Donde CLUSTER-NAME
es el nombre del clúster
En spec.topology
actualice lo siguiente:
version
para reflejar la nueva versión de Kubernetes.vcenter.template
para actualizar, en todo el clúster o en implementaciones de máquinas individuales, en la ruta de acceso del inventario de la nueva plantilla local.Guarde y salga para aplicar el nuevo ajuste del objeto Cluster
.
Ahora puede seguir usando la CLI de Tanzu para administrar sus clústeres. Para obtener más información, consulte Crear y administrar clústeres de carga de trabajo de TKG 2.4 con CLI de Tanzu.