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 archivokubeconfig
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:
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 porcluster-
. Por ejemplo, si le asignas el nombretest
al clúster, el espacio de nombres tiene un nombre comocluster-test
.ADMIN_KUBECONFIG_PATH
: Es la ruta de acceso al archivokubeconfig
del clúster de administrador asociado.
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-private-key-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 abmctl
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étodoserviceAccounts.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 comandocreate 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
yhaproxy
. - Borra los archivos de configuración de
keepalived
yhaproxy
.
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.