Puede actualizar un clúster de Tanzu Kubernetes si cambia la clase de máquina virtual que se utiliza para alojar los nodos del clúster.

servicio Tanzu Kubernetes Grid admite la actualización de un clúster cambiando la definición de VirtualMachineClass. Si lo hace, el servicio implementa gradualmente los nodos nuevos con esa nueva clase y reduce la velocidad de los nodos antiguos. Consulte Acerca de las actualizaciones de clústeres de servicio Tanzu Kubernetes Grid.
Nota: La VirtualMachineClass debe estar enlazada al espacio de nombres de vSphere donde se aprovisiona el clúster de Tanzu Kubernetes. Consulte Clases de máquina virtual para clústeres de Tanzu Kubernetes.

Requisitos previos

Esta tarea utiliza el comando kubectl edit tanzukubernetescluster/CLUSTER-NAME para actualizar el manifiesto del clúster. El comando kubectl edit abre el manifiesto del clúster en el editor de texto definido por las variables de entorno KUBE_EDITOR o EDITOR. Al guardar el archivo, el clúster se actualiza con los cambios. Consulte Especificar un editor de texto predeterminado para Kubectl.

Procedimiento

  1. Realice la autenticación con clúster supervisor. Consulte Conectarse al clúster supervisor como usuario vCenter Single Sign-On.
    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
  2. Cambie el contexto al espacio de nombres de vSphere donde se aprovisiona el clúster de Tanzu Kubernetes de destino.
    kubectl config use-context SUPERVISOR-NAMESPACE
  3. Describa el clúster de Tanzu Kubernetes de destino y compruebe la clase de máquina virtual.
    kubectl describe tanzukubernetescluster CLUSTER-NAME
    Por ejemplo, este clúster utiliza la clase de máquina virtual best-effort-medium:
    Spec:
      ...
      Topology:
        Control Plane:
          Class:          best-effort-medium
          ...
        Workers:
          Class:          best-effort-medium
          ...
    
  4. Enumere y describa las clases de máquina virtual disponibles en el espacio de nombres.
    kubectl get virtualmachineclassbindings
    Nota: El comando kubectl get virtualmachineclasses enumera todas las clases de máquina virtual presentes en el clúster supervisor. Debido a que debe asociar las clases de máquina virtual con el espacio de nombres de vSphere, solo puede usar las clases de máquina virtual que están enlazadas al espacio de nombres de destino.
  5. Ejecute el siguiente comando para editar el manifiesto del clúster.
    kubectl edit tanzukubernetescluster/CLUSTER-NAME
  6. Puede editar el manifiesto si cambia la cadena de version y desactiva o anula fullVersion para evitar un posible error de coincidencia de versiones durante la detección.
    Por ejemplo, cambie el uso de la clase de máquina virtual best-effort-medium en el manifiesto del clúster para los nodos de trabajo y el plano de control:
    spec:
      topology:
        controlPlane:
          class: best-effort-medium
          ...
        workers:
          class: best-effort-medium
          ...
    
    Para usar la clase de máquina virtual guaranteed-large para los nodos de trabajo y el plano de control:
    spec:
      topology:
        controlPlane:
          class: guaranteed-large
          ...
        workers:
          class: guaranteed-large
          ...
    
  7. Guarde los cambios que hizo en el archivo de manifiesto.
    Cuando guarde el archivo, kubectl aplicará los cambios al clúster. En segundo plano, servicio Tanzu Kubernetes Grid aprovisiona las máquinas virtuales del nuevo nodo y reduce la velocidad de las antiguas.
  8. Compruebe que kubectl notifique el correcto registro de los cambios en el manifiesto.
    kubectl edit tanzukubernetescluster/tkgs-cluster-1
    tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 edited
    Nota: Si recibe un error, o kubectl no informa de que el manifiesto del clúster se editó correctamente, asegúrese de haber configurado bien el editor de texto predeterminado con la variable de entorno KUBE_EDITOR. Consulte Especificar un editor de texto predeterminado para Kubectl.
  9. Compruebe que el clúster se esté actualizando.
    kubectl get tanzukubernetescluster
    NAME             CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1   3               3        v1.18.5+vmware.1-tkg.1.c40d30d   21h   updating
  10. Compruebe que el clúster se haya actualizado.
    kubectl get tanzukubernetescluster
    NAME             CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1   3               3        v1.18.5+vmware.1-tkg.1.c40d30d   22h   running