Restablecer nodos y borrar clústeres

Cuando se instala un clúster de Anthos en Bare Metal, se instalan objetos binarios y servicios systemd en los nodos que alojan ese clúster, y los servicios comienzan a detectar 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 realiza una limpieza de nodos específicos y cómo borrar un clúster.

Elige un método de eliminación

El método que uses para borrar un clúster depende de lo siguiente:

  • El tipo de clúster.
  • Si solo quieres limpiar nodos específicos y no borrar todo el clúster
  • Cómo se creó el clúster.

Los clústeres de Anthos en equipos físicos proporcionan los siguientes métodos de eliminación:

  • Google Cloud Console o Google Cloud CLI:

    • Usa la consola o la CLI de gcloud para borrar los clústeres de usuario que administra la API de Anthos On-Prem. La API de Anthos On-Prem administra un clúster de usuario si se cumple una de las siguientes condiciones:

  • bmctl:

    • Usa bmctl reset nodes para restablecer nodos específicos.
    • Usa bmctl reset para borrar los clústeres de administrador, los híbridos y los independientes y los clústeres de usuario que no estén administrados por la API de Anthos On-Prem.

    Si usas bmctl a fin de 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 es como la siguiente:

    bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME.yaml

    Si usaste la marca --workspace-dir a fin de 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.

  • kubectl:

    • Usa kubectl delete cluster para borrar solo los clústeres de usuario que no son administrados por los clústeres de la API de Anthos 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.

Después de borrar un clúster, puedes volver a instalarlo después de realizar los cambios de configuración necesarios.

Borrar 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

Después de que termine de borrarse el clúster, puedes crear uno nuevo. Para ver detalles, consulta Descripción general de la creación de clústeres.

Borrar clústeres de usuario

bmctl

Puedes usar bmctl para borrar los clústeres de usuario que se crearon con bmctl o kubectl.

Ejecuta el siguiente comando para 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 borrar.

  • 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.

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 los clústeres de usuario que se crearon con bmctl o kubectl. Si quieres usar kubectl para 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 podrán crear, y el proceso de eliminación podría estar bloqueado de manera 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
    

Consola

Si el clúster de usuario se creó en la consola o se configuró para que lo administre la API de Anthos On-Prem, sigue estos pasos a fin de borrar el clúster. Si no estás seguro de cómo se creó el clúster, sigue estos pasos a fin de determinar si necesitas usar una herramienta de línea de comandos para borrar el clúster.

  1. En la consola, ve a la página de clústeres de Anthos.

    Ir a la página Clústeres de Anthos

  2. Selecciona el proyecto de Cloud en el que se encuentra el clúster de usuario.

  3. En la lista de clústeres, haz clic en el que deseas editar.

  4. En el panel Details, si el Type es Anthos (Bare metal User), sigue estos pasos para borrar el clúster:

    1. En el panel Detalles, haz clic en Ver detalles.

    2. Cerca de la parte superior de la ventana, haz clic en Borrar.

    3. Cuando se te solicite confirmación, haz clic en Borrar de nuevo.

    Si el Tipo es externo, indica que el clúster se creó con una herramienta de línea de comandos y que no se administra mediante la API de Anthos On-Prem. En este caso, usa una de las herramientas de línea de comandos para borrar el clúster.

CLI de gcloud

Haz lo siguiente en una computadora que tenga gcloud CLI instalada:

  1. Inicia sesión con tu Cuenta de Google:

    gcloud auth login
    
  2. Actualiza los componentes, como se indica a continuación:

    gcloud components update
    
  3. De manera opcional, obtén una lista de clústeres para obtener el nombre del clúster que deseas borrar.

    gcloud alpha container bare-metal clusters list \
      --project=FLEET_HOST_PROJECT_ID \
      --location=LOCATION
    

    Reemplaza lo siguiente:

    • FLEET_HOST_PROJECT_ID: Es el ID del proyecto en el que se creó el clúster.

    • LOCATION: Es la ubicación de Google Cloud asociada con el clúster de usuario.

  4. Ejecuta el siguiente comando para borrar el clúster:

    gcloud alpha container bare-metal clusters delete USER_CLUSTER_NAME \
      --project=FLEET_HOST_PROJECT_ID \
      --location=LOCATION \
      --force
    

    Reemplaza lo siguiente:

    • USER_CLUSTER_NAME: El nombre del clúster de usuario que se borrará.

    • FLEET_HOST_PROJECT_ID: Es el ID del proyecto en el que se creó el clúster.

    • LOCATION: Es la ubicación de Google Cloud asociada con el clúster de usuario.

    Si el clúster contiene grupos de nodos, debes especificar --force o borrar todos los grupos de nodos antes de borrarlo.

Para obtener más información, 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 para esta cuenta de servicio como un 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 una conexión SSH a 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 le otorga permiso a bmctl 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 de crear el archivo de claves de la cuenta de servicio es si ejecutas el comando create config con la marca --create-service-accounts. Para obtener más información sobre ese comando, consulta Crea y administra la configuración del clúster con bmctl.

Detalles de 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.

En todos los nodos, se quitan las interfaces de túnel que se usan para las herramientas de redes de clústeres y se borran los siguientes directorios:

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

Para nodos del balanceador de cargas:

  • Se borraron los servicios keepalived y haproxy.
  • Se borrarán los archivos de configuración de keepalived y haproxy.