Puede ampliar un clúster de Tanzu Kubernetes horizontalmente cambiando el número de nodos o verticalmente, cambiando la clase de máquina virtual que aloja los nodos.

Operaciones de ampliación admitidas

En la tabla se enumeran las operaciones de ampliación admitidas para clústeres de Tanzu Kubernetes.
Tabla 1. Operaciones de ampliación admitidas para clústeres de Tanzu Kubernetes
Nodo Expansión horizontal Reducción horizontal Ampliación vertical
Plano de control No
Trabajador
Tenga en cuenta las siguientes consideraciones:
  • Al ampliar verticalmente un nodo de clúster, es posible que las cargas de trabajo ya no puedan ejecutarse en el nodo por falta de recursos disponibles. Por esta razón, puede que la ampliación horizontal sea el método preferido.
  • Las clases de máquina virtual no son inmutables. Si se escala horizontalmente un clúster de Tanzu Kubernetes después de editar una clase de máquina virtual utilizada por ese clúster, los nuevos nodos del clúster utilizan la definición de clase actualizada, pero los nodos del clúster existentes siguen usando la definición de clase inicial, lo que provoca un error de coincidencia. Consulte Clases de máquina virtual para clústeres de Tanzu Kubernetes.

Requisito previo para la ampliación: configurar la edición de Kubectl

Para escalar un clúster de Tanzu Kubernetes, actualice el manifiesto del clúster mediante el comando kubectl edit tanzukubernetescluster/CLUSTER-NAME. 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. Para obtener instrucciones sobre cómo configurar la variable de entorno, consulte Especificar un editor de texto predeterminado para Kubectl.

Al guardar los cambios del manifiesto, kubectl informa que las modificaciones se registraron correctamente, y el clúster se actualiza con los cambios.
kubectl edit tanzukubernetescluster/tkgs-cluster-1
tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 edited
Para cancelar, simplemente cierre el editor sin guardar.
kubectl edit tanzukubernetescluster/tkgs-cluster-1
Edit cancelled, no changes made.

Ampliar horizontalmente el plano de control

Para ampliar horizontalmente un clúster de Tanzu Kubernetes, aumente el número de nodos del plano de control de 1 a 3. El número de nodos del plano de control debe ser impar. No se puede realizar una ampliación vertical en el plano de control.
  1. Realice la autenticación con clúster supervisor.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. Cambie el contexto al espacio de nombres de vSphere en el que se aprovisiona el clúster de Tanzu Kubernetes.
    kubectl config use-context tkgs-cluster-ns
  3. Enumere los clústeres de Kubernetes que se están ejecutando en el espacio de nombres.
    kubectl get tanzukubernetescluster -n tkgs-cluster-ns
  4. Obtenga la cantidad de nodos que se ejecutan en el clúster de destino.
    kubectl get tanzukubernetescluster tkgs-cluster-1
    Por ejemplo, el siguiente clúster tiene 1 nodo de plano de control y 3 nodos de trabajo.
    NAME                CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1      1               3        v1.18.5+vmware.1-tkg.1.886c781   1d    running
    
  5. Cargue el manifiesto del clúster para editarlo ejecutando el comando kubectl edit.
    kubectl edit tanzukubernetescluster/tkgs-cluster-1

    El manifiesto del clúster se abrirá en el editor de texto que definan las variables de entorno KUBE_EDITOR o EDITOR.

  6. Busque el parámetro spec.topology.controlPlane.count y aumente el número de nodos de 1 a 3.
    ...
    controlPlane:
        count: 1
    ...
    
    ...
    ControlPlane:
        count: 3
    ...
    
  7. Para aplicar los cambios, guarde el archivo en el editor de texto. Para cancelar, cierre el editor sin guardar.

    Cuando guarde el archivo, kubectl aplicará los cambios al clúster. En segundo plano, el servicio de máquina virtual del clúster supervisor aprovisiona el nuevo nodo de trabajo.

  8. Compruebe que se agreguen los nodos nuevos.
    kubectl get tanzukubernetescluster tkgs-cluster-1
    El plano de control que se amplió horizontalmente ahora tiene 3 nodos.
    NAME                CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1      3               3        v1.18.5+vmware.1-tkg.1.886c781   1d    running
    

Escalar horizontalmente los nodos de trabajo

Para escalar horizontalmente un clúster de Tanzu Kubernetes, aumente el número de nodos de trabajo mediante kubectl.

  1. Realice la autenticación con clúster supervisor.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. Cambie el contexto al espacio de nombres de vSphere en el que se aprovisiona el clúster de Tanzu Kubernetes.
    kubectl config use-context tkgs-cluster-ns
  3. Enumere los clústeres de Kubernetes que se están ejecutando en el espacio de nombres.
    kubectl get tanzukubernetescluster -n tkgs-cluster-ns
  4. Obtenga la cantidad de nodos que se ejecutan en el clúster de destino.
    kubectl get tanzukubernetescluster tkgs-cluster-1
    Por ejemplo, el siguiente clúster tiene 3 nodo de plano de control y 3 nodos de trabajo.
    NAME                CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1      3               3        v1.18.5+vmware.1-tkg.1.886c781   1d    running
    
  5. Cargue el manifiesto del clúster para editarlo ejecutando el comando kubectl edit.
    kubectl edit tanzukubernetescluster/tkgs-cluster-1

    El manifiesto del clúster se abrirá en el editor de texto que definan las variables de entorno KUBE_EDITOR o EDITOR.

  6. Busque el parámetro spec.topology.workers.count y aumente el número de nodos.
    ...
    workers:
        count: 3
    ...
    
    ...
    workers:
        count: 4
    ...
    
  7. Para aplicar los cambios, guarde el archivo en el editor de texto. Para cancelar, cierre el editor sin guardar.

    Cuando guarde el archivo, kubectl aplicará los cambios al clúster. En segundo plano, el servicio de máquina virtual del clúster supervisor aprovisiona el nuevo nodo de trabajo.

  8. Compruebe que se haya agregado el nuevo nodo de trabajo.
    kubectl get tanzukubernetescluster tkgs-cluster-1
    Después de ampliar, el clúster tiene 4 nodos de trabajo.
    NAME                CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1      3               4        v1.18.5+vmware.1-tkg.1.886c781   1d    running
    

