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

Para iniciar una actualización gradual de un clúster de servicio TKG, edite la definición de la vmClass mediante el comando kubectl edit. Se inician los nodos nuevos basados en la clase modificada y los nodos anteriores se desactivan.
Nota: No se puede usar el comando kubectl apply para actualizar un clúster de TKG implementado.

Requisitos previos

Esta tarea requiere el uso del comando de edición kubectl. Este comando 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. Para configurar un editor para kubectl, consulte Configurar un editor de texto para Kubectl.

Procedimiento

  1. Realice la autenticación con Supervisor.
    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 TKG de destino.
    kubectl config use-context SUPERVISOR-NAMESPACE
  3. Describa el clúster de TKG de destino y compruebe la clase de máquina virtual.
    Clúster v1alpha3:
    kubectl describe tanzukubernetescluster CLUSTER-NAME
    Clúster v1beta1:
    kubectl describe cluster CLUSTER-NAME
  4. Enumere y describa las clases de máquinas virtuales disponibles en el espacio de nombres de vSphere en el que se aprovisiona el clúster.
    kubectl get virtualmachineclass
    Nota: La clase de VM de destino debe estar asociada con el espacio de nombres de vSphere en el que se aprovisionó el clúster de TKG. Consulte el servicio de TKG o la documentación del servicio de máquina virtual para obtener más información sobre el enlace de las clases de máquinas virtuales a espacios de nombres de vSphere.
  5. Ejecute el siguiente comando para editar el manifiesto del clúster.
    Clúster v1alpha3:
    kubectl edit tanzukubernetescluster/CLUSTER-NAME
    Clúster v1beta1:
    kubectl edit cluster/CLUSTER-NAME
  6. Edite el manifiesto cambiando la cadena de la clase de máquina virtual.
    Por ejemplo, si utiliza un clúster v1alpah3, cambie el manifiesto del clúster para que no utilice la clase de máquina virtual guaranteed-medium para los nodos de trabajo:
     topology:
        controlPlane:
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.27.11---vmware.1-fips.1-tkg.2
          vmClass: guaranteed-medium
        nodePools:
        - name: worker-nodepool-a1
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.27.11---vmware.1-fips.1-tkg.2
          vmClass: guaranteed-medium
    Para usar la clase de máquina virtual guaranteed-large para los nodos de trabajo:
     topology:
        controlPlane:
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.27.11---vmware.1-fips.1-tkg.2
          vmClass: guaranteed-medium
        nodePools:
        - name: worker-nodepool-a1
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.27.11---vmware.1-fips.1-tkg.2
          vmClass: guaranteed-large
    Del mismo modo, si aprovisionó un clúster v1beta1, actualice el valor de variables.vmclass a la clase de máquina virtual de destino.
  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, el controlador de TKG 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 Configurar un editor de texto para Kubectl.
  9. Compruebe que el clúster se haya actualizado.
    Clúster v1alpha3:
    kubectl get tanzukubernetescluster
    Clúster v1beta1:
    kubectl get cluster