Crea clústeres de administrador y de usuario de Anthos alojado en Bare Metal en las VMs de Compute Engine

En esta página, se muestra cómo crear un clúster de usuario de Anthos alojado en Bare Metal y un clúster de administrador en máquinas virtuales (VM) de Compute Engine. La secuencia de comandos proporcionada crea VM de Compute Engine para los nodos del clúster de administrador y de usuario, y una estación de trabajo de administrador.

La estación de trabajo de administrador aloja herramientas de interfaz de línea de comandos (CLI) y archivos de configuración para aprovisionar clústeres durante la instalación, y herramientas de CLI para interactuar con clústeres aprovisionados después de la instalación. La secuencia de comandos instala las herramientas de la CLI en la VM de la estación de trabajo de administrador.

Un clúster de usuario es un clúster de Kubernetes que ejecuta tus cargas de trabajo alojadas en contenedores. Consiste en nodos del plano de control y nodos trabajadores. Los clústeres de usuario deben contener uno o más nodos trabajadores que ejecuten cargas de trabajo del usuario. Un clúster de administrador es un clúster de Kubernetes que administra uno o más clústeres de usuario, lo que ayuda a crear, actualizar y borrar clústeres de usuarios. Un clúster de administrador solo consta de nodos del plano de control. Para obtener más información, consulta Implementación de clústeres de administrador y de usuario.

La secuencia de comandos configura una red superpuesta de LAN extensible virtual (VXLAN) entre las VM y las prepara para la creación de clústeres. De manera opcional, la secuencia de comandos crea un clúster de administrador, o puedes optar por crear el clúster de administrador por tu cuenta a fin de obtener información sobre las herramientas que proporciona los clústeres de Anthos alojados en Bare Metal para crear clústeres de administrador.

Con la secuencia de comandos proporcionada, puedes probar clústeres de Anthos alojados en Bare Metal con rapidez y sin tener que preparar ningún hardware. Si completas los pasos de esta página, obtendrás un clúster de Anthos en funcionamiento en un entorno de pruebas de equipos físicos que se ejecuta en Compute Engine.

¿Qué es la API de Anthos On-Prem?

La API de Anthos On-Prem es una API alojada en Google Cloud que te permite administrar el ciclo de vida de los clústeres locales mediante Terraform y las aplicaciones estándar de Google Cloud. La API de Anthos On-Prem se ejecuta en la infraestructura de Google Cloud. Terraform, la consola y gcloud CLI son clientes de la API y la usan para crear clústeres en tu centro de datos.

Para administrar el ciclo de vida de los clústeres, la API de Anthos On-Prem debe almacenar los metadatos sobre el estado del clúster en Google Cloud mediante la región de Google Cloud que especifiques cuando crees el clúster. Estos metadatos permiten que la API administre el ciclo de vida del clúster y no incluye datos específicos de la carga de trabajo.

Cuando creas un clúster con un cliente de la API de Anthos On-Prem, especificas un proyecto de Google Cloud. Después de crear el clúster, se registra automáticamente en la flota del proyecto especificado. Este proyecto se conoce como proyecto host de flota. El proyecto host de la flota no se puede cambiar después de que se crea el clúster.

Antes de comenzar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Anota el ID del proyecto porque lo necesitas para establecer una variable de entorno que se use en la secuencia de comandos y los comandos de esta página. Si seleccionaste un proyecto existente, asegúrate de ser propietario o editor del proyecto.
  7. Puedes ejecutar la secuencia de comandos en Cloud Shell o en tu máquina local que ejecute Linux o macOS. Si no usas Cloud Shell, haz lo siguiente:
    1. Asegúrate de tener instalada la Google Cloud CLI más reciente, la herramienta de línea de comandos para interactuar con Google Cloud, incluidos los componentes beta de gcloud CLI.
    2. Si aún no tienes los componentes beta, ejecuta el siguiente comando para instalarlos:
      gcloud components install beta
    3. Actualiza los componentes de gcloud CLI, si es necesario:
      gcloud components update

      Según cómo se haya instalado gcloud CLI, es posible que veas el siguiente mensaje: “No puedes realizar esta acción porque el administrador de componentes de Google Cloud CLI está inhabilitado en esta instalación. Puedes ejecutar el siguiente comando a fin de lograr el mismo resultado para esta instalación:" Sigue las instrucciones a fin de copiar y pegar el comando para actualizar los componentes.

    4. Asegúrate de tener kubectl instalado. Si necesitas instalar kubectl, ejecuta el siguiente comando:
      gcloud components install kubectl

Cree la infraestructura de la VM y, de manera opcional, el clúster de administrador

Siga estos pasos para configurar y ejecutar la secuencia de comandos. La secuencia de comandos que descargas y ejecutas corresponde al repositorio anthos-samples. Si quieres obtener más información sobre la secuencia de comandos antes de ejecutarla, consulta la siguiente sección, Acerca de la secuencia de comandos.

  1. Configura variables de entorno:

    export PROJECT_ID=PROJECT_ID
    export ADMIN_CLUSTER_NAME=ADMIN_CLUSTER_NAME
    export ON_PREM_API_REGION=ON_PREM_API_REGION
    export ZONE=ZONE
    
    • ON_PREM_API_REGION: Es la región de Google Cloud en la que se ejecuta y almacena los metadatos la API de Anthos On-Prem. Especifica us-central1 o una región compatible.

    • ZONE: Es la zona de Google Cloud en la que se crearán las VM de Compute Engine. Puedes usar us-central1-a o cualquiera de las demás zonas de Compute Engine.

  2. Ejecuta los siguientes comandos para configurar el proyecto y la zona predeterminados.

    gcloud config set project $PROJECT_ID
    gcloud config set compute/zone $ZONE
    

    Si recibes un error PERMISSION_DENIED, vuelve a verificar el ID del proyecto que ingresaste. Si el ID del proyecto es correcto, ejecuta gcloud auth login para acceder a gcloud CLI con la cuenta que tiene acceso al proyecto.

  3. Obtenga una lista de las versiones disponibles que puede instalar:

    gcloud beta container bare-metal admin-clusters query-version-config \
          --location=ON_PREM_API_REGION
    
  4. Selecciona una versión del resultado del comando anterior y establécela en una variable de entorno:

    export BMCTL_VERSION=BMCTL_VERSION
    
  5. Clona el repositorio anthos-samples y cambia al directorio donde se encuentra la secuencia de comandos:

    git clone https://github.com/GoogleCloudPlatform/anthos-samples
    cd anthos-samples/anthos-bm-gcp-bash
    
  6. Ejecute la secuencia de comandos:

    bash install_admin_cluster.sh
    
  7. Cuando se te solicite, ingresa un número para elegir el modo de instalación:

    • Ingresa 1 para que la secuencia de comandos configure la infraestructura de VM y, luego, instala el clúster de administrador.
    • Ingrese 2 para que la secuencia de comandos configure solo la infraestructura de VM.
  8. Confirma tu selección cuando se te solicite.

La secuencia de comandos genera cada comando que ejecuta y el estado. Cuando finalice, la secuencia de comandos generará el siguiente resultado según si elegiste instalar el clúster de administrador:

