Actualizar clústeres de carga de trabajo

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.

Requisitos previos

Requisitos previos de infraestructura

Importante

Tanzu 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.

vSphere
Si va a actualizar clústeres que se ejecutan en vSphere, antes de poder actualizar los clústeres a una versión no predeterminada de Kubernetes para su versión de Tanzu Kubernetes Grid, los archivos OVA de plantilla de imagen base adecuados deben estar disponibles en vSphere como plantillas de máquina virtual. Para obtener información sobre la importación de archivos OVA en vSphere, consulte la pestaña vSphere en Preparar para actualizar clústeres.
AWS
Si va a actualizar clústeres que se ejecutan en Amazon Web Services (AWS), las imágenes de máquina de Amazon (AMI) de Amazon Linux 2 que incluyen las versiones de Kubernetes compatibles estarán disponibles públicamente para todos los usuarios de AWS, en todas las regiones de AWS compatibles. Tanzu Kubernetes Grid utiliza automáticamente la AMI adecuada para la versión de Kubernetes que se especifica durante la actualización.
Azure
Si va a actualizar clústeres que se ejecutan en Azure, asegúrese de completar los pasos descritos en la pestaña Azure en Preparar para actualizar clústeres.


Procedimiento

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.

  1. 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
    
  2. 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
    
  3. 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
    
  4. 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.

  5. (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
    
  6. (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.

    1. 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
        }
      } 
      
    2. 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
      
  7. 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
    
    Importante

    Las 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
    
  8. 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
    
  9. 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.

    Importante

    Si no renueva kubeconfig después de actualizar, no podrá acceder al clúster una vez que caduque.

  10. 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
    
  11. 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.

    Importante

    Si 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ón 2.37.0+vmware.1-tkg.1, no son compatibles con Kubernetes 1.25.

Actualizar un clúster de Edge con una plantilla de máquina virtual local

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:

  1. 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.

  2. Edite el manifiesto del objeto Cluster para actualizar:

    kubectl edit cluster CLUSTER-NAME
    

    Donde CLUSTER-NAME es el nombre del clúster

  3. En spec.topology actualice lo siguiente:

    • Establezca version para reflejar la nueva versión de Kubernetes.
    • Establezca todos los valores de 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.
  4. Guarde y salga para aplicar el nuevo ajuste del objeto Cluster.

Qué hacer a continuación

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.

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