Cuando un clúster de Google Distributed Cloud 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.
En esta página, se describe cómo realizar esta operación de limpieza de nodos específicos y cómo borrar un clúster.
Esta página está destinada a administradores, arquitectos y operadores que administran el ciclo de vida de la infraestructura tecnológica subyacente. Para obtener más información sobre los roles comunes y las tareas de ejemplo a las que hacemos referencia en el contenido de Google Cloud , consulta Tareas y roles comunes de los usuarios de GKE Enterprise.
Elige un método de eliminación
El método que uses para borrar un clúster depende de lo siguiente:
- Es el tipo de clúster.
- Si quieres limpiar solo nodos específicos y no borrar todo el clúster.
- Cómo se creó el clúster
Google Distributed Cloud proporciona los siguientes métodos de eliminación:
La consola de Google Cloud o Google Cloud CLI:
Usa la consola o la CLI de gcloud para borrar los clústeres de usuario que administra la API de GKE On-Prem. La API de GKE On-Prem administra un clúster de usuario si se cumple una de las siguientes condiciones:
El clúster se creó en la consola de Google Cloud o mediante la CLI de gcloud, que configura automáticamente la API de GKE On-Prem para administrar el clúster.
El clúster se creó con
bmctl
, pero se configuró para que lo administre la API de GKE On-Prem.
bmctl
:- Usa
bmctl reset nodes
para restablecer nodos específicos. Usa
bmctl reset
para borrar los siguientes tipos de clústeres:- Clústeres independientes, híbridos y de administrador (denominados clústeres de administración automática). Esto incluye los clústeres de administrador que administra la API de GKE On-Prem.
- Clústeres de usuarios que no administra la API de GKE On-Prem
Si usas
bmctl
para restablecer nodos o borrar un clúster, el comando 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 para especificar el directorio de trabajo durante el restablecimiento del clúster.- Usa
kubectl
:- Usa
kubectl delete cluster
para borrar solo los clústeres de usuario que no administran los clústeres de la API de GKE On-Prem. No ejecutes el comando en otros tipos de clústeres. - Ten en cuenta que, si usas
kubectl delete cluster
, también debes borrar el espacio de nombres en el que se encuentra el clúster después de borrarlo.
- Usa
Después de borrar un clúster, puedes reinstalarlo después de realizar los cambios de configuración necesarios.
Borra clústeres autoadministrados
Para borrar un clúster de administrador, híbrido o independiente, ejecuta el siguiente comando:
bmctl reset --cluster CLUSTER_NAME
En el comando, reemplaza CLUSTER_NAME
por el nombre del clúster que deseas restablecer.
El resultado del comando bmctl cluster reset
es similar al siguiente ejemplo:
Please check the logs at bmctl-workspace/example-cluster-1/log/reset-20221025-184705/reset.log [2022-10-25 18:47:11+0000] Creating bootstrap cluster... OK [2022-10-25 18:48:18+0000] Loading images... OK [2022-10-25 18:48:18+0000] Waiting for reset jobs to finish... [2022-10-25 18:48:28+0000] Operation reset in progress: 1 Completed: 0 Failed: 0 ... [2022-10-25 18:50:08+0000] Operation reset in progress: 0 Completed: 1 Failed: 0 [2022-10-25 18:50:08+0000] Flushing logs... OK [2022-10-25 18:50:08+0000] Deleting GKE Hub member example-cluster-1 in project example-project-12345... [2022-10-25 18:50:11+0000] Successfully deleted GKE Hub member example-cluster-1 in project example-project-12345 [2022-10-25 18:50:11+0000] Deleting bootstrap cluster... OK
Además de borrar el clúster, el comando borra su membresía de la flota.
En el caso de los clústeres de administrador que administra la API de GKE On-Prem, también debes borrar los recursos de la API en Google Cloud. De lo contrario, el clúster se mostrará en la página Clústeres de GKE de la consola de Google Cloud. Usa el siguiente comando para borrar los recursos de la API de GKE On-Prem de un clúster de administrador:
gcloud container bare-metal admin-clusters unenroll CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=REGION \ --ignore-errors
Reemplaza lo siguiente:
FLEET_HOST_PROJECT_ID
: Es el ID del proyecto de la flota en la que el clúster de administrador era miembro.REGION
: Es la Google Cloud región en la que la API de GKE On-Prem almacena los metadatos del clúster.
La marca --ignore-errors
garantiza que la cancelación de la inscripción de un recurso de clúster de administrador de Bare Metal se realice correctamente, incluso si se producen errores durante la cancelación.
Cuando termine la eliminación del clúster, podrás crear uno nuevo. Para ver detalles, consulta Descripción general de la creación de clústeres.
Borrar clústeres de usuario
Si la API de GKE On-Prem administra el clúster de usuario, bórralo con la consola o gcloud CLI. De lo contrario, usa bmctl
o kubectl
para borrar el clúster.
bmctl
Puedes usar bmctl
para borrar clústeres de usuarios que se crearon con bmctl
o kubectl
y que no están inscritos en la API de GKE On-Prem.
Ejecuta el siguiente comando para borrar un clúster de usuario con bmctl
:
bmctl reset --cluster USER_CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG_PATH
En el comando, reemplaza las siguientes entradas por información específica de tu entorno:
USER_CLUSTER_NAME
: Es el nombre del clúster de usuario que deseas borrar.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
.
El resultado del comando bmctl cluster reset
es similar al siguiente ejemplo:
Please check the logs at bmctl-workspace/example-cluster-1/log/reset-20221025-184705/reset.log [2022-10-25 18:47:11+0000] Creating bootstrap cluster... OK [2022-10-25 18:48:18+0000] Loading images... OK [2022-10-25 18:48:18+0000] Waiting for reset jobs to finish... [2022-10-25 18:48:28+0000] Operation reset in progress: 1 Completed: 0 Failed: 0 ... [2022-10-25 18:50:08+0000] Operation reset in progress: 0 Completed: 1 Failed: 0 [2022-10-25 18:50:08+0000] Flushing logs... OK [2022-10-25 18:50:08+0000] Deleting GKE Hub member example-cluster-1 in project example-project-12345... [2022-10-25 18:50:11+0000] Successfully deleted GKE Hub member example-cluster-1 in project example-project-12345 [2022-10-25 18:50:11+0000] Deleting bootstrap cluster... OK
kubectl
Puedes usar kubectl
para borrar clústeres de usuarios que se crearon con bmctl
o kubectl
y que no están inscritos en la API de GKE On-Prem. 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 USER_CLUSTER_NAME -n USER_CLUSTER_NAMESPACE \ --kubeconfig ADMIN_KUBECONFIG_PATH
En el comando, reemplaza las siguientes entradas por información específica de tu entorno:
USER_CLUSTER_NAME
: Es el nombre del clúster de usuario que deseas borrar.USER_CLUSTER_NAMESPACE
: es el espacio de nombres para el clúster. De forma predeterminada, los espacios de nombres de los clústeres de Google Distributed Cloud 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 USER_CLUSTER_NAMESPACE --kubeconfig ADMIN_KUBECONFIG_PATH
Console
Si la API de GKE On-Prem administra el clúster de usuario, sigue estos pasos para borrarlo:
En la consola, ve a la página Descripción general de los clústeres de Google Kubernetes Engine.
Selecciona el proyecto de Google Cloud en el que se encuentra el clúster de usuario.
En la lista de clústeres, haz clic en el que deseas editar.
En la lista de clústeres, busca el que quieres borrar. Si el Tipo es externo, esto indica que el clúster se creó con
bmctl
y no se inscribió en la API de GKE On-Prem. En este caso, sigue los pasos en la pestañabmctl
okubectl
para borrar el clúster.Si el ícono de la columna Estado indica un problema, sigue los pasos de la pestaña de gcloud CLI para borrar el clúster. Deberás añadir la marca
--ignore-errors
al comando borrar.Haz clic en el nombre del clúster que deseas borrar.
En el panel Detalles, cerca de la parte superior de la ventana, haz clic en
Borrar.Cuando se te solicite confirmación, ingresa el nombre del clúster y haz clic en Quitar.
gcloud CLI
Si la API de GKE On-Prem administra el clúster de usuario, sigue estos pasos para borrarlo en una computadora que tenga instalada la gcloud CLI:
Inicia sesión con tu Cuenta de Google:
gcloud auth login
Actualiza los componentes, como se indica a continuación:
gcloud components update
Obtén una lista de clústeres para asegurarte de especificar el nombre correcto del clúster en el comando de eliminación:
gcloud container bare-metal clusters list \ --project=FLEET_HOST_PROJECT_ID \ --location=LOCATION
Reemplaza lo siguiente:
FLEET_HOST_PROJECT_ID
: El ID del proyecto en el que se creó el clúster.LOCATION
: Es la Google Cloud ubicación asociada al clúster de usuario.
El resultado es similar a este:
NAME LOCATION VERSION ADMIN_CLUSTER STATE example-user-cluster-1a us-west1 1.31.0-gke.889 example-admin-cluster-1 RUNNING
Ejecuta el siguiente comando para borrar el clúster:
gcloud container bare-metal clusters delete USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=LOCATION \ --force \ --allow-missing
Reemplaza lo siguiente:
USER_CLUSTER_NAME
: Es el nombre del clúster de usuario que se borrará.FLEET_HOST_PROJECT_ID
: El ID del proyecto en el que se creó el clúster.LOCATION
: Es la Google Cloud ubicación asociada al clúster de usuario.
La marca
--force
te permite borrar un clúster que tenga grupos de nodos. Sin la marca--force
, primero debes borrar los grupos de nodos y, luego, el clúster.La marca
--allow-missing
es una marca estándar de la API de Google. Cuando incluyes esta marca, el comando muestra un estado de éxito si no se encuentra el clúster.Si el comando muestra un error que contiene el texto
failed connecting to the cluster's control plane
, esto indica que hay problemas de conectividad con el clúster de administrador, el agente de Connect o el entorno local. Para solucionar problemas con el agente de Connect, consulta Cómo recopilar registros del agente de Connect.Si crees que el problema de conectividad es transitorio, por ejemplo, debido a problemas de red, espera y vuelve a intentar el comando.
Si sabes que se borró el clúster de administrador o si las máquinas de nodos del clúster de administrador o de usuario se cerraron o se desconectaron, incluye la marca
--ignore-errors
y vuelve a intentar el comando.También debes incluir
--ignore-errors
si el clúster se borró conbmctl
okubectl
, lo que deja recursos de la API de GKE On-Prem en Google Cloud. Un síntoma de esto es que el clúster aún se muestra en la página Clústeres de GKE de la consola en mal estado.
Para obtener información sobre otras marcas, consulta la referencia de la CLI de gcloud.
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.
Para restablecer nodos, necesitas una cuenta de servicio con acceso de lectura a Google Container
Registry (GCR). El comando bmctl
espera el archivo de claves JSON de esta cuenta de servicio como argumento. 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. Esta es la clave que se usará para establecer conexiones SSH con los nodos durante el restablecimiento.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. Puedes crear una clave de cuenta de servicio con la consola o la CLI de gcloud. Para obtener más información, 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.
Detalles de la eliminación del clúster
Durante la eliminación, se borran el registro de membresía de la flota del clúster, las activaciones de almacenamiento y los datos de anthos-system StorageClass
.
Para todos los nodos, se quitan las interfaces de túnel que se usan para las redes del clúster y se borran los siguientes directorios:
/etc/kubernetes
/etc/cni/net.d
/root/.kube
/var/lib/kubelet
Para los nodos del balanceador de cargas, haz lo siguiente:
- Se borran los servicios
keepalived
yhaproxy
. - Se borran los archivos de configuración de
keepalived
yhaproxy
.