Se creó el clúster de administrador

✅ Installation complete. Please check the logs for any errors!!!
✅ If you do not see any errors in the output log, then you now have the following setup:

|---------------------------------------------------------------------------------------------------------|
| VM Name               | L2 Network IP (VxLAN) | INFO                                                    |
|---------------------------------------------------------------------------------------------------------|
| abm-admin-cluster-cp1 | 10.200.0.3            | Has control plane of admin cluster running inside       |
| abm-user-cluster-cp1  | 10.200.0.4            | 🌟 Ready for use as control plane for the user cluster  |
| abm-user-cluster-w1   | 10.200.0.5            | 🌟 Ready for use as worker for the user cluster         |
| abm-user-cluster-w2   | 10.200.0.6            | 🌟 Ready for use as worker for the user cluster         |
|---------------------------------------------------------------------------------------------------------|

Configurar solo las VMs

|---------------------------------------------------------------------------------------------------------|
| VM Name               | L2 Network IP (VxLAN) | INFO                                                    |
|---------------------------------------------------------------------------------------------------------|
| abm-admin-cluster-cp1 | 10.200.0.3            | 🌟 Ready for use as control plane for the admin cluster |
| abm-user-cluster-cp1  | 10.200.0.4            | 🌟 Ready for use as control plane for the user cluster  |
| abm-user-cluster-w1   | 10.200.0.5            | 🌟 Ready for use as worker for the user cluster         |
| abm-user-cluster-w2   | 10.200.0.6            | 🌟 Ready for use as worker for the user cluster         |
|---------------------------------------------------------------------------------------------------------|

Acerca de la secuencia de comandos

Para obtener más información sobre install_admin_cluster.sh, haz clic en Acerca de la secuencia de comandos en la siguiente línea.

Acerca de la secuencia de comandos

