Agrega o quita nodos de un clúster

En los clústeres de Anthos en equipos físicos, puedes agregar o quitar nodos en un clúster si editas las definiciones de su grupo de nodos. Puedes usar el comando kubectl para cambiar estas definiciones.

Existen tres tipos diferentes de grupos de nodos en clústeres de Anthos en equipos físicos: plano de control, balanceador de cargas y grupos de nodos trabajadores. Editas los nodos del plano de control y del balanceador de cargas a través de las definiciones en los recursos de clúster asociado, mientras editas las definiciones de grupos de nodos trabajadores directamente.

Visualiza el estado del nodo

Puedes ver el estado de los nodos y sus respectivos grupos de nodos con el comando kubectl get.

Por ejemplo, el siguiente comando muestra el estado de los grupos de nodos en el espacio de nombres del clúster my-cluster:

  kubectl -n my-cluster get nodepools.baremetal.cluster.gke.io
  

El sistema muestra resultados similares al siguiente:

  NAME                    READY   RECONCILING   STALLED   UNDERMAINTENANCE   UNKNOWN
  my-cluster              3       0             0         0                  0
  my-cluster-lb           2       0             0         0                  0
  np1                     3       0             0         0                  0

Si necesitas más información para diagnosticar tus clústeres, consulta Diagnostica y restablece clústeres.

Cambia los nodos

La mayoría de los cambios en los nodos se especifican en el archivo de configuración del clúster, que luego se aplica al clúster. Te recomendamos usar el archivo de configuración del clúster como la fuente principal de actualización del clúster. Se recomienda almacenar el archivo de configuración en un sistema de control de versiones para realizar un seguimiento de los cambios con el fin de solucionar problemas. Ten en cuenta que el comando bmctl update solo es compatible con clústeres independientes. Para los clústeres híbridos, de administrador y de usuario usa kubectl apply a fin de actualizar tu clúster con los cambios en tu grupo de nodos.

Los clústeres de Anthos en el archivo de configuración de clúster de equipos físicos incluyen una sección de encabezado con información de credenciales. Las entradas de credenciales y el resto del archivo de configuración son YAML válidos, pero las entradas de credenciales no son válidas para el recurso del clúster. Quita las entradas de la ruta de la clave de credenciales, como gcrKeyPath y sshPrivateKeyPath, antes de usar kubectl apply. Usa bmctl update credentials para actualizar las credenciales.

También puedes usar kubectl edit para modificar el recurso del clúster directamente. Por ejemplo:

  kubectl edit cluster -n CLUSTER_NAMESPACE CLUSTER_NAME

En las siguientes secciones, se describen algunas diferencias importantes para actualizar tipos de nodos específicos.

Plano de control y nodos del balanceador de cargas

Las especificaciones del plano de control y el grupo de nodos del balanceador de cargas para los clústeres de Anthos en equipos físicos son especiales. Estas especificaciones declaran y controlan los recursos críticos del clúster. La fuente canónica de estos recursos es sus respectivas secciones en el archivo de configuración del clúster:

  • spec.controlPlane.nodePoolSpec
  • spec.LoadBalancer.nodePoolSpec

Puedes agregar o quitar nodos del plano de control o del balanceador de cargas si editas el array de direcciones en nodes en la sección correspondiente del archivo de configuración del clúster.

En una configuración de alta disponibilidad (HA), se requiere un número impar de grupos de nodos del plano de control (tres o más) para establecer un quórum a fin de garantizar que, si falla un plano de control, otros asuman el trabajo. Si tienes una cantidad par de nodos de manera temporal al momento de agregar o quitar nodos para el mantenimiento o el reemplazo, tu implementación mantiene la alta disponibilidad siempre y cuando tengas suficiente quórum.

Nodos trabajadores

Puedes agregar o quitar nodos trabajadores directamente con el comando de kubectl. Los grupos de nodos trabajadores deben tener, al menos, un nodo deseado.

En el siguiente ejemplo, el comando borra un grupo de nodos llamado np1, en el que la variable del espacio de nombres del clúster es my-cluster:

  kubectl -n my-cluster delete nodepool np1
  

Del mismo modo, se puede cambiar el tamaño de los grupos de nodos si editas el array spec.nodes de direcciones.

Ten en cuenta que cuando quitas nodos de un clúster, primero se desvían de cualquier Pod. Los nodos no se quitarán del clúster si no se pueden reprogramar los Pods en otros nodos. La eliminación de nodos solo quita el nodo del plano de control; el contenido del nodo no se restablece.

El siguiente comando kubectl edit te permite editar y confirmar cambios para el espacio de nombres del clúster my-cluster y el grupo de nodos np1:

  kubectl -n my-cluster edit nodepool np1