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

Puede iniciar una actualización gradual de un clúster de TKG 2.0 si cambia la definición de VirtualMachineClass. Los nodos nuevos basados en la clase modificada se iniciarán y los nodos anteriores se desactivarán.

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áquina virtual disponibles en el espacio de nombres.
    kubectl get virtualmachineclassbindings
    Nota: La VirtualMachineClass debe estar enlazada al espacio de nombres de vSphere donde se aprovisiona el clúster de TKG.
  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.22.9---vmware.1-tkg.1.cc71bc8
          vmClass: guaranteed-medium
        nodePools:
        - name: worker-nodepool-a1
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.22.9---vmware.1-tkg.1.cc71bc8
          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.22.9---vmware.1-tkg.1.cc71bc8
          vmClass: guaranteed-medium
        nodePools:
        - name: worker-nodepool-a1
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.22.9---vmware.1-tkg.1.cc71bc8
          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