La secuencia de comandos automatiza los siguientes pasos manuales:

  1. Crea una cuenta de servicio llamada baremetal-gcr y le otorga permisos adicionales a fin de evitar la necesidad de varias cuentas de servicio para diferentes API y servicios.
  2. Habilita las siguientes APIs de Google Cloud:
      anthos.googleapis.com
      anthosaudit.googleapis.com
      anthosgke.googleapis.com
      cloudresourcemanager.googleapis.com
      connectgateway.googleapis.com
      container.googleapis.com
      gkeconnect.googleapis.com
      gkehub.googleapis.com
      gkeonprem.googleapis.com
      iam.googleapis.com
      logging.googleapis.com
      monitoring.googleapis.com
      opsconfigmonitoring.googleapis.com
      serviceusage.googleapis.com
      stackdriver.googleapis.com
      storage.googleapis.com
  3. Crea las siguientes VM:
    • Una VM para la estación de trabajo de administrador La estación de trabajo de administrador tendrá acceso a todos los demás nodos del clúster mediante SSH.
    • Una VM para el nodo del plano de control del clúster de administrador
    • Dos VM para los nodos trabajadores del clúster de usuario.
    • Una VM para el nodo del plano de control del clúster de usuario
    La secuencia de comandos también verifica que SSH esté habilitado en todas las VM.
  4. Crea una red de superposición de LAN extensible virtual (VXLAN) para la conectividad de capa 2 entre las VM. VXLAN no es persistente, por lo que si reinicias una instancia de VM, se destruye la red. La red debe estar configurada en la subred 10.200.0.0/24. La conectividad de capa 2 es un requisito para el balanceador de cargas en paquetes.
  5. Instala las siguientes herramientas en la estación de trabajo de administrador:
    • bmctl
    • kubectl
    • Docker

    La secuencia de comandos también descarga la clave de la cuenta de servicio de la cuenta de servicio baremetal-gcr en la estación de trabajo de administrador.

  6. Garantiza que root@10.200.0.x de la estación de trabajo de administrador realice las siguientes tareas:
    1. Genera una nueva clave SSH en la estación de trabajo de administrador.
    2. Agrega la clave pública a todas las otras VM de la implementación.
  7. De manera opcional, la secuencia de comandos crea el clúster de administrador con el siguiente archivo de configuración:
      gcloud compute ssh root@"$VM_WS" --zone "${ZONE}" <<EOF
    set -x
    export PROJECT_ID=\$(gcloud config get-value project)
    ADMIN_CLUSTER_NAME=\$(curl http://metadata.google.internal/computeMetadata/v1/instance/attributes/cluster_id -H "Metadata-Flavor: Google")
    BMCTL_VERSION=\$(curl http://metadata.google.internal/computeMetadata/v1/instance/attributes/bmctl_version -H "Metadata-Flavor: Google")
    export ADMIN_CLUSTER_NAME
    export BMCTL_VERSION
    bmctl create config -c \$ADMIN_CLUSTER_NAME
    cat > bmctl-workspace/\$ADMIN_CLUSTER_NAME/\$ADMIN_CLUSTER_NAME.yaml << EOB
    ---
    gcrKeyPath: /root/bm-gcr.json
    sshPrivateKeyPath: /root/.ssh/id_rsa
    gkeConnectAgentServiceAccountKeyPath: /root/bm-gcr.json
    gkeConnectRegisterServiceAccountKeyPath: /root/bm-gcr.json
    cloudOperationsServiceAccountKeyPath: /root/bm-gcr.json
    ---
    apiVersion: v1
    kind: Namespace
    metadata:
      name: cluster-\$ADMIN_CLUSTER_NAME
    ---
    apiVersion: baremetal.cluster.gke.io/v1
    kind: Cluster
    metadata:
      name: \$ADMIN_CLUSTER_NAME
      namespace: cluster-\$ADMIN_CLUSTER_NAME
    spec:
      type: admin
      anthosBareMetalVersion: \$BMCTL_VERSION
      gkeConnect:
        projectID: \$PROJECT_ID
      controlPlane:
        nodePoolSpec:
          clusterName: \$ADMIN_CLUSTER_NAME
          nodes:
          - address: 10.200.0.3
      clusterNetwork:
        pods:
          cidrBlocks:
          - 192.168.0.0/16
        services:
          cidrBlocks:
          - 10.96.0.0/20
      loadBalancer:
        mode: bundled
        ports:
          controlPlaneLBPort: 443
        vips:
          controlPlaneVIP: 10.200.0.48
      clusterOperations:
        # might need to be this location
        location: us-central1
        projectID: \$PROJECT_ID
      storage:
        lvpNodeMounts:
          path: /mnt/localpv-disk
          storageClassName: node-disk
        lvpShare:
          numPVUnderSharedPath: 5
          path: /mnt/localpv-share
          storageClassName: local-shared
      nodeConfig:
        podDensity:
          maxPodsPerNode: 250
    EOB
    
    bmctl create cluster -c \$ADMIN_CLUSTER_NAME
    EOF

    Si eliges que la secuencia de comandos cree el clúster de administrador, la secuencia de comandos usa SSH para acceder a la estación de trabajo de administrador como el usuario raíz. A continuación, la secuencia de comandos ejecuta la herramienta de línea de comandos de bmctl para crear el clúster de administrador. Esta es una de las herramientas que puede usar para crear clústeres de administrador.

    Cuando los clústeres de Anthos alojados en Bare Metal crean clústeres, se implementa un clúster de Kubernetes en Docker (similares) en la estación de trabajo de administrador. Este clúster de arranque aloja los controladores de Kubernetes necesarios para crear clústeres y se usa a fin de crearlos. Cuando se crean, los controladores relevantes se mueven del clúster de arranque al clúster de administrador. Por último, a menos que especifiques lo contrario, el clúster de arranque se quita cuando la creación del clúster se completa de forma correcta. El clúster de arranque requiere Docker para extraer imágenes de contenedor.

De manera opcional, crea el clúster de administrador

Si la secuencia de comandos creó el clúster de administrador, ve a la siguiente sección Verifica el clúster de administrador. De lo contrario, sigue los pasos que se indican en esta sección para crear un clúster de arranque y el clúster de administrador.

Antes de crear el clúster de administrador, debes ejecutar el comando bmctl register bootstrap en la estación de trabajo de administrador. Este comando implementa un clúster temporal de Kubernetes en Docker (similar) en la estación de trabajo de administrador. Este clúster de arranque aloja los controladores de Kubernetes necesarios para crear el clúster de administrador. Cuando creas el clúster de administrador, los controladores del clúster de arranque aprovisionarán nodos, ejecutarán verificaciones previas y registrarán el clúster de administrador en la flota. El clúster de arranque se borra de forma automática después de que se crea el clúster de forma correcta.

Consola

  1. En la consola de Google Cloud, ve a la página Clústeres de Anthos.

    Ir a la página Clústeres de Anthos

  2. Asegúrate de seleccionar PROJECT_ID en la lista de proyectos.

  3. Haz clic en Crear clúster.

  4. En el cuadro de diálogo, haz clic en Local.

  5. Junto a Bare metal, haz clic en Configure. En la página Requisitos, se muestran los requisitos para la estación de trabajo de administrador y las máquinas de nodo del clúster.

    Asegúrate de que esté seleccionada la opción Crear un clúster de administrador.

  6. En la barra de navegación izquierda, haz clic en Instalar entorno de arranque.

  7. Ingresa ADMIN_CLUSTER_NAME como el nombre del clúster de administrador. Ten en cuenta que el nombre del clúster de arranque se deriva cuando se antepone boot- al nombre del clúster de administrador.

  8. Selecciona VERSION como la versión de tu clúster de administrador. La secuencia de comandos descargó esta versión de la herramienta de línea de comandos de bmctl en la estación de trabajo de administrador. Los clústeres de Anthos alojados en Bare Metal que instales deben coincidir con la versión bmctl.

  9. En el campo Ubicación de la API de Google Cloud, selecciona ON_PREM_API_REGION en la lista. Esta configuración especifica la región en la que se ejecuta la API de Anthos On-Prem y la región en la que se almacena lo siguiente:

    • Los metadatos del clúster que necesita la API de Anthos On-Prem para administrar el ciclo de vida del clúster
    • Los datos de Cloud Logging y Cloud Monitoring de los componentes del sistema
    • El registro de auditoría de administrador creado por los registros de auditoría de Cloud

    El nombre, el proyecto y la ubicación del clúster identifican de forma única el clúster en Google Cloud.

Usa los pasos de la siguiente sección en lugar de los que se muestran en la consola para crear el clúster de arranque. Deja visible la página de la consola, ya que regresarás allí para crear el clúster de administrador.

CLI de gcloud

Abre una nueva ventana de la terminal. Usarás la segunda ventana de la terminal para conectarte a la estación de trabajo de administrador y crear el clúster de arranque. Usarás la primera ventana de la terminal para ejecutar el comando de gcloud CLI y crear el clúster de administrador.

Crea el clúster de arranque

Realiza los siguientes pasos en la estación de trabajo de administrador.

  1. Establece una conexión SSH a la estación de trabajo de administrador como raíz:

    gcloud compute ssh root@abm-ws --zone ZONE
    

    Puedes ignorar cualquier mensaje sobre la actualización de la VM y completar este instructivo. Si planeas conservar las VM como entorno de prueba, te recomendamos actualizar el SO o actualizar a la próxima versión, como se describe en la documentación de Ubuntu.

  2. Configura tus credenciales de usuario como Credenciales predeterminadas de la aplicación (ADC):

    gcloud auth application-default login
    

    Sigue las indicaciones a fin de seleccionar tu Cuenta de Google para ADC.

  3. Crea el clúster de arranque.

    bmctl register bootstrap \
      --ssh-key=/root/.ssh/id_rsa \
      --name=bootstrap-ADMIN_CLUSTER_NAME \
      --project-id=PROJECT_ID
    

Después de que bmctl cree correctamente el clúster de arranque, verás un resultado similar al siguiente:

[2023-03-22 17:35:24+0000] Waiting for the temporary cluster to be registered... OK
[2023-03-22 17:35:37+0000] Please go to https://console.cloud.google.com/home/dashboard?project=example-project-12345 to create the cluster
[2023-03-22 17:35:37+0000] Waiting for preflight checks and cluster to run..

Crea el clúster de administrador

Consola

  1. En la página Instalar el entorno de arranque de la sección Entorno de arranque desde la estación de trabajo de administrador, haz clic en Verificar conexión.

    Si se realiza de forma correcta, la consola mostrará Conexión establecida.

    La conexión al clúster de arranque debe establecerse antes de continuar. Si no se establece la conexión, verifica los argumentos que especificaste en el comando bmctl register bootstrap:

    • Asegúrate de que el valor de --name coincida con el Nombre de arranque derivado que se muestra en la sección Aspectos básicos del entorno de arranque.

    • Asegúrate de que el valor de --project-id coincida con el ID del proyecto que seleccionaste en la consola.

    Si necesitas cambiar el nombre del clúster de arranque o el ID del proyecto, ingresa Ctrl-C para salir de bmctl register bootstrap y volver a ejecutar el comando.

  2. Haz clic en Herramientas de redes en la barra de navegación izquierda.

  3. En la sección Plano de control, ingresa lo siguiente en el campo IP 1 del nodo del plano de control:

    10.200.0.3
    

    Esta es la dirección IP de la VM abm-admin-cluster-cp en la VXLAN que creó la secuencia de comandos.

  4. En la sección Balanceador de cargas, asegúrate de que esté seleccionada la opción Agrupados.

  5. En la sección IP virtuales (VIP), ingresa lo siguiente en el campo VIP del plano de control:

    10.200.0.48
    
  6. Haz clic en Verificar y crear.

    La consola muestra mensajes de estado mientras verifica la configuración y crea el clúster.

CLI de gcloud

  1. Asegúrate de que las variables de entorno que definiste antes tengan los valores correctos. Aunque el comando de ejemplo usa marcadores de posición, deben coincidir con las variables de entorno que usó la secuencia de comandos.

    echo $PROJECT_ID
    echo $ADMIN_CLUSTER_NAME
    echo $ON_PREM_API_REGION
    echo $BMCTL_VERSION
    
  2. Confirma que el clúster de arranque se haya registrado como miembro de la flota:

    gcloud container fleet memberships list \
      --project=PROJECT_ID
    

    Si el clúster de arranque no aparece en la lista, verifica el nombre del clúster de arranque y el ID del proyecto que especificaste en bmctl register bootstrap. Si necesitas cambiar el nombre del clúster de arranque o el ID del proyecto, ingresa Ctrl-C para salir de bmctl register bootstrap y volver a ejecutar el comando.

  3. Crea el clúster de administrador con el balanceador de cargas en paquetes:

    gcloud beta container bare-metal admin-clusters create ADMIN_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=ON_PREM_API_REGION \
      --version=BMCTL_VERSION \
      --max-pods-per-node=110 \
      --control-plane-vip=10.200.0.48 \
      --control-plane-load-balancer-port=443 \
      --control-plane-node-configs node-ip=10.200.0.3 \
      --island-mode-service-address-cidr-blocks=10.96.0.0/20 \
      --island-mode-pod-address-cidr-blocks=192.168.0.0/16 \
      --lvp-share-path=/mnt/localpv-share \
      --lvp-share-storage-class=local-shared \
      --lvp-node-mounts-config-path=/mnt/localpv-disk \
      --lvp-node-mounts-config-storage-class=local-disks
    

    En el comando anterior:

    • --control-plane-vip: Se estableció en 10.200.0.48. Esta es la IP virtual (VIP) en el balanceador de cargas para el servidor de la API de Kubernetes del clúster.

    • --control-plane-node-configs: El node-ip se establece en 10.200.0.3. Esta es la dirección IP de la VM abm-admin-cluster-cp en la VXLAN creada por la secuencia de comandos.

    Para obtener una lista completa de las marcas y sus descripciones, consulta la referencia de la CLI de gcloud.

    El resultado del comando es similar al siguiente:

    Waiting for operation [projects/example-project-12345/locations/us-west1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.
    

    En el resultado de ejemplo, la string operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179 es el OPERATION_ID de la operación de larga duración. Para averiguar el estado de la operación, ejecuta el siguiente comando en otra ventana de la terminal:

    gcloud beta container bare-metal operations describe OPERATION_ID \
      --project=PROJECT_ID \
      --location=ON_PREM_API_REGION
    

Los detalles del proceso de creación del clúster se muestran en tu estación de trabajo de administrador. Antes de crear el clúster, bmctl ejecuta una serie de verificaciones previas para verificar la configuración. Si se aprueban las verificaciones previas, verás algo como lo siguiente:

[2023-03-22 23:12:47+0000] Waiting for cluster kubeconfig to become ready OK
[2023-03-22 23:15:47+0000] Writing kubeconfig file
[2023-03-22 23:15:47+0000] kubeconfig of cluster being created is present at bmctl-workspace/abm-cluster-1/abm-cluster-1-kubeconfig
[2023-03-22 23:15:47+0000] Please restrict access to this file as it contains authentication credentials of your cluster.
[2023-03-22 23:15:47+0000] Waiting for cluster to become ready OK
[2023-03-22 23:20:17+0000] Please run
[2023-03-22 23:20:17+0000] kubectl --kubeconfig bmctl-workspace/abm-cluster-1/abm-cluster-1-kubeconfig get nodes
[2023-03-22 23:20:17+0000] to get cluster nodes status.
[2023-03-22 23:20:17+0000] Waiting for node pools to become ready OK
[2023-03-22 23:20:37+0000] Waiting for metrics to become ready in GCP OK
[2023-03-22 23:25:38+0000] Waiting for cluster API provider to install in the created admin cluster OK
[2023-03-22 23:25:48+0000] Moving admin cluster resources to the created admin cluster
[2023-03-22 23:25:51+0000] Waiting for node update jobs to finish OK
[2023-03-22 23:27:41+0000] Flushing logs... OK
[2023-03-22 23:27:41+0000] Deleting membership... OK
[2023-03-22 23:27:42+0000] Deleting bootstrap cluster.

Verifica el clúster de administrador

Puedes encontrar el archivo kubeconfig del clúster de administrador en la estación de trabajo del administrador en el directorio bmctl-workspace de la cuenta raíz. Para verificar tu implementación, completa los siguientes pasos.

  1. Si la secuencia de comandos creó el clúster de administrador, establece una conexión SSH a la estación de trabajo de administrador como raíz:

    gcloud compute ssh root@abm-ws --zone ZONE
    

    Puedes ignorar cualquier mensaje sobre la actualización de la VM y completar este instructivo. Si planeas conservar las VM como entorno de prueba, te recomendamos actualizar el SO o actualizar a la próxima versión, como se describe en la documentación de Ubuntu.

  2. Establece la variable de entorno KUBECONFIG con la ruta de acceso al archivo de configuración del clúster para ejecutar comandos kubectl en el clúster.

    export clusterid=ADMIN_CLUSTER_NAME
    export KUBECONFIG=$HOME/bmctl-workspace/$clusterid/$clusterid-kubeconfig
    kubectl get nodes
    

    El resultado es similar a este:

    NAME                   STATUS   ROLES                  AGE   VERSION
    abm-admin-cluster-cp   Ready    control-plane,master   91m   v1.24.2-gke.1900
    
  3. Establece el contexto actual en una variable de entorno:

    export CONTEXT="$(kubectl config current-context)"
    
  4. Ejecuta el siguiente comando gcloud: Este comando hace lo siguiente:

    • Otorga a tu cuenta de usuario la función clusterrole/cluster-admin de Kubernetes en el clúster.
    • Configura el clúster para que puedas ejecutar comandos de kubectl en tu computadora local sin tener que establecer una conexión SSH a la estación de trabajo de administrador.
    • Te permite acceder al clúster en la consola con tu identidad de Google.

    Reemplaza YOUR_EMAIL_ADDRESS por la dirección de correo electrónico asociada con tu cuenta de Google Cloud. Por ejemplo: --users=alex@example.com

    gcloud container fleet memberships generate-gateway-rbac  \
        --membership=ADMIN_CLUSTER_NAME \
        --role=clusterrole/cluster-admin \
        --users=YOUR_EMAIL_ADDRESS \
        --project=PROJECT_ID \
        --kubeconfig=$KUBECONFIG \
        --context=$CONTEXT\
        --apply
    

    El resultado de este comando es similar al siguiente, que se trunca para leer:

    Validating input arguments.
    Specified Cluster Role is: clusterrole/cluster-admin
    Generated RBAC policy is:
    --------------------------------------------
    ...
    
    Applying the generate RBAC policy to cluster with kubeconfig: /root/bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig, context: ADMIN_CLUSTER_NAME-admin@ADMIN_CLUSTER_NAME
    Writing RBAC policy for user: YOUR_EMAIL_ADDRESS to cluster.
    Successfully applied the RBAC policy to cluster.
    
  5. Cuando termines de explorar, ingresa exit para salir de la estación de trabajo de administrador.

  6. Ejecuta el siguiente comando en tu computadora local para obtener la entrada de kubeconfig que puede acceder al clúster a través de la puerta de enlace de conexión:

    gcloud container fleet memberships get-credentials ADMIN_CLUSTER_NAME
    

    El resultado es similar a este:

    Starting to build Gateway kubeconfig...
    Current project_id: PROJECT_ID
    A new kubeconfig entry "connectgateway_PROJECT_ID_global_ADMIN_CLUSTER_NAME" has been generated and set as the current context.
    
  7. Ahora puedes ejecutar comandos de kubectl a través de la puerta de enlace de conexión:

    kubectl get nodes
    

    El resultado es similar a este:

    NAME                   STATUS   ROLES                  AGE   VERSION
    abm-admin-cluster-cp   Ready    control-plane,master   94m   v1.24.2-gke.1900
    
  8. Si la secuencia de comandos creó el clúster de administrador, ejecuta el siguiente comando para inscribir el clúster en la API de Anthos local:

    gcloud beta container bare-metal admin-clusters enroll ADMIN_CLUSTER_NAME  \
        --project=PROJECT_ID \
        --admin-cluster-membership=projects/PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME \
        --location=ON_PREM_API_REGION
    

    Si creaste el clúster, se inscribe de forma automática en la API de Anthos On-Prem.

Crea el clúster de usuario

Cuando la secuencia de comandos creó la L2 VXLAN para las VM, asignó las siguientes direcciones IP en la red 10.200.0.0/24. Usa estas direcciones IP cuando configures la red y el grupo de nodos para el clúster de usuario.

Nombre de VM IP de la red Descripción del nodo
admin-cluster-cp1 10.200.0.3 Nodo del plano de control del clúster de administrador
abm-user-cluster-cp1 10.200.0.4 Nodo del plano de control para el clúster de usuario
abm-usuario-clúster-w1 10.200.0.5 Nodo trabajador para el clúster de usuario
abm-usuario-clúster-w2 10.200.0.6 Otro nodo trabajador para el clúster de usuario

Puedes usar la consola de Google Cloud, Google Cloud CLI o Terraform para crear el clúster de usuario.

Consola

Sigue estos pasos para crear un clúster de usuario en la consola:

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

    Ir a la página Clústeres de Anthos

  2. Asegúrate de que el proyecto de Google Cloud en el que creaste el clúster de administrador esté seleccionado. Debería ver el clúster de administrador en la lista.

  3. Haz clic en Crear clúster.

  4. En el cuadro de diálogo, haz clic en Local.

  5. Junto a Bare metal, haz clic en Configure.

  6. Haz clic en Aspectos básicos del clúster en la barra de navegación izquierda.

Conceptos básicos del clúster

  1. Ingresa un nombre para el clúster de usuario o usa el predeterminado.

  2. Asegúrate de que esté seleccionado el clúster de administrador recién creado. Puede usar los valores predeterminados para el resto de la configuración de esta página.

  3. Haz clic en Herramientas de redes en la barra de navegación izquierda.

Herramientas de redes

  1. En la sección Plano de control, ingresa lo siguiente en el campo IP 1 del nodo del plano de control:

    10.200.0.4
    

    Esta es la dirección IP de la VM abm-user-cluster-cp1 en VXLAN que creó la secuencia de comandos.

  2. En la sección Balanceador de cargas, usa el balanceador de cargas predeterminado, Bundleed with MetalLB.

  3. En la sección Nuevo grupo de direcciones, ingresa el siguiente rango de direcciones IP en el campo Rango de direcciones IP 1:

    10.200.0.51-10.200.0.70
    
  4. Haz clic en Listo.

  5. En la sección IP virtuales, ingresa la siguiente dirección IP en el campo VIP del plano de control:

    10.200.0.50
    
  6. Ingresa la siguiente dirección IP para la VIP entrante:

    10.200.0.51
    
  7. Usa las direcciones IP predeterminadas en la sección CIDR del servicio y del Pod.

  8. Haz clic en grupo predeterminado en la barra de navegación izquierda.

Crear un grupo de nodos

Tu clúster debe tener al menos un grupo de nodos para los nodos trabajadores. Un grupo de nodos es una plantilla para los grupos de nodos trabajadores que se crean en este clúster.

Ingresa la siguiente dirección IP en el campo Dirección de nodos 1:

10.200.0.5

Esta es la dirección IP de la VM abm-user-cluster-w1 en la VXLAN que creó la secuencia de comandos.

Cree el clúster

  1. Haz clic en Verificar y crear para crear el clúster de usuario.

    La creación del clúster de usuario tarda 15 minutos o más. La consola muestra mensajes de estado a medida que verifica la configuración y crea el clúster.

    Si hay un problema con la configuración, la consola muestra un mensaje de error que debe ser lo suficientemente claro como para que puedas solucionar el problema de configuración y volver a intentar crear el clúster.

    Si deseas obtener información adicional sobre el proceso de creación, haz clic en Show details para mostrar un panel lateral. Haz clic en para cerrar el panel de detalles.

    Cuando se crea el clúster, se muestra el Estado del clúster: en ejecución.

    El clúster de captura de pantalla está listo

  2. Después de crear el clúster, haz clic en Clústeres para volver a la página Clústeres.

CLI de gcloud

Usa el siguiente comando para crear un clúster de usuario:

gcloud beta container bare-metal clusters create

Después de crear el clúster, debes crear al menos un grupo de nodos con el siguiente comando:

gcloud beta container bare-metal node-pools create

Para crear el clúster de usuario, haz lo siguiente:

  1. Asegúrate de que las variables de entorno que definiste antes tengan los valores correctos. Aunque el comando de ejemplo usa marcadores de posición, deben coincidir con las variables de entorno que usó la secuencia de comandos.

    echo $PROJECT_ID
    echo $ADMIN_CLUSTER_NAME
    echo $ON_PREM_API_REGION
    echo $BMCTL_VERSION
    
  2. Ejecuta el siguiente comando para crear el clúster de usuario. Reemplaza lo siguiente:

    • USER_CLUSTER_NAME: Es el nombre del clúster.

    • Asegúrate de que --admin-users esté configurado como la dirección de correo electrónico asociada con tu Cuenta de Google para que puedas administrar el clúster.

    Se completaron los demás valores de la marca. Desplázate si es necesario a fin de verificar que la marca --admin-cluster-membership tenga el valor correcto para el nombre del clúster de administrador, que es el último segmento del nombre de la membresía completamente especificado.

    gcloud beta container bare-metal clusters create USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --admin-cluster-membership=projects/PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME \
      --location=ON_PREM_API_REGION \
      --version=BMCTL_VERSION \
      --admin-users=YOUR_EMAIL_ADDRESS \
      --metal-lb-address-pools='pool=lb-pool-1,manual-assign=True,addresses=10.200.0.51-10.200.0.70' \
      --control-plane-node-configs='node-ip=10.200.0.4' \
      --control-plane-vip=10.200.0.50 \
      --control-plane-load-balancer-port=443 \
      --ingress-vip=10.200.0.51 \
      --island-mode-service-address-cidr-blocks=10.96.0.0/20 \
      --island-mode-pod-address-cidr-blocks=192.168.0.0/16 \
      --lvp-share-path=/mnt/localpv-share \
      --lvp-share-storage-class=local-shared \
      --lvp-node-mounts-config-path=/mnt/localpv-disk \
      --lvp-node-mounts-config-storage-class=local-disks
    

En la siguiente lista, se describen las marcas:

  • --project: Es el ID del proyecto en el que se registrará el clúster de usuario. Este proyecto se conoce como el proyecto host de flota.

  • --admin-cluster-membership: Es el nombre del clúster de administrador completamente especificado que identifica al clúster de administrador en la flota.

  • --location: Es la región de Google Cloud en la que se ejecuta y almacena los metadatos la API de Anthos On-Prem.

  • --version: Son los clústeres de Anthos alojados en Bare Metal.

  • --admin-users: Incluye tu dirección de correo electrónico para que se te otorgue las políticas de control de acceso basado en funciones (RBAC) de Kubernetes que te brinda acceso de administrador completo al clúster.

  • --metal-lb-address-pools: la configuración del grupo de direcciones para el balanceador de cargas de MetalLB empaquetado. El rango de direcciones IP debe estar en la red 10.200.0.0/24 que creó la secuencia de comandos. El rango de direcciones no debe contener las direcciones IP asignadas a las VM ni a la VIP del plano de control. Sin embargo, ten en cuenta que la VIP de Ingress debe estar en este rango de direcciones.

  • --control-plane-node-configs: Es la configuración del nodo del plano de control para el clúster de usuario. El valor de node-ip es 10.200.0.4, que es la dirección IP que la secuencia de comandos asignó a la VM abm-user-cluster-cp1.

  • --control-plane-vip: La IP virtual del plano de control. El valor 10.200.0.50 se encuentra en la red 10.200.0.0/24 que creó la secuencia de comandos, pero no se superpone con el rango de direcciones IP que se usa para los grupos de direcciones del balanceador de cargas de MetalLB.

  • --control-plane-load-balancer-port: Es el puerto en el que el balanceador de cargas entrega el plano de control. Aunque puedes configurar otro valor, el puerto 443 es el puerto estándar que se usa para las conexiones HTTPS.

  • --ingress-vip: La IP virtual del servicio de entrada. Esta dirección IP debe estar en el rango de direcciones IP que se usa para los grupos de direcciones del balanceador de cargas de MetalLB.

  • --island-mode-service-address-cidr-blocks: Es un rango de direcciones IP, en formato CIDR, que se usará para los objetos Service en el clúster de usuario. El comando de ejemplo usó 10.96.0.0/20, que es el valor predeterminado que proporciona la consola. El rango CIDR debe estar entre /24 y /12, donde /12 proporciona la mayor cantidad de direcciones IP. Te recomendamos que uses un rango en el espacio de direcciones IP para Internet privada, como se define en RFC 1918.

  • --island-mode-pod-address-cidr-blocks: Es un rango de direcciones IP, en formato CIDR, que se usará para los Pods en el clúster de usuario. El comando de ejemplo usó 192.168.0.0/16, que es el valor predeterminado que proporciona la consola. El rango CIDR debe estar entre /18 y /8, donde /8 proporciona la mayor cantidad de direcciones IP. Te recomendamos que uses un rango en el espacio de direcciones IP para Internet privada, como se define en RFC 1918.

  • --lvp-share-path: Esta es la ruta de acceso de la máquina anfitrión en la que se pueden crear subdirectorios. Se crea un PersistentVolume local (PV) para cada subdirectorio.

  • --lvp-share-storage-class: Esta es la StorageClass que se usará para crear volúmenes persistentes. StorageClass se crea durante la creación del clúster.

  • --lvp-node-mounts-config-path: Esta es la ruta de acceso de la máquina anfitrión en la que se pueden descubrir los discos activados. Se crea un PersistentVolume local (PV) para cada activación.

  • --lvp-node-mounts-config-storage: Es la clase de almacenamiento con la que se crean los PV durante la creación del clúster.

Después de ejecutar el comando, verás un resultado como el siguiente:

Waiting for operation [projects/PROJECT_ID/locations/ON_PREM_API_REGION/operations/operation-1678304606537-5f668bde5c57e-341effde-b612ff8a] to complete...

En el resultado de ejemplo, la string operation-1678304606537-5f668bde5c57e-341effde-b612ff8a es el OPERATION_ID de la operación de larga duración.

Para conocer el estado de la operación, copia el OPERATION_ID del resultado en el siguiente comando. Abre otra ventana de terminal y ejecuta el comando.

gcloud beta container bare-metal operations describe OPERATION_ID \
    --project=PROJECT_ID \
    --location=ON_PREM_API_REGION

La creación del clúster tarda unos 15 minutos o más. A medida que se crea el clúster, puedes ejecutar el comando anterior de vez en cuando para obtener el estado actual.

Cuando se cree el clúster, verás un resultado como el siguiente:

Created Anthos cluster on bare metal [https://gkeonprem.googleapis.com/v1/projects/PROJECT_ID/locations/ON_PREM_API_REGION/bareMetalClusters/USER_CLUSTER_NAME].

Crear un grupo de nodos

Después de crear el clúster con éxito, ejecuta el siguiente comando para crear un grupo de nodos. Reemplaza NODE_POOL_NAME por un nombre para el grupo de nodos y asegúrate de que el marcador de posición de la marca --cluster aún esté configurado con el nombre del clúster de usuario.

gcloud beta container bare-metal node-pools create NODE_POOL_NAME \
  --cluster=USER_CLUSTER_NAME \
  --project=PROJECT_ID \
  --location=ON_PREM_API_REGION \
  --node-configs='node-ip=10.200.0.5'
  • -node-configs: El valor asignado a node-ip es la dirección IP de la VM abm-user-cluster-w1 en la VXLAN que creó la secuencia de comandos.

Después de ejecutar el comando, verás un resultado como el siguiente:

Waiting for operation [projects/PROJECT_ID/locations/ON_PREM_API_REGION/operations/operation-1678308682052-5f669b0d132cb-6ebd1c2c-816287a7] to complete...

Crear el grupo de nodos toma alrededor de 5 minutos o menos. Cuando se cree el grupo de nodos, verás un resultado como el siguiente:

Created node pool in Anthos cluster on bare metal [https://gkeonprem.googleapis.com/v1/projects/PROJECT_ID/locations/ON_PREM_API_REGION/bareMetalClusters/USER_CLUSTER_NAME/bareMetalNodePools/NODE_POOL_NAME].

Otros comandos del clúster de usuario

Además de crear clústeres, puedes ejecutar otros comandos de gcloud CLI, por ejemplo:

  • Para enumerar tus clústeres de usuario, haz lo siguiente:
gcloud beta container bare-metal clusters list \
    --project=PROJECT_ID \
    --location=ON_PREM_API_REGION
  • Para describir un clúster de usuario, haz lo siguiente:
gcloud beta container bare-metal clusters describe USER_CLUSTER_NAME \
    --project=PROJECT_ID \
    --location=ON_PREM_API_REGION

Para obtener más información, consulta gcloud beta container bare-metal clusters.

Otros comandos del grupo de nodos

Además de crear grupos de nodos, puedes ejecutar otros comandos de gcloud CLI, por ejemplo:

  • Para enumerar los grupos de nodos, haz lo siguiente:
gcloud beta container bare-metal node-pools list \
    --cluster=USER_CLUSTER_NAME \
    --project=PROJECT_ID \
    --location=ON_PREM_API_REGION
  • Para describir un grupo de nodos, haz lo siguiente:
gcloud beta container bare-metal node-pools describe NODE_POOL_NAME \
    --cluster=USER_CLUSTER_NAME \
    --project=PROJECT_ID \
    --location=ON_PREM_API_REGION

Para obtener más información, consulta gcloud beta container bare-metal node-pools.

Terraform

Puedes usar la siguiente muestra de configuración básica para crear un clúster de usuario con un balanceador de cargas de MetalLB empaquetado. Para obtener más información, consulta la documentación de referencia de google_gkeonprem_bare_metal_cluster.

  1. En el directorio en el que clonaste anthos-samples, cambia al directorio en el que se encuentra la muestra de Terraform:

    cd anthos-samples/anthos-onprem-terraform/abm_user_cluster_metallb
    

    En el ejemplo, se proporciona un archivo de variables de ejemplo para pasar a main.tf.

  2. Haz una copia del archivo terraform.tfvars.sample:

    cp terraform.tfvars.sample terraform.tfvars
    
    
    project_id          = "PROJECT_ID"
    region              = "ON_PREM_API_REGION"
    admin_cluster_name  = "ADMIN_CLUSTER_NAME"
    bare_metal_version  = "VERSION"
    admin_user_emails   = ["YOUR_EMAIL_ADDRESS", "ADMIN_2_EMAIL_ADDRESS"]
    cluster_name        = "abm-user-cluster-metallb"
    control_plane_ips   = ["10.200.0.4"]
    worker_node_ips     = ["10.200.0.5", "10.200.0.6"]
    control_plane_vip   = "10.200.0.50"
    ingress_vip         = "10.200.0.51"
    lb_address_pools    = [
        { name = "lbpool_1", addresses = ["10.200.0.51-10.200.0.70"] }
    ]
    
  3. Modifica los valores de los parámetros en terraform.tfvars y guarda el archivo.

    En la siguiente lista, se describen las variables:

    • project_id: Es el ID del proyecto en el que se registrará el clúster de usuario. Este proyecto se conoce como el proyecto host de flota.

    • region: Es la región de Google Cloud que configuraste al comienzo del instructivo. Ejecuta echo $ON_PREM_API_REGION para obtener el valor.

    • admin_cluster_name: Es el nombre del clúster de administrador que configuraste al comienzo de este instructivo. Ejecuta echo $ADMIN_CLUSTER_NAME para obtener el valor.

    • bare_metal_version: Son los clústeres de Anthos alojados en Bare Metal para el clúster de usuario. Si quieres usar la misma versión que usaste para el clúster de administrador, ejecuta echo $BMCTL_VERSION a fin de obtener el valor. Si lo prefieres, puedes especificar una versión que no sea más de una versión secundaria que la versión del clúster de administrador. La versión del clúster de usuario no puede ser superior a la del clúster de administrador.

    • cluster_name: Puedes usar el nombre del archivo TVARS para el clúster de usuario o especificar el nombre que desees. El nombre no se puede cambiar después de que se crea el clúster.

    • admin_user_emails: Una lista de direcciones de correo electrónico de los usuarios a los que se les otorgarán privilegios administrativos en el clúster. Asegúrate de agregar tu dirección de correo electrónico para que puedas administrar el clúster.

      Cuando se crea el clúster, la API de Anthos On-Prem aplica las políticas de control de acceso basado en funciones (RBAC) de Kubernetes al clúster para otorgar a los usuarios administradores la función clusterrole/cluster-admin de Kubernetes, que proporciona acceso completo a cada recurso en el clúster en todos los espacios de nombres. Esto también permite a los usuarios acceder a la consola con su identidad de Google.

    Usa los valores predeterminados definidos en terraform.tvars para las variables restantes. La secuencia de comandos usó estos valores cuando creó las VM y el clúster de administrador.

    • control_plane_ips: Una lista de una o más direcciones IPv4 para los nodos del plano de control. Usa el valor predeterminado, que es la dirección IP que la secuencia de comandos asignó a la VM abm-user-cluster-cp1.

    • worker_node_ips: Una lista de una o más direcciones IPv4 para las máquinas de nodo trabajador. Usa los valores predeterminados, que son las direcciones IP que la secuencia de comandos asignó a las VM abm-user-cluster-w1 y abm-user-cluster-w2.

    • control_plane_vip: La IP virtual (VIP) del plano de control. Usa el valor predeterminado, 10.200.0.50, que se encuentra en la red 10.200.0.0/24 que creó la secuencia de comandos. Ten en cuenta que esta dirección IP no se superpone con el rango de direcciones IP que se usa para los grupos de direcciones del balanceador de cargas de MetalLB.

    • ingress_vip: La dirección IP virtual que se configurará en el balanceador de cargas para el proxy de entrada. Usa el valor predeterminado, 10.200.0.51, que se encuentra en la red 10.200.0.0/24 que creó la secuencia de comandos. Ten en cuenta que esta dirección IP está en el rango de direcciones IP que se usa para los grupos de direcciones del balanceador de cargas de MetalLB.

    • lb_address_pools: Una lista de mapas que definen los grupos de direcciones para el balanceador de cargas de MetalLB. Usa el valor predeterminado.

  4. Guarda los cambios en terraform.tfvars.

  5. Inicializa y crea terraform plan:

    terraform init
    

    Terraform instala las bibliotecas necesarias, como el proveedor de Google Cloud.

  6. Revisa la configuración y realiza los cambios necesarios:

    terraform plan
    
  7. Aplica el plan de Terraform para crear el clúster de usuario:

    terraform apply
    

    La creación del clúster de usuario tarda 15 minutos o más. Puedes ver el clúster en la consola de Google Cloud en la página Clústeres de Anthos.

Conéctate al clúster de usuario

Cuando creas un clúster de usuario con la consola o gcloud CLI, el clúster se configura con las mismas políticas de control de acceso basado en funciones (RBAC) de Kubernetes que configuraste para el clúster de administrador cuando ejecutaste gcloud container fleet memberships generate-gateway-rbac. Estas políticas de RBAC te permiten conectarte al clúster mediante tu identidad de Google Cloud, que es la dirección de correo electrónico asociada a tu cuenta de Google Cloud. Estas políticas de RBAC te permiten acceder a la consola sin ninguna configuración adicional.

Conéctate al clúster en la consola

Si usaste gcloud CLI para crear el clúster de usuario, ve a la página de clústeres de Anthos en la consola:

Ir a la página Clústeres de Anthos

Asegúrate de que el proyecto en el que creaste el clúster de usuario esté seleccionado. Debería ver el clúster de administrador y de usuario en la lista.

Ten en cuenta que el clúster de usuario tiene Anthos (Bare Metal: Usuario) en la columna Tipo. Esto indica que la API de Anthos On-Prem administra el clúster.

El clúster de administrador tiene la opción Externo en la columna Tipo. Esto indica que la API de Anthos On-Prem no administra el clúster.

Captura de pantalla de la lista de clústeres

Aunque la secuencia de comandos creó el clúster de administrador mediante bmctl, puedes configurar el clúster de administrador para que lo administre la API de Anthos local.

Para acceder a un clúster, haz lo siguiente:

  1. Haz clic en el vínculo del nombre del clúster y, en el panel lateral, haz clic en Acceso.

  2. Selecciona Usa tu identidad de Google para acceder

  3. Haz clic en Acceder.

Repite los mismos pasos para acceder al clúster de administrador.

Captura de pantalla de la lista de clústeres

Conéctate al clúster en la línea de comandos

La API de Anthos On-Prem configura las políticas de RBAC por ti como creador del clúster de usuario. Estas políticas te permiten ejecutar comandos kubectl en tu escritorio local con el kubeconfig de la puerta de enlace de Connect.

Desde tu computadora local:

  1. Obtén la entrada kubeconfig que puede acceder al clúster a través de la puerta de enlace de Connect.

    gcloud container fleet memberships get-credentials USER_CLUSTER_NAME
    

    El resultado es similar a este:

    Starting to build Gateway kubeconfig...
    Current project_id: PROJECT_ID
    A new kubeconfig entry "connectgateway_PROJECT_ID_global_USER_CLUSTER_NAME" has been generated and set as the current context.
    
  2. Ahora puedes ejecutar comandos de kubectl a través de la puerta de enlace de Connect:

    kubectl get nodes
    

    El resultado es similar a este:

    NAME                  STATUS   ROLES                  AGE     VERSION
    abm-user-cluster-cp   Ready    control-plane,master   14m     v1.24.2-gke.1900
    abm-user-cluster-w1   Ready    worker                 8m28s   v1.24.2-gke.1900
    

Agrega otro grupo de nodos al clúster de usuario

Consola

  1. En la consola de Google Cloud, ve a la página Clústeres de Anthos.

    Ir a la página Clústeres de Anthos

  2. En la lista de clústeres, haz clic en el nombre del clúster y, luego, en Más detalles en el panel Detalles.

  3. Haz clic en la pestaña Nodos.

  4. Haz clic en Agregar grupo de nodos.

  5. Ingresa un nombre para el grupo de nodos.

  6. En el campo Nodos 1, ingresa la siguiente dirección IP:

    10.200.0.6
    

    Esta es la dirección IP de la VM abm-user-cluster-w2 que creó la secuencia de comandos.

  7. Haga clic en Crear.

  8. Si es necesario, vuelve a hacer clic en la pestaña Nodos.

  9. El nuevo grupo de nodos muestra el estado Conciliando.

  10. Haz clic en en la esquina superior derecha para ver el estado de creación del grupo de nodos. Es posible que debas actualizar la página para ver el estado actualizado en la lista de grupos de nodos.

CLI de gcloud

Ejecuta el siguiente comando para crear otro grupo de nodos. Reemplaza NODE_POOL_NAME_2 por un nombre para el grupo de nodos y asegúrate de que el marcador de posición de la marca --cluster aún esté configurado con el nombre del clúster de usuario.

gcloud beta container bare-metal node-pools create NODE_POOL_NAME_2 \
  --cluster=USER_CLUSTER_NAME \
  --project=PROJECT_ID \
  --location=ON_PREM_API_REGION \
  --node-configs='node-ip=10.200.0.6'
  • -node-configs: El valor asignado a node-ip es la dirección IP de la VM abm-user-cluster-w2 en la VXLAN que creó la secuencia de comandos.

Terraform

Si creaste el clúster con Terraform, este se creó con dos nodos, por lo que no hay VM adicionales disponibles en VXLAN para agregar otro nodo. Para obtener información sobre cómo agregar grupos de nodos, consulta la documentación de referencia de google_gkeonprem_bare_metal_cluster.

También puedes verificar el nodo nuevo mediante kubectl. Primero, debes ejecutar el comando gcloud container fleet memberships get-credentials como se mostró antes para recuperar la configuración del clúster:

kubectl get nodes

El resultado es similar a este:

NAME                  STATUS   ROLES                  AGE     VERSION
abm-user-cluster-cp   Ready    control-plane,master   24m   v1.24.2-gke.1900
abm-user-cluster-w1   Ready    worker                 18m   v1.24.2-gke.1900
abm-user-cluster-w2   Ready    worker                 52s   v1.24.2-gke.1900

Limpia

Borra el clúster de usuario

Consola

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

    Ir a la página Clústeres de Anthos

  2. En la lista de clústeres, haz clic en el clúster de usuario.

  3. En el panel Detalles, haz clic en Más detalles.

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

  5. Cuando se le solicite confirmar, ingrese el nombre del clúster y haga clic en Confirmar.

  6. Haz clic en en la esquina superior derecha para ver el estado de la eliminación. Es posible que debas actualizar la página para actualizar la lista de clústeres.

CLI de gcloud

Ejecuta el siguiente comando para borrar el clúster:

gcloud beta container bare-metal clusters delete USER_CLUSTER_NAME \
  --project=PROJECT_ID \
  --location=ON_PREM_API_REGION \
  --force

La marca --force te permite borrar un clúster que tiene grupos de nodos. Sin la marca --force, primero debes borrar los grupos de nodos y, luego, borrar el clúster.

Para obtener información sobre otras marcas, consulta el artículo gcloud beta container bare-metal clusters delete.

Terraform

Ejecuta el siguiente comando:

terraform destroy

Espera a que se borre el clúster de usuario antes de borrar el clúster de administrador y las VM.

Borra el clúster de administrador y las VM

  1. Da de baja el clúster de administrador en la API de Anthos local:

    gcloud beta container bare-metal admin-clusters unenroll ADMIN_CLUSTER_NAME \
        --project=PROJECT_ID \
        --location=ON_PREM_API_REGION
    
  2. Conéctate a la estación de trabajo de administrador:

    gcloud compute ssh root@abm-ws --zone ZONE
    
  3. Borra el clúster de administrador:

    bmctl reset -c ADMIN_CLUSTER_NAME
    

    bmctl cancela el registro del clúster en la flota y, luego, lo borra. Espere a que se borre el clúster antes de borrar las VMs.

  4. Sal de la estación de trabajo de administrador.

  5. Enumera todas las VM que tienen abm en su nombre:

    gcloud compute instances list | grep 'abm'
    
  6. Verifica que estés bien y borra todas las VM que contengan abm en el nombre.

    Después de verificar, puedes borrar las VM de abm mediante la ejecución del siguiente comando:

    gcloud compute instances list --format="value(name)" | \
      grep 'abm'  | \
      xargs gcloud --quiet compute instances delete
    
  7. Borra la cuenta de servicio:

    gcloud iam service-accounts delete baremetal-gcr@PROJECT_ID.iam.gserviceaccount.com
    

    En el mensaje de confirmación, ingresa y.

    ¿Qué sigue?