Soluciona problemas: diagnostica y restablece clústeres

Puedes diagnosticar o verificar los clústeres para depurar problemas y capturar una instantánea del estado del clúster. Además, si realizaste la instalación de forma parcial, pero el clúster muestra errores o no funciona de forma correcta, puedes intentar restablecer el clúster.

Diagnostica clústeres con bmctl check cluster

Puedes capturar el estado de los clústeres creados con el comando bmctl check cluster. Las marcas del comando te permiten elegir el alcance de diagnóstico del comando para que puedas obtener información enfocada. El comando bmctl check cluster no se puede usar en clústeres de usuarios.

La información de diagnóstico puede ayudarte a descubrir problemas y depurar tus implementaciones de manera más eficaz. El comando captura todos los archivos de configuración de clúster y nodo relevantes para el alcance definido y, luego, empaqueta la información en un solo archivo tar.

bmctl check cluster --snapshot --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG

Este comando genera un archivo tar que incluye información de depuración relevante de todos los componentes y las máquinas del sistema en el clúster que especificaste.

ADMIN_KUBECONFIG especifica la ruta de acceso al archivo kubeconfig, y CLUSTER_NAME especifica el nombre del clúster.

Puedes cambiar el alcance de la información de diagnóstico recopilada con las siguientes marcas de comando:

  • La marca --snapshot-scenario all aumenta el alcance de la instantánea de diagnóstico para incluir todos los Pods en el clúster especificado:
bmctl check cluster --snapshot --snapshot-scenario all --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG
  • La marca --snapshot-dry-run funciona junto con la marca --snapshot-config string. Usa la marca --snapshot-dry-run a fin de generar un archivo de configuración que puedas modificar para definir un alcance de diagnóstico personalizado. Tu alcance puede incluir Pods, espacios de nombres o comandos de nodo específicos.

Después de modificar el archivo de salida creado con la marca --snapshot-dry-run, puedes usarlo como entrada para diagnosticar tu alcance específico con la marca --snapshot-config string, que se describe a continuación. Si omites esta marca, se aplica una configuración predeterminada.

bmctl check cluster --snapshot --snapshot-dry-run --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG
  • La marca --snapshot-config le indica al comando bmctl que use las opciones de alcance especificadas en un archivo de configuración de instantáneas. Por lo general, debes crear el archivo de configuración de instantáneas con la marca --snapshot-dry-run.
bmctl check cluster --snapshot --snapshot-config SNAPSHOT_CONFIG_FILE --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG

Crea una instantánea para la instalación o actualización detenida del clúster de administrador

Cuando instalas clústeres independientes de administrador, híbridos e independientes, si bmctl está atascado en el siguiente resultado

  • Espera a que el clúster kubeconfig esté listo
  • Espera a que el clúster esté listo
  • Espera a que los grupos de nodos estén listos

o cuando se actualizan los clústeres de administrador, híbridos o independientes

  • Espera a que se complete la actualización

Puedes ejecutar el siguiente comando para tomar una instantánea mediante el clúster de arranque.

bmctl check cluster --snapshot --kubeconfig <var>WORKSPACE_DIR</var>/.kindkubeconfig --cluster <var>CLUSTER_NAME</var>

Restablece clústeres con bmctl reset cluster

Cuando un clúster no se instala de forma correcta, puedes intentar restablecer los nodos a un estado limpio si lo restableces. Luego, puedes volver a instalar el clúster después de realizar cambios en la configuración. El comando bmctl reset cluster no se puede usar en clústeres de usuarios.

Para restablecer un clúster, ejecuta el siguiente comando:

bmctl reset --cluster CLUSTER_NAME

El comando de restablecimiento se aplica a todo el clúster. No hay opción para apuntar a un subconjunto de nodos en un clúster.

El resultado del comando es similar al siguiente ejemplo:

bmctl reset -c cluster1
Creating bootstrap cluster... OK
Deleting GKE Hub member admin in project my-gcp-project...
Successfully deleted GKE Hub member admin in project my-gcp-project
Loading images... OK
Starting reset jobs...
Resetting: 1    Completed: 0    Failed: 0
...
Resetting: 0    Completed: 1    Failed: 0
Flushing logs... OK

Restablece los detalles del clúster

Durante la operación de restablecimiento, bmctl primero intenta borrar el registro de la membresía de GKE Hub y, luego, limpia los nodos afectados.

Durante el restablecimiento, también se borran los datos y las activaciones de almacenamiento de anthos-system StorageClass.

Para todos los nodos, bmctl ejecuta kubeadm reset, quita las interfaces de túnel que se usan para las redes del clúster y borra los siguientes directorios:

  • /etc/kubernetes
  • /etc/cni/net.d
  • /root/.kube
  • /var/lib/kubelet

En los nodos del balanceador de cargas, bmctl también realiza las siguientes acciones:

  • Inhabilita los servicios keepalived y haproxy
  • Borra los archivos de configuración de keepalived y haproxy

La herramienta de restablecimiento espera que el archivo de configuración del clúster esté en la siguiente ubicación del directorio de trabajo actual:

bmctl-workspace/cluster name/cluster name.yaml