Reducir los nodos de trabajo

Para reducir un clúster de Tanzu Kubernetes, reduzca el número de nodos de trabajo. No se admite la reducción en el plano de control.

  1. Realice la autenticación con clúster supervisor.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. Cambie el contexto al espacio de nombres de vSphere en el que se aprovisiona el clúster de Tanzu Kubernetes.
    kubectl config use-context tkgs-cluster-ns
  3. Enumere los clústeres de Kubernetes que se están ejecutando en el espacio de nombres.
    kubectl get tanzukubernetescluster -n tkgs-cluster-ns
  4. Obtenga la cantidad de nodos que se ejecutan en el clúster de destino.
    kubectl get tanzukubernetescluster tkgs-cluster-1
    Por ejemplo, el siguiente clúster tiene 3 nodo de plano de control y 3 nodos de trabajo.
    NAME                CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1      3               4        v1.18.5+vmware.1-tkg.1.886c781   1d    running
    
  5. Cargue el manifiesto del clúster para editarlo ejecutando el comando kubectl edit.
    kubectl edit tanzukubernetescluster/tkgs-cluster-1

    El manifiesto del clúster se abrirá en el editor de texto que definan las variables de entorno KUBE_EDITOR o EDITOR.

  6. Busque el parámetro spec.topology.workers.count y aumente el número de nodos.
    ...
    workers:
        count: 4
    ...
    
    ...
    workers:
        count: 2
    ...
    
  7. Para aplicar los cambios, guarde el archivo en el editor de texto. Para cancelar, cierre el editor sin guardar.

    Cuando guarde el archivo, kubectl aplicará los cambios al clúster. En segundo plano, el servicio de máquina virtual del clúster supervisor aprovisiona el nuevo nodo de trabajo.

  8. Compruebe que se hayan agregado los nodos de trabajo.
    kubectl get tanzukubernetescluster tkgs-cluster-1
    Después de reducir, el clúster tiene 2 nodos de trabajo.
    NAME                CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1      3               2        v1.18.5+vmware.1-tkg.1.886c781   1d    running
    

Ampliar un clúster verticalmente

Puede ampliar verticalmente un clúster de Tanzu Kubernetes si cambia la clase de máquina virtual que se utiliza para alojar los nodos del clúster. El ajuste de ampliación vertical es compatible con los nodos de plano de control y de trabajo.

servicio Tanzu Kubernetes Grid admite el escalado vertical de nodos del clúster a través del mecanismo de actualización gradual que está integrado en el servicio. Si cambia la definición de VirtualMachineClass, el servicio implementa gradualmente los nodos nuevos con esa nueva clase y reduce la velocidad de los nodos antiguos. Consulte Actualizar clústeres de Tanzu Kubernetes.

  1. Realice la autenticación con clúster supervisor.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. Cambie el contexto al espacio de nombres de vSphere en el que se aprovisiona el clúster de Tanzu Kubernetes.
    kubectl config use-context tkgs-cluster-ns
  3. Enumere los clústeres de Kubernetes que se están ejecutando en el espacio de nombres.
    kubectl get tanzukubernetescluster -n tkgs-cluster-ns
  4. Describa el clúster de Tanzu Kubernetes de destino y compruebe la clase de máquina virtual.
    kubectl describe tanzukubernetescluster tkgs-cluster-2

    Por ejemplo, el siguiente clúster utiliza la clase de máquina virtual best-effort-small.

    Spec:
      ...
      Topology:
        Control Plane:
          Class:          best-effort-small
          ...
        Workers:
          Class:          best-effort-small
          ...
    
  5. Enumere y describa las clases de máquinas virtuales disponibles.
    kubectl get virtualmachineclassbinding
    kubectl describe virtualmachineclassbinding
    Nota: La clase de máquina virtual que desea utilizar debe estar enlazada al espacio de nombres de vSphere. Consulte Clases de máquina virtual para clústeres de Tanzu Kubernetes.
  6. Abra para editar el manifiesto del clúster de destino.
    kubectl edit tanzukubernetescluster/tkgs-cluster-2

    El manifiesto del clúster se abrirá en el editor de texto que definan las variables de entorno KUBE_EDITOR o EDITOR.

  7. Edite el manifiesto cambiando la clase de máquina virtual.
    Por ejemplo, edite el manifiesto del clúster para usar la clase de máquina virtual guaranteed-xlarge para el plano de control y los nodos de trabajo.
    spec:
      topology:
        controlPlane:
          class: guaranteed-xlarge
          ...
        workers:
          class: guaranteed-xlarge
          ...
    
  8. Para aplicar los cambios, guarde el archivo en el editor de texto. Para cancelar, cierre el editor sin guardar.

    Cuando guarde el archivo, kubectl aplicará los cambios al clúster. En segundo plano, servicio Tanzu Kubernetes Grid aprovisiona los nuevos nodos y elimina los anteriores. Si desea ver una descripción del proceso de actualización gradual, consulte Acerca de las actualizaciones de clústeres de servicio Tanzu Kubernetes Grid.

  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