Restablece un nodo con errores en GKE en Bare Metal

Si los nodos de GKE en Bare Metal fallan, por ejemplo, debido a una configuración incorrecta del almacenamiento, la red o el SO, debes restablecer de manera eficiente el estado del clúster. Después de restablecer el estado del clúster, puedes solucionar los errores del nodo.

En este documento, se muestra cómo recuperarte de situaciones de falla de nodos mediante el restablecimiento de un nodo y su eliminación forzada si es necesario.

Si deseas agregar o quitar nodos de un clúster en circunstancias normales cuando este no falló, consulta Actualiza los clústeres.

Descripción general

Cuando hay una falla de nodo, a veces no puedes ejecutar comandos de restablecimiento en él, ya que es posible que no puedas acceder. Es posible que debas quitar el nodo del clúster de manera forzosa.

Cuando restableces un nodo de forma correcta y actualizas el clúster, ocurren las siguientes acciones:

  1. El nodo se restablece, de forma similar a kubeadm reset, y la máquina vuelve al estado preinstalado.
  2. Las referencias relacionadas con el nodo se quitan del grupo de nodos y los recursos personalizados del clúster.

Nodo trabajador

Para quitar un nodo de un clúster, primero intenta quitarlo de forma por completo:

  1. Intenta restablecer el nodo de forma completa. Después de que se restablece el nodo, se quita del clúster:

    bmctl reset nodes \
      --addresses COMMA_SEPARATED_IPS \
      --cluster CLUSTER_NAME \
      --kubeconfig ADMIN_KUBECONFIG
    

    Reemplaza los siguientes valores:

    • COMMA_SEPARATED_IP: Las direcciones IP de los nodos que se restablecerán, como 10.200.0.8,10.200.0.9.
    • CLUSTER_NAME: Es el nombre del clúster de destino que contiene los nodos con errores.
    • ADMIN_KUBECONFIG es la ruta al archivo kubeconfig del clúster de administrador.

    Ahora puedes diagnosticar el nodo y corregir cualquier configuración incorrecta que causó la falla inicial. Omite los pasos restantes de esta sección.

  2. Si el paso anterior para restablecer el nodo falla, puedes quitarlo del clúster de manera forzosa. Esta eliminación forzosa omite el paso anterior que ejecuta los comandos de restablecimiento y solo realiza el paso para quitar las referencias relacionadas con el nodo del grupo de nodos y de los recursos personalizados del clúster:

    bmctl reset nodes \
     --addresses COMMA_SEPARATED_IPS \
     --cluster CLUSTER_NAME \
     --kubeconfig ADMIN_KUBECONFIG \
     --force
    

    Ahora puedes diagnosticar el nodo y corregir cualquier configuración incorrecta que causó la falla inicial.

  3. Si quitaste de manera forzosa el nodo del clúster de nodos en el paso anterior, vuelve a ejecutar el comando bmctl reset para restablecer los nodos:

    bmctl reset nodes \
      --addresses COMMA_SEPARATED_IPS \
      --cluster CLUSTER_NAME \
      --kubeconfig ADMIN_KUBECONFIG
    

Falla del nodo del plano de control único

El proceso es el mismo que para los nodos trabajadores. Para los nodos del plano de control, bmctl también borra la membresía de etcd.

Para quitar un nodo de un clúster, primero intenta quitarlo de forma por completo:

  1. Intenta restablecer el nodo de forma completa. Después de que se restablece el nodo, se quita del clúster:

    bmctl reset nodes \
      --addresses COMMA_SEPARATED_IPS \
      --cluster CLUSTER_NAME \
      --kubeconfig ADMIN_KUBECONFIG
    

    Reemplaza los siguientes valores:

    • COMMA_SEPARATED_IP: Las direcciones IP de los nodos que se restablecerán, como 10.200.0.8,10.200.0.9.
    • CLUSTER_NAME: Es el nombre del clúster de destino que contiene los nodos con errores.
    • ADMIN_KUBECONFIG es la ruta al archivo kubeconfig del clúster de administrador.

    Ahora puedes diagnosticar el nodo y corregir cualquier configuración incorrecta que causó la falla inicial. Omite los pasos restantes de esta sección.

  2. Si el paso anterior para restablecer el nodo falla, puedes quitarlo del clúster de manera forzosa. Esta eliminación forzosa omite el paso anterior que ejecuta los comandos de restablecimiento y solo realiza el paso para quitar las referencias relacionadas con el nodo del grupo de nodos y de los recursos personalizados del clúster:

    bmctl reset nodes \
      --addresses COMMA_SEPARATED_IPS \
      --cluster CLUSTER_NAME \
      --kubeconfig ADMIN_KUBECONFIG \
      --force
    

    Ahora puedes diagnosticar el nodo y corregir cualquier configuración incorrecta que causó la falla inicial.

  3. Si quitaste de manera forzosa el nodo del clúster de nodos en el paso anterior, vuelve a ejecutar el comando bmctl reset para restablecer los nodos:

    bmctl reset nodes \
      --addresses COMMA_SEPARATED_IPS \
      --cluster CLUSTER_NAME \
      --kubeconfig ADMIN_KUBECONFIG
    

Se perdió el quórum en el plano de control de alta disponibilidad

Si demasiados nodos de planos de control en un clúster de alta disponibilidad obtienen en un estado de error, el clúster pierde quórum y deja de estar disponible.

  1. Para recuperar un clúster que perdió quórum, ejecuta el siguiente comando en un nodo que se mantiene en buen estado:

    bmctl restore --control-plane-node CONTROL_PLANE_NODE \
      --cluster CLUSTER_NAME \
      [--kubeconfig KUBECONFIG_FILE]
    

    Reemplaza los siguientes valores:

    • CONTROL_PLANE_NODE: Son las direcciones IP de un nodo en buen estado que permanece como parte del clúster.
    • CLUSTER_NAME: Es el nombre del clúster de destino que contiene los nodos con errores.
    • KUBECONFIG_FILE: Si recuperas un clúster de usuario, es la ruta de acceso al archivo kubeconfig del clúster de usuario.
  2. Después de recuperar los nodos con errores, ejecuta el comando bmctl reset para restablecer los nodos:

    bmctl reset nodes \
      --addresses COMMA_SEPARATED_IPS \
      --cluster CLUSTER_NAME \
      [--kubeconfig KUBECONFIG_FILE]
    

    Reemplaza los siguientes valores:

    • COMMA_SEPARATED_IP: Las direcciones IP de los nodos que se restablecerán, como 10.200.0.8,10.200.0.9.
    • CLUSTER_NAME: Es el nombre del clúster de destino que contiene los nodos con errores.
    • KUBECONFIG_FILE es la ruta al archivo kubeconfig del clúster de administrador.

    Si los nodos con errores eran parte de los grupos de nodos del balanceador de cargas, después de que se recuperen podrían entrar en conflicto con la dirección IP virtual del plano de control y hacer que el clúster nuevo sea inestable. Ejecuta los comandos de restablecimiento en los nodos con errores lo antes posible después de recuperar los nodos.

¿Qué sigue?

Para obtener más información sobre cómo agregar o quitar nodos de un clúster cuando no hay una falla y verificar el estado del nodo, consulta Actualiza los clústeres.