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
Nodo | Expansión horizontal | Reducción horizontal | Ampliación vertical |
---|---|---|---|
Plano de control | Sí | No | Sí |
Trabajador | Sí | Sí | Sí |
- 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.
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
kubectl edit tanzukubernetescluster/tkgs-cluster-1 Edit cancelled, no changes made.
Ampliar horizontalmente el plano de control
- Realice la autenticación con clúster supervisor.
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- 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
- Enumere los clústeres de Kubernetes que se están ejecutando en el espacio de nombres.
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- 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
- 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.
- 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 ...
- 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.
- 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.
- Realice la autenticación con clúster supervisor.
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- 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
- Enumere los clústeres de Kubernetes que se están ejecutando en el espacio de nombres.
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- 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
- 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.
- Busque el parámetro
spec.topology.workers.count
y aumente el número de nodos.... workers: count: 3 ...
... workers: count: 4 ...
- 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.
- 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.
- Realice la autenticación con clúster supervisor.
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- 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
- Enumere los clústeres de Kubernetes que se están ejecutando en el espacio de nombres.
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- 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
- 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.
- Busque el parámetro
spec.topology.workers.count
y aumente el número de nodos.... workers: count: 4 ...
... workers: count: 2 ...
- 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.
- 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.
- Realice la autenticación con clúster supervisor.
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- 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
- Enumere los clústeres de Kubernetes que se están ejecutando en el espacio de nombres.
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- 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 ...
- 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. - 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.
- 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 ...
- 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.
- 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