Restablece los nodos del clúster

Cuando un clúster está en proceso de instalación, los objetos binarios y los servicios systemd se instalan en los nodos que alojan ese clúster, y los servicios comienzan a escuchar en los puertos en los nodos.

Sin embargo, si falla la instalación de un clúster, se deben borrar todos estos objetos binarios y servicios. En otras palabras, los nodos deben restablecerse o limpiarse a fin de prepararlos para reintentar la instalación del clúster. Si los nodos no se restablecen de esta manera, el siguiente intento de instalar un clúster en ellos falla.

El comando bmctl reset realiza esta operación de limpieza de nodos. Puedes ejecutar el comando bmctl reset en un clúster completo o en nodos específicos de un clúster. En este documento, se explica cómo ejecutar el comando en ambos modos.

Es importante tener en cuenta que cuando el comando bmctl reset se aplica a un clúster, ese clúster se borrará porque el comando limpia los nodos de todos los objetos binarios y servicios del clúster.

Restablece clústeres con bmctl reset cluster

Si restableces un clúster, se borra. Una vez que se haya borrado el clúster, puedes reinstalarlo después de realizar los cambios de configuración necesarios.

Restablece clústeres autoadministrados

Para restablecer los clústeres de administrador, híbridos o independientes, ejecuta el siguiente comando:

bmctl reset --cluster CLUSTER_NAME

En el comando, reemplaza CLUSTER_NAME por el nombre del clúster que deseas restablecer.

Cuando se completa el restablecimiento del clúster, puedes crear un clúster nuevo. Para ver detalles, consulta Descripción general de la creación de clústeres.

Restablece clústeres de usuario

Puedes restablecer o borrar clústeres de usuario con el comando bmctl reset o el comando kubectl delete. En ambos casos, el clúster se borra. Te recomendamos que uses bmctl reset.

Usa bmctl para restablecer o borrar un clúster de usuario

Ejecuta el siguiente comando para restablecer o borrar un clúster de usuario con bmctl:

bmctl reset --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG_PATH

En el comando, reemplaza las siguientes entradas por información específica de tu entorno:

  • CLUSTER_NAME: Es el nombre del clúster de usuario que deseas restablecer.

  • ADMIN_KUBECONFIG_PATH: Es la ruta de acceso al archivo kubeconfig del clúster de administrador asociado. bmctl admite el uso de --kubeconfig como un alias para la marca --admin-kubeconfig.

Usa kubectl para borrar un clúster de usuario

Para usar kubectl a fin de borrar un clúster de usuario, primero debes borrar el objeto de clúster y, luego, su espacio de nombres. De lo contrario, los trabajos para restablecer las máquinas no se pueden crear, y el proceso de eliminación se puede detener de forma indefinida.

Para borrar un clúster de usuario con kubectl, haz lo siguiente:

  1. Ejecuta el siguiente comando para borrar el objeto del clúster:

    kubectl delete cluster CLUSTER_NAME -n CLUSTER_NAMESPACE \
        --kubeconfig ADMIN_KUBECONFIG_PATH

    En el comando, reemplaza las siguientes entradas por información específica de tu entorno:

    • CLUSTER_NAME: Es el nombre del clúster de usuario que deseas borrar.

    • CLUSTER_NAMESPACE: es el espacio de nombres para el clúster. De forma predeterminada, los espacios de nombres de los clústeres de Anthos en equipos físicos son el nombre del clúster precedido por cluster-. Por ejemplo, si le asignas el nombre test al clúster, el espacio de nombres tiene un nombre como cluster-test.

    • ADMIN_KUBECONFIG_PATH: Es la ruta de acceso al archivo kubeconfig del clúster de administrador asociado.

  2. Después de que el clúster se borre de forma correcta, ejecuta el siguiente comando para borrar el espacio de nombres:

    kubectl delete namespace CLUSTER_NAMESPACE --kubeconfig ADMIN_KUBECONFIG_PATH

Restablece nodos específicos de un clúster

Es posible que desees restablecer nodos específicos de un clúster si, por ejemplo, se borró un clúster de administrador, pero los clústeres de usuario administrados por ese clúster de administrador se mantienen. En este caso, los clústeres de usuario en su totalidad no se pueden borrar porque se borró el clúster de administrador. Por lo tanto, los nodos de los clústeres de usuario deben restablecerse de forma individual.

Restablece los nodos con la clave JSON de la cuenta de servicio de GCR

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

bmctl reset nodes --addresses NODE_1_IP_ADDRESS,NODE_2_IP_ADDRESS \
    --ssh-key-private-path SSH_KEY_PATH \
    --gcr-service-account-key SERVICE_ACCOUNT_KEY_PATH \
    --login-user root

En el comando, reemplaza las siguientes entradas por información específica de tu entorno:

  • NODE_1_IP_ADDRESS , NODE_2_IP_ADDRESS: Es la lista separada por comas de las direcciones IP de los nodos que deseas borrar.

  • SSH_KEY_PATH: Es la ruta de acceso a la clave privada SSH.

  • SERVICE_ACCOUNT_KEY_PATH: Es la ruta de acceso al archivo JSON que contiene la clave de la cuenta de servicio. Esta clave otorga permiso a bmctl para extraer imágenes de Google Container Registry (GCR). Puedes crear una clave de cuenta de servicio con la consola de Google Cloud, la CLI de gcloud, el método serviceAccounts.keys.create() o una de las bibliotecas cliente. Para ver detalles, consulta Crea y administra claves de cuentas de servicio. Otra forma en que se puede crear el archivo de claves de cuentas de servicio es ejecutar el comando create config con la marca --create-service-accounts. Para obtener detalles sobre ese comando, consulta Crea y administra la configuración del clúster con bmctl.

Restablece los detalles del clúster

El resultado del comando bmctl cluster reset es similar al siguiente ejemplo:

bmctl reset --cluster 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

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.

El comando bmctl reset espera que el archivo de configuración del clúster esté en el directorio de trabajo actual. De forma predeterminada, la ruta de acceso es como la siguiente: bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME.yaml

Si usaste la marca --workspace-dir para especificar un directorio diferente durante la creación del clúster, debes usar la marca a fin de especificar el directorio de trabajo durante el restablecimiento del clúster.