Cuando necesites reparar o mantener nodos, primero debes poner los nodos en modo de mantenimiento. La ubicación de nodos en modo de mantenimiento desvía de forma segura sus pods o cargas de trabajo y excluye los nodos de la programación de pods. En el modo de mantenimiento, puedes trabajar en tus nodos sin correr el riesgo de interrumpir el tráfico de los pods.
Los clústeres de Anthos en equipos físicos proporcionan una forma de colocar nodos en modo de mantenimiento. Este enfoque permite que otros componentes del clúster sepan de forma correcta que el nodo está en modo de mantenimiento. Cuando colocas un nodo en modo de mantenimiento, no se pueden programar pods adicionales en el nodo y se detienen los existentes.
En lugar de usar el modo de mantenimiento, puedes usar de forma manual los comandos de Kubernetes, como kubectl cordon
y kubectl drain
, en un nodo específico. Si ejecutas clústeres de Anthos en la versión 1.12.0 (anthosBareMetalVersion: 1.12.0
) de equipos físicos o versiones anteriores, consulta el problema conocido en Nodos acordonados si no usas el procedimiento de modo de mantenimiento.
Elige los nodos que deseas poner en modo de mantenimiento mediante la especificación de los rangos de IP para los nodos seleccionados en maintenanceBlocks
en tu archivo de configuración del clúster. Los nodos que elijas deben estar listos y funcionando en el clúster.
Para poner los nodos en modo de mantenimiento, realiza lo siguiente:
Edita el archivo de configuración del clúster para seleccionar los nodos que deseas poner en modo de mantenimiento.
Puedes editar el archivo de configuración con el editor que prefieras o puedes editar el recurso personalizado del clúster de forma directa si ejecutas el siguiente comando:
kubectl -n CLUSTER_NAMESPACE edit cluster CLUSTER_NAME
Reemplaza lo siguiente:
CLUSTER_NAMESPACE
: el espacio de nombres del clúster.CLUSTER_NAME
: el nombre del clúster
Agrega la sección
maintenanceBlocks
al archivo de configuración del clúster a fin de especificar una sola dirección IP o un rango de direcciones para los nodos que deseas poner en modo de mantenimiento.En el siguiente ejemplo, se muestra cómo seleccionar varios nodos mediante la especificación de un rango de direcciones IP:
metadata: name: my-cluster namespace: cluster-my-cluster spec: maintenanceBlocks: cidrBlocks: - 172.16.128.1-172.16.128.64
Guarda y aplica la configuración actualizada del clúster.
Los clústeres de Anthos en el equipo físico comienzan a poner los nodos en modo de mantenimiento.
Ejecuta el siguiente comando para obtener el estado de los nodos del clúster:
kubectl get nodes -n CLUSTER_NAME
La respuesta es similar a la siguiente:
NAME STATUS ROLES AGE VERSION user-anthos-baremetal-01 Ready master 2d22h v1.17.8-gke.16 user-anthos-baremetal-04 Ready <none> 2d22h v1.17.8-gke.16 user-anthos-baremetal-05 Ready,SchedulingDisabled <none> 2d22h v1.17.8-gke.16 user-anthos-baremetal-06 Ready <none> 2d22h v1.17.8-gke.16
Un estado de
SchedulingDisabled
indica que un nodo está en modo de mantenimiento.Ejecuta el siguiente comando para obtener la cantidad de nodos en el modo de mantenimiento:
kubectl get nodepools
La respuesta debería ser similar al siguiente resultado:
NAME READY RECONCILING STALLED UNDERMAINTENANCE UNKNOWN np1 3 0 0 1 0
Esta columna
UNDERMAINTENANCE
en esta muestra que un nodo está en modo de mantenimiento.Los clústeres de Anthos en equipos físicos también agregan los siguientes taints a los nodos cuando se ponen en modo de mantenimiento:
baremetal.cluster.gke.io/maintenance:NoExecute
baremetal.cluster.gke.io/maintenance:NoSchedule
Para quitar nodos del modo de mantenimiento, realiza lo siguiente:
Edita el archivo de configuración del clúster para borrar los nodos que deseas quitar del modo de mantenimiento.
Puedes editar el archivo de configuración con el editor que prefieras o puedes editar el recurso personalizado del clúster de forma directa si ejecutas el siguiente comando:
kubectl -n CLUSTER_NAMESPACE edit cluster CLUSTER_NAME
Reemplaza lo siguiente:
CLUSTER_NAMESPACE
: el espacio de nombres del clúster.CLUSTER_NAME
: el nombre del clúster
Edita las direcciones IP para quitar nodos específicos del modo de mantenimiento o quita la sección
maintenanceBlocks
para quitar todos los nodos del modo de mantenimiento.Guarda y aplica la configuración actualizada del clúster.
Usa los comandos
kubectl
para verificar el estado de los nodos.