Cuando los nodos de Google Distributed Cloud fallan, lo que puede ocurrir debido a problemas con el almacenamiento, la red o la configuración incorrecta del SO, debes restablecer el estado del clúster de forma eficiente. Después de restablecer el estado del clúster, puedes solucionar problemas del nodo con errores. 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 cuando este no falló, consulta Actualiza los clústeres.
Si necesitas asistencia adicional, comunícate con Atención al cliente de Cloud.Restablece nodos
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:
- El nodo se restablece, de forma similar a
kubeadm reset
, y la máquina vuelve al estado preinstalado. - Las referencias relacionadas con el nodo se quitan del grupo de nodos y los recursos personalizados del clúster.
En algunos de los siguientes comandos bmctl
para restablecer nodos, el parámetro --force
indica si se deben omitir los comandos de restablecimiento (paso 1). Si se usa el parámetro --force
, bmctl
solo realiza el paso de eliminación (paso 2) y no se ejecutan los comandos de restablecimiento.
Quita el nodo trabajador
Para quitar un nodo trabajador de un clúster, completa los siguientes pasos:
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 lo siguiente:
COMMA_SEPARATED_IP
: Son las direcciones IP de los nodos que se restablecerán, como10.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
: la ruta de acceso al archivokubeconfig
del clúster de administrador.
Si este comando se ejecuta de forma correcta, ahora puedes diagnosticar el nodo y corregir cualquier configuración incorrecta que haya causado la falla inicial. Omite los pasos restantes de esta sección.
Si falla el paso anterior para restablecer el nodo, quítalo 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 haya causado la falla inicial.
Si quitaste de forma 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
Cómo quitar un 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
.
El clúster deja de estar en un estado con alta disponibilidad (HA) después de quitar el nodo con errores. Para volver a un estado con alta disponibilidad, agrega un nodo en buen estado al clúster.
Para quitar un nodo de un clúster, completa los siguientes pasos:
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
: Son las direcciones IP de los nodos que se restablecerán, como10.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
: la ruta de acceso al archivokubeconfig
del clúster de administrador.
Si este comando se ejecuta de forma correcta, ahora puedes diagnosticar el nodo y corregir cualquier configuración incorrecta que haya causado la falla inicial. Omite los pasos restantes de esta sección.
Si falla el paso anterior para restablecer el nodo, 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 haya causado la falla inicial.
Si quitaste de forma 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.
Cuando necesites restablecer los clústeres de administración, no proporciones el archivo kubeconfig
en los comandos de restablecimiento. Si proporcionas el archivo kubeconfig
para un clúster de administración, se obliga a un clúster nuevo a realizar la operación de restablecimiento. Cuando restablezcas un clúster de usuario, proporciona la ruta de acceso al archivo kubeconfig
.
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 lo siguiente:
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 archivokubeconfig
del clúster de usuario.
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 lo siguiente:
COMMA_SEPARATED_IP
: Son las direcciones IP de los nodos que se restablecerán, como10.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
: la ruta de acceso al archivokubeconfig
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.
Nota: Este proceso solo ontrola la recuperación ante desastres para una implementación de alta disponibilidad de un plano de control de 3 nodos. Este proceso no admite la recuperación de configuraciones de alta disponibilidad con 5 nodos o más.
¿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.
- Si necesitas asistencia adicional, comunícate con Atención al cliente de Cloud.