Crea clústeres de administrador y de usuario de demostración de Google Distributed Cloud en VMs de Compute Engine

Crea clústeres de demostración en máquinas virtuales (VMs) de Compute Engine para aprender sobre Google Distributed Cloud. La creación de un clúster de administrador y un clúster de usuario con esta guía puede llevar entre 40 minutos y una hora. Los clústeres de demostración que creas en esta guía te ayudan a evaluar el proceso de aprovisionamiento y operación de los clústeres de Google Distributed Cloud, pero no están diseñados para usarse en producción.

En el documento, se explica el proceso para ejecutar una secuencia de comandos que hace lo siguiente:

  • Aprovisiona cinco VMs de Compute Engine para instalar tus clústeres de demostración
  • Configura una red de VPC para proporcionar conectividad al clúster

Una vez que la secuencia de comandos aprovisione los recursos necesarios, usa uno de los siguientes clientes para crear un clúster de administrador y un clúster de usuario complementario que pueda alojar cargas de trabajo: bmctl, la consola de Google Cloud, Google Cloud CLI o Terraform.

Descripción general del procedimiento

Esta guía contiene los siguientes pasos principales:

  1. Prepara tu entorno local para que la secuencia de comandos tenga las variables de entorno requeridas y hayas recopilado la información básica necesaria para ejecutar comandos.

  2. Crea las VMs y la red con la secuencia de comandos descargada.

  3. Crea el clúster de administrador con uno de los clientes admitidos.

  4. Crea el clúster de usuario con uno de los clientes compatibles.

  5. Realiza una limpieza para quitar los clústeres y las VMs que creaste con esta guía.

1. Prepara el entorno local

Debido a que esta guía usa una secuencia de comandos que configura la red por ti, no necesitas recopilar mucha información ni hacer ninguna planificación. En los siguientes pasos, se configura tu entorno local y se recopila la información básica que necesitas en las secciones posteriores de la guía:

  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, ya que lo necesitarás para configurar una variable de entorno que se usa en la secuencia de comandos y los comandos de esta página. Si elegiste 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 ejecuta Linux o macOS. Si no usas Cloud Shell, haz lo siguiente:
    1. Asegúrate de haber instalado la versión más reciente de Google Cloud CLI, la herramienta de línea de comandos para interactuar con Google Cloud. 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:

      You cannot perform this action because the Google Cloud CLI component manager is disabled for this installation. You can run the following command to achieve the same result for this installation:

      Sigue las instrucciones para copiar y pegar el comando para actualizar los componentes.

    2. Asegúrate de tener kubectl instalado. Si necesitas instalar kubectl, ejecuta el siguiente comando:
      gcloud components install kubectl
  8. 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
    • ADMIN_CLUSTER_NAME: el nombre que eliges para el clúster de administrador
    • ON_PREM_API_REGION: Es la región de Google Cloud en la que se ejecuta la API de GKE On-Prem y se almacenan sus metadatos. Especifica us-central1 o alguna otra región compatible.
    • ZONE: Es la zona de Google Cloud en la que se crean las VMs de Compute Engine. Puedes usar us-central1-a o cualquiera de las otras zonas de Compute Engine.
  9. Ejecuta los siguientes comandos para establecer el proyecto y la zona predeterminados.
    gcloud config set project $PROJECT_ID
    gcloud config set compute/zone $ZONE

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

  10. Obtén una lista de las versiones compatibles que puedes instalar:
    gcloud container bare-metal admin-clusters query-version-config \
        --location=ON_PREM_API_REGION
  11. Selecciona una versión del resultado del comando anterior y configúrala en una variable de entorno:
    export BMCTL_VERSION=BMCTL_VERSION

    Te recomendamos que selecciones la versión compatible más reciente para obtener las funciones y correcciones más recientes de Google Distributed Cloud.

2. Crea las VMs y la red

En esta sección, descargarás y ejecutarás la secuencia de comandos install_admin_cluster.sh.

  1. Clona el repositorio de anthos-samples y cambia al directorio en el que se encuentra la secuencia de comandos:

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

    bash install_admin_cluster.sh
    
  3. En el mensaje, ingresa 2 para configurar solo la infraestructura de Compute Engine y confirma tu selección cuando se te solicite.

    La secuencia de comandos crea VMs de Compute Engine, crea una red VXLAN y configura la estación de trabajo del administrador y los nodos del clúster. Esta infraestructura tarda alrededor de 5 minutos en configurarse.

    Para obtener más información sobre la secuencia de comandos, haz clic en el siguiente vínculo:

    Información acerca de la secuencia de comandos

    Puedes ver la secuencia de comandos en la carpeta anthos-bm-gcp-bash del repositorio de GitHub anthos-samples. La secuencia de comandos automatiza los siguientes pasos manuales:

    1. 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
      compute.googleapis.com
      gkeconnect.googleapis.com
      gkehub.googleapis.com
      gkeonprem.googleapis.com
      serviceusage.googleapis.com
      stackdriver.googleapis.com
      monitoring.googleapis.com
      logging.googleapis.com
      kubernetesmetadata.googleapis.com
      iam.googleapis.com
      opsconfigmonitoring.googleapis.com
    2. En lugar de crear varias cuentas de servicio para diferentes APIs y servicios, la secuencia de comandos crea una sola cuenta de servicio llamada baremetal-gcr y le otorga los siguientes roles de IAM:
      • roles/gkehub.admin
      • roles/gkehub.connect
      • roles/logging.logWriter
      • roles/monitoring.dashboardEditor
      • roles/monitoring.metricWriter
      • roles/monitoring.viewer
      • roles/opsconfigmonitoring.resourceMetadata.writer
      • roles/serviceusage.serviceUsageViewer
      • roles/stackdriver.resourceMetadata.writer
    3. Crea las siguientes VMs:
      • Una VM para la estación de trabajo de administrador
      • Una VM para el nodo del plano de control del clúster de administrador
      • Dos VMs para los nodos trabajadores del clúster de usuario
      • Una VM para el nodo del plano de control del clúster de usuario
    4. Verifica que SSH esté habilitado en todas las VMs y que la estación de trabajo del administrador tenga acceso SSH a todas las otras VMs que se crearon para los nodos del clúster.
    5. Crea una red superpuesta de LAN extensible virtual (VXLAN) para la conectividad de capa 2 entre las VMs. La VXLAN no es persistente, por lo que, si reinicias una instancia de VM, se destruye la red. La red está configurada para estar en la subred 10.200.0.0/24. La conectividad de la capa 2 es un requisito para el balanceador de cargas empaquetado.
    6. 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 del administrador.

    7. Se asegura de que root@10.200.0.x de la estación de trabajo del administrador funcione realizando las siguientes tareas:
      1. Generar una clave SSH nueva en la estación de trabajo de administrador.
      2. Agregar la clave pública a todas las otras VM de la implementación.

    La secuencia de comandos muestra cada comando que ejecuta y el estado. Cuando finaliza, la secuencia de comandos muestra lo siguiente:

    ✅ Successfully set up SSH access from admin workstation to cluster node VMs.
    
    ✅ GCE Infrastructure setup 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-cp  | 10.200.0.3            | 🌟 Ready for use as control plane for the admin cluster |
    | abm-user-cluster-cp   | 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         |
    |---------------------------------------------------------------------------------------------------------|
    

3. Crea el clúster de administrador:

bmctl

Para crear un clúster de administrador con bmctl, accede a la VM de la estación de trabajo de administrador en una ventana de terminal y ejecuta los siguientes comandos desde allí:

  1. Usa SSH para acceder a la VM de la estación de trabajo de administrador, abm-ws, como raíz:

    gcloud compute ssh root@abm-ws --zone ZONE
    
  2. Configura tus credenciales de usuario como credenciales predeterminadas de la aplicación (ADC):

    gcloud auth application-default login
    

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

  3. Genera un archivo de configuración del clúster:

    bmctl create config -c ADMIN_CLUSTER_NAME --project-id=PROJECT_ID
    
  4. Verifica el archivo de configuración del clúster de administrador:

    El siguiente archivo de configuración del clúster se completa con los valores que proporcionaste antes. Además de los valores que ingresaste, ten en cuenta las siguientes diferencias con el archivo de configuración generado:

    • Se quitaron los comentarios de este ejemplo para mejorar la legibilidad.
    • La secuencia de comandos crea una sola cuenta de servicio con todos los permisos necesarios y descarga la clave bm-gcr.json a la que se hace referencia en el archivo de configuración.
    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
      profile: default
      anthosBareMetalVersion: BMCTL_VERSION
      gkeConnect:
        projectID: PROJECT_ID
      controlPlane:
        nodePoolSpec:
          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:
        projectID: PROJECT_ID
        location: us-central1
      storage:
        lvpNodeMounts:
          path: /mnt/localpv-disk
          storageClassName: local-disks
        lvpShare:
          path: /mnt/localpv-share
          storageClassName: local-shared
          numPVUnderSharedPath: 5
      nodeConfig:
        podDensity:
          maxPodsPerNode: 110
    
  5. Reemplaza el contenido del archivo de configuración generado en tu estación de trabajo de administrador por el contenido del ejemplo anterior.

    Abre el archivo generado, bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME.yaml, y reemplaza su contenido por el del ejemplo que verificaste en el paso anterior.

  6. Crea el clúster de administrador:

    bmctl create cluster -c ADMIN_CLUSTER_NAME

    El comando bmctl muestra el resultado en la pantalla a medida que ejecuta las verificaciones previas y crea el clúster. La información detallada se escribe en los registros de la carpeta baremetal/bmctl-workspace/abm-user-cluster-metallb/log en la estación de trabajo de administrador.

    La creación del clúster puede tomar varios minutos en completarse.

  7. En la consola, ve a la página Clústeres de GKE.

    Ir a los clústeres de GKE

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

  8. Accede al clúster de administrador:

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

    2. Selecciona Usa tu identidad de Google para acceder

    3. Haga clic en Acceder.

Verifica el clúster de administrador

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

  1. Usa SSH para acceder a la estación de trabajo de administrador como raíz:

    gcloud compute ssh root@abm-ws --zone ZONE
    
  2. Verifica que se haya creado el clúster de administrador y que esté en ejecución:

    kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig get nodes
    

    El resultado es similar a este:

    NAME                   STATUS   ROLES                  AGE   VERSION
    abm-admin-cluster-cp   Ready    control-plane   94m   v1.27.4-gke.1600
    
  3. Cuando termines de explorar, ingresa exit para desconectarte de la estación de trabajo del administrador.

Console

Para crear un clúster de administrador en la consola, debes ejecutar bmctl register bootstrap desde la VM de la estación de trabajo de administrador para crear un clúster de arranque. Mientras se ejecuta el comando bmctl register bootstrap, debes realizar pasos en la consola para crear el clúster de administrador.

Ingresa los conceptos básicos del entorno de arranque

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

    Ir a los clústeres de GKE

  2. Haz clic en Crear.

  3. En el diálogo Create a cluster, selecciona Local y haz clic en Configure para Bare Metal:

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

  5. En la barra de navegación izquierda, haz clic en Install bootstrap environment.

  6. Ingresa ADMIN_CLUSTER_NAME como el nombre del clúster de administrador.

  7. Selecciona BMCTL_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. La versión de Google Distributed Cloud que instales debe coincidir con la versión de bmctl.

  8. En el campo Ubicación de la API de Google Cloud, selecciona ON_PREM_API_REGION en la lista. Este parámetro de configuración especifica la región en la que se ejecuta la API de GKE On-Prem y la región en la que se almacena lo siguiente:

    • Los metadatos del clúster que la API de GKE On-Prem necesita 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 juntos 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 inicialización. Deja la página de la consola visible porque continuarás allí para crear el clúster de administrador.

Crea el clúster de arranque

Cuando usas un cliente de API de GKE On-Prem, como la consola, para crear un clúster de administrador, debes crear un clúster de arranque en la estación de trabajo del administrador. El clúster de arranque aloja los controladores de Kubernetes necesarios para crear el clúster de administrador.

  1. Desde la línea de comandos, usa SSH para acceder a la VM de 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 mantener las VMs como entorno de pruebas, te recomendamos que actualices el SO o que cambies a la siguiente 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 para seleccionar tu Cuenta de Google para ADC.

  3. Cambia al directorio baremetal/ y ejecuta el siguiente comando para crear el clúster de arranque.

    Para obtener el nombre del clúster de arranque, se antepone bootstrap- al nombre del clúster de administrador.

    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:

  1. En la página Install bootstrap environment, en la sección Bootstrap environment from admin workstation, haz clic en Check Connection.

    Si se realiza de forma correcta, la consola mostrará Connection established.

    Debes establecer la conexión con el clúster de arranque antes de continuar. Si no se establece la conexión, verifica los argumentos que especificaste para 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 Conceptos 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 inicialización o el ID del proyecto, ingresa Ctrl-C para salir de bmctl register bootstrap y vuelve a ejecutar el comando.

Herramientas de redes

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

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

    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.

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

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

    10.200.0.48
    

    El siguiente paso depende de la disponibilidad del clúster de arranque. El comando bmctl register bootstrap en la ventana de terminal debe ejecutarse durante algunos minutos antes de que el clúster de arranque se muestre como miembro registrado. Si, después de unos minutos, aún no está disponible, verifica el nombre del clúster de arranque y el ID del proyecto que usaste. Si necesitas cambiar el nombre del clúster de inicialización o el ID del proyecto, ingresa Ctrl-C en la otra ventana de terminal para salir de bmctl register bootstrap y volver a ejecutar el comando.

  5. Haz clic en Verificar y crear.

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

    Cuando se crea el clúster de administrador, se borra el clúster de arranque en la estación de trabajo de administrador. El resultado del comando bmctl register bootstrap en la otra ventana de terminal es similar al siguiente:

    ...
    [2024-04-15 23:10:48+0000] Waiting for cluster to become ready OK
    [2024-04-15 23:16:38+0000] Please run
    [2024-04-15 23:16:38+0000] kubectl --kubeconfig bmctl-workspace/gce-admin-gcloud-001/gce-admin-gcloud-001-kubeconfig get nodes
    [2024-04-15 23:16:38+0000] to get cluster nodes status.
    [2024-04-15 23:16:38+0000] Waiting for node pools to become ready OK
    [2024-04-15 23:16:58+0000] Waiting for metrics to become ready in GCP OK
    [2024-04-15 23:21:58+0000] Waiting for cluster API provider to install in the created admin cluster OK
    [2024-04-15 23:22:08+0000] Moving admin cluster resources to the created admin cluster
    [2024-04-15 23:22:10+0000] Waiting for node update jobs to finish OK
    [2024-04-15 23:24:30+0000] Flushing logs... OK
    [2024-04-15 23:24:30+0000] Unregistering bootstrap cluster.
    [2024-04-15 23:24:30+0000] Deleting membership... OK
    [2024-04-15 23:24:32+0000] Deleting bootstrap cluster.
    

Verifica el clúster de administrador

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

  1. Usa SSH para acceder a la estación de trabajo de administrador como raíz:

    gcloud compute ssh root@abm-ws --zone ZONE
    
  2. Verifica que se haya creado el clúster de administrador y que esté en ejecución:

    kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig get nodes
    

    El resultado es similar a este:

    NAME                   STATUS   ROLES                  AGE   VERSION
    abm-admin-cluster-cp   Ready    control-plane   94m   v1.27.4-gke.1600
    
  3. Cuando termines de explorar, ingresa exit para desconectarte de la estación de trabajo del administrador.

gcloud CLI

Las siguientes instrucciones requieren dos ventanas de terminal. En una ventana de terminal, ejecuta bmctl register bootstrap para crear un clúster de arranque. Mientras se ejecuta el comando bmctl register bootstrap, ejecuta gcloud container bare-metal admin-clusters create en otra ventana de terminal para crear el clúster de administrador.

Crea el clúster de arranque

Cuando usas un cliente de API de GKE On-Prem, como gcloud CLI, para crear un clúster de administrador, debes crear un clúster de arranque en la estación de trabajo del administrador. El clúster de arranque aloja los controladores de Kubernetes necesarios para crear el clúster de administrador.

  1. Desde la línea de comandos, usa SSH para acceder a la VM de 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 mantener las VMs como entorno de pruebas, te recomendamos que actualices el SO o que cambies a la siguiente 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 para seleccionar tu Cuenta de Google para ADC.

  3. Cambia al directorio baremetal/ y ejecuta el siguiente comando para crear el clúster de arranque.

    Para obtener el nombre del clúster de arranque, se antepone bootstrap- al nombre del clúster de administrador.

    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:

  1. En una ventana de terminal nueva, confirma que el clúster de arranque se haya registrado como miembro de la flota:

    gcloud container fleet memberships list \
        --project=PROJECT_ID
    

    El comando gcloud container bare-metal admin-clusters create en el siguiente paso depende de la disponibilidad del clúster de arranque. El comando bmctl register bootstrap en la otra ventana de terminal debe ejecutarse durante unos minutos antes de que el clúster de arranque se muestre como miembro registrado. Si, después de unos minutos, aún no aparece, verifica el nombre del clúster de arranque y el ID del proyecto que usaste. Si necesitas cambiar el nombre del clúster de inicialización o el ID del proyecto, ingresa Ctrl-C en la otra ventana de terminal para salir de bmctl register bootstrap y volver a ejecutar el comando.

  2. Crea el clúster de administrador con el balanceador de cargas incluido:

    Asegúrate de que los valores que especifiques coincidan con las variables de entorno que especificaste antes para la secuencia de comandos.

    gcloud 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
    

    Con este comando, tendrá que hacer lo siguiente:

    • --control-plane-vip se configura como 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 configura como 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.

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

    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 cadena 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 terminal:

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

    Cuando gcloud container bare-metal admin-clusters create se completa de forma correcta, el resultado es similar al siguiente:

    Created Anthos on bare metal Admin Cluster
    [https://gkeonprem.googleapis.com/v1/projects/anonuser-anonproject/locations/us-central1/bareMetalAdminClusters/gce-admin-gcloud-001].
    NAME           LOCATION     VERSION           MEMBERSHIP     STATE
    abm-cluster-1  us-central1  1.28.300-gke.131  abm-cluster-1  RUNNING
    

    Cuando se crea el clúster de administrador, se borra el clúster de arranque en la estación de trabajo de administrador. El resultado del comando bmctl register bootstrap en la otra ventana de terminal es similar al siguiente:

    ...
    [2024-04-15 23:10:48+0000] Waiting for cluster to become ready OK
    [2024-04-15 23:16:38+0000] Please run
    [2024-04-15 23:16:38+0000] kubectl --kubeconfig bmctl-workspace/gce-admin-gcloud-001/gce-admin-gcloud-001-kubeconfig get nodes
    [2024-04-15 23:16:38+0000] to get cluster nodes status.
    [2024-04-15 23:16:38+0000] Waiting for node pools to become ready OK
    [2024-04-15 23:16:58+0000] Waiting for metrics to become ready in GCP OK
    [2024-04-15 23:21:58+0000] Waiting for cluster API provider to install in the created admin cluster OK
    [2024-04-15 23:22:08+0000] Moving admin cluster resources to the created admin cluster
    [2024-04-15 23:22:10+0000] Waiting for node update jobs to finish OK
    [2024-04-15 23:24:30+0000] Flushing logs... OK
    [2024-04-15 23:24:30+0000] Unregistering bootstrap cluster.
    [2024-04-15 23:24:30+0000] Deleting membership... OK
    [2024-04-15 23:24:32+0000] Deleting bootstrap cluster.
    

Verifica el clúster de administrador

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

  1. Usa SSH para acceder a la estación de trabajo de administrador como raíz:

    gcloud compute ssh root@abm-ws --zone ZONE
    
  2. Verifica que se haya creado el clúster de administrador y que esté en ejecución:

    kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig get nodes
    

    El resultado es similar a este:

    NAME                   STATUS   ROLES                  AGE   VERSION
    abm-admin-cluster-cp   Ready    control-plane   94m   v1.27.4-gke.1600
    
  3. Cuando termines de explorar, ingresa exit para desconectarte de la estación de trabajo del administrador.

Terraform

Las siguientes instrucciones requieren dos ventanas de terminal. En una ventana de terminal, ejecuta bmctl register bootstrap para crear un clúster de arranque. Mientras se ejecuta el comando bmctl register bootstrap, ejecutas los comandos de Terraform en otra ventana de terminal para crear el clúster de administrador.

Modifica los archivos de muestra del clúster de usuario para que funcionen en un clúster de administrador

El repositorio de anthos-samples no incluye una muestra específica para crear un clúster de administrador de Google Distributed Cloud. En los siguientes pasos, se muestra cómo crear un clúster de administrador modificando una muestra de Terraform existente de clúster de usuario.

  1. En el directorio en el que clonaste anthos-samples, ejecuta el siguiente comando para copiar los archivos de muestra del clúster de usuario de MetalLB en una carpeta nueva para tu clúster de administración:

    cp -r anthos-samples/anthos-onprem-terraform/abm_user_cluster_metallb \
        anthos-samples/anthos-onprem-terraform/abm_admin_cluster_basic
    
  2. Cambia al directorio abm_admin_cluster_basic:

    cd anthos-samples/anthos-onprem-terraform/abm_admin_cluster_basic
    
  3. Edita los archivos de Terraform:

    • variables.tf:

      • Define una variable para las direcciones IP del nodo del plano de control (aunque solo usemos una para esta demostración). Esta variable debe ser similar a la entrada variable "control_plane_ips" { ... }.

      • Define una variable para la dirección VIP del plano de control. Esta variable debería ser similar a la entrada variable "control_plane_vip" { ... }.

    • terraform.tfvars:

      • Asigna valores de variables para la siguiente configuración del clúster de administrador:

        • Direcciones IP del nodo de plano de control: 10.200.0.3

        • Dirección VIP del plano de control: 10.200.0.48

    • main.tf:

      • Reemplaza el recurso google_gkeonprem_bare_metal_cluster por el recurso google_gkeonprem_bare_metal_admin_cluster.

      • Borra el recurso google_gkeonprem_bare_metal_node_pool y la sección lifecycle relacionada.

      • Actualiza el recurso para usar las variables recién definidas.

    Este es un ejemplo de cómo se vería el archivo main.tf cuando se edita para crear un clúster de administrador:

    /**
    * Copyright 2023 Google LLC
    *
    * Licensed under the Apache License, Version 2.0 (the "License");
    * you may not use this file except in compliance with the License.
    * You may obtain a copy of the License at
    *
    *      http://www.apache.org/licenses/LICENSE-2.0
    *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    * See the License for the specific language governing permissions and
    * limitations under the License.
    */
    
    #[START anthos_onprem_terraform_bare_metal_admin_cluster_basic_main]
    
    module "enable_google_apis_primary" {
      source     = "terraform-google-modules/project-factory/google//modules/project_services"
      version    = "~> 14.0"
      project_id = var.project_id
      activate_apis = [
        "anthos.googleapis.com",
        "anthosaudit.googleapis.com",
        "anthosgke.googleapis.com",
        "cloudresourcemanager.googleapis.com",
        "compute.googleapis.com",
        "connectgateway.googleapis.com",
        "container.googleapis.com",
        "file.googleapis.com",
        "gkehub.googleapis.com",
        "iam.googleapis.com",
        "kubernetesmetadata.googleapis.com",
        "logging.googleapis.com",
        "monitoring.googleapis.com",
        "opsconfigmonitoring.googleapis.com",
        "serviceusage.googleapis.com",
        "stackdriver.googleapis.com"
      ]
      disable_services_on_destroy = false
    }
    
    # Enable GKE OnPrem API
    resource "google_project_service" "default" {
      project            = var.project_id
      service            = "gkeonprem.googleapis.com"
      disable_on_destroy = false
    }
    
    # Create an anthos baremetal admin cluster and enroll it with the gkeonprem API
    resource "google_gkeonprem_bare_metal_admin_cluster" "admin-cluster-basic" {
      name                     = var.admin_cluster_name
      description              = "Anthos bare metal admin cluster"
      provider                 = google
      depends_on               = [google_project_service.default]
      location                 = var.region
      bare_metal_version       = var.bare_metal_version
      network_config {
        island_mode_cidr {
          service_address_cidr_blocks = ["0.96.0.0/20"]
          pod_address_cidr_blocks     = ["192.168.0.0/16"]
        }
      }
      node_config {
        max_pods_per_node = 250
      }
      control_plane {
        control_plane_node_pool_config {
          node_pool_config {
            operating_system = "LINUX"
            dynamic "node_configs" {
              for_each = var.admin_cp_ips
              content {
                node_ip = node_configs.value
              }
            }
          }
        }
      }
      load_balancer {
        port_config {
          control_plane_load_balancer_port = 443
        }
        vip_config {
          control_plane_vip = var.admin_cp_vip
        }
      }
      storage {
        lvp_share_config {
          lvp_config {
            path = "/mnt/localpv-share"
            storage_class = "local-shared"
          }
          shared_path_pv_count = 5
        }
        lvp_node_mounts_config {
          path = "/mnt/localpv-disk"
          storage_class = "local-disks"
        }
      }
    
      dynamic "security_config" {
        for_each = length(var.admin_user_emails) == 0 ? [] : [1]
        content {
          authorization {
            dynamic "admin_users" {
              for_each = var.admin_user_emails
              content {
                username = admin_users.value
              }
            }
          }
        }
      }
    
      lifecycle {
        ignore_changes = [
          annotations["onprem.cluster.gke.io/user-cluster-resource-link"],
          annotations["alpha.baremetal.cluster.gke.io/cluster-metrics-webhook"],
          annotations["baremetal.cluster.gke.io/operation"],
          annotations["baremetal.cluster.gke.io/operation-id"],
          annotations["baremetal.cluster.gke.io/start-time"],
          annotations["baremetal.cluster.gke.io/upgrade-from-version"]
        ]
      }
    }
    
    #[END anthos_onprem_terraform_bare_metal_admin_cluster_basic_main]
    

    Para obtener más información sobre el recurso de Terraform para clústeres de administrador, consulta google_gkeonprem_bare_metal_admin_cluster en el registro de Terraform.

Crea el clúster de arranque

Cuando usas un cliente de API de GKE On-Prem, como Terraform, para crear un clúster de administrador, debes crear un clúster de arranque en la estación de trabajo del administrador. El clúster de arranque aloja los controladores de Kubernetes necesarios para crear el clúster de administrador.

  1. Desde la línea de comandos, usa SSH para acceder a la VM de 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 mantener las VMs como entorno de pruebas, te recomendamos que actualices el SO o que cambies a la siguiente 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 para seleccionar tu Cuenta de Google para ADC.

  3. Cambia al directorio baremetal/ y ejecuta el siguiente comando para crear el clúster de arranque.

    Para obtener el nombre del clúster de arranque, se antepone bootstrap- al nombre del clúster de administrador.

    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:

  1. Inicializa y crea Terraform plan:

    terraform init
    

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

  2. Revisa la configuración y realiza cambios si es necesario:

    terraform plan
    
  3. Aplica el plan de Terraform para crear el clúster de administrador:

    terraform apply
    

    La creación del clúster de administrador toma 15 minutos o más. Cuando se complete la creación del clúster, verás un mensaje similar al siguiente:

    ...
    google_gkeonprem_bare_metal_admin_cluster.admin-cluster-basic: Still creating... [20m10s elapsed]
    google_gkeonprem_bare_metal_admin_cluster.admin-cluster-basic: Creation complete after 20m11s
    [id=projects/anonuser-anonproject/locations/us-central1/bareMetalAdminClusters/gce-admin-terra002]
    
    Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
    

    Cuando se crea el clúster de administrador, se borra el clúster de arranque en la estación de trabajo de administrador. El resultado del comando bmctl register bootstrap en la otra ventana de terminal es similar al siguiente:

    ...
    [2024-04-15 23:10:48+0000] Waiting for cluster to become ready OK
    [2024-04-15 23:16:38+0000] Please run
    [2024-04-15 23:16:38+0000] kubectl --kubeconfig bmctl-workspace/gce-admin-gcloud-001/gce-admin-gcloud-001-kubeconfig get nodes
    [2024-04-15 23:16:38+0000] to get cluster nodes status.
    [2024-04-15 23:16:38+0000] Waiting for node pools to become ready OK
    [2024-04-15 23:16:58+0000] Waiting for metrics to become ready in GCP OK
    [2024-04-15 23:21:58+0000] Waiting for cluster API provider to install in the created admin cluster OK
    [2024-04-15 23:22:08+0000] Moving admin cluster resources to the created admin cluster
    [2024-04-15 23:22:10+0000] Waiting for node update jobs to finish OK
    [2024-04-15 23:24:30+0000] Flushing logs... OK
    [2024-04-15 23:24:30+0000] Unregistering bootstrap cluster.
    [2024-04-15 23:24:30+0000] Deleting membership... OK
    [2024-04-15 23:24:32+0000] Deleting bootstrap cluster.
    

  4. En la consola, ve a la página Clústeres de GKE.

    Ir a los clústeres de GKE

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

  5. Accede al clúster de administrador:

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

    2. Selecciona Usa tu identidad de Google para acceder

    3. Haga clic en Acceder.

Verifica el clúster de administrador

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

  1. Usa SSH para acceder a la estación de trabajo de administrador como raíz:

    gcloud compute ssh root@abm-ws --zone ZONE
    
  2. Verifica que se haya creado el clúster de administrador y que esté en ejecución:

    kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig get nodes
    

    El resultado es similar a este:

    NAME                   STATUS   ROLES                  AGE   VERSION
    abm-admin-cluster-cp   Ready    control-plane   94m   v1.27.4-gke.1600
    
  3. Cuando termines de explorar, ingresa exit para desconectarte de la estación de trabajo del administrador.

4. Crea el clúster de usuario

Puedes usar la consola de Google Cloud, Google Cloud CLI o Terraform para crear el clúster de usuarios. Para simplificar, usa abm-user-cluster-metallb para el nombre del clúster del usuario, de modo que coincida con el nombre hard-coded en las secuencias de comandos de Terraform.

bmctl

  1. Usa SSH para acceder a la VM de la estación de trabajo de administrador, abm-ws, como raíz:

    gcloud compute ssh root@abm-ws --zone ZONE
    
  2. Genera un archivo de configuración del clúster:

    bmctl create config -c abm-user-cluster-metallb \
        --project-id=PROJECT_ID
  3. En el siguiente archivo de configuración del clúster de usuario, configura tu dirección de correo electrónico en la sección clusterSecurity y verifica el resto de la configuración:

    En el siguiente archivo de configuración del clúster, se completan los valores que ingresaste en la tabla de planificación antes. Además de los valores que ingresaste, ten en cuenta las siguientes diferencias con el archivo de configuración generado:

    • Se quitaron los comentarios de este ejemplo para mejorar la legibilidad.
    • Se quitó la sección Credenciales, como es habitual en los clústeres de usuarios.
    • El tipo de clúster, spec.type, se estableció en user.
    • Se agregó el campo spec.clusterSecurity.authorization.clusterAdmin.gcpAccounts para otorgar el clusterrole/cluster-admin a tu cuenta. Entre otros aspectos, este campo te permite acceder a tu clúster en la consola de Google Cloud para ver más detalles del clúster.
    ---
    apiVersion: v1
    kind: Namespace
    metadata:
      name: cluster-abm-user-cluster-metallb
    ---
    apiVersion: baremetal.cluster.gke.io/v1
    kind: Cluster
    metadata:
      name: abm-user-cluster-metallb
      namespace: cluster-abm-user-cluster-metallb
    spec:
      type: user
      profile: default
      anthosBareMetalVersion: BMCTL_VERSION
      gkeConnect:
        projectID: PROJECT_ID
      controlPlane:
        nodePoolSpec:
          nodes:
          - address: 10.200.0.4
      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.50
          ingressVIP: 10.200.0.51
        addressPools:
        - name: pool1
          addresses:
          - 10.200.0.51-10.200.0.70
      clusterOperations:
        projectID: PROJECT_ID
        location: us-central1
      clusterSecurity:
        authorization:
          clusterAdmin:
            gcpAccounts:
            - YOUR_EMAIL_ADDRESS
      storage:
        lvpNodeMounts:
          path: /mnt/localpv-disk
          storageClassName: local-disks
        lvpShare:
          path: /mnt/localpv-share
          storageClassName: local-shared
          numPVUnderSharedPath: 5
      nodeConfig:
        podDensity:
          maxPodsPerNode: 250
    ---
    apiVersion: baremetal.cluster.gke.io/v1
    kind: NodePool
    metadata:
      name: node-pool-1
      namespace: cluster-abm-user-cluster-metallb
    spec:
      clusterName: abm-user-cluster-metallb
      nodes:
      - address: 10.200.0.5
    
  4. Reemplaza el contenido del archivo de configuración generado en tu estación de trabajo de administrador por el contenido del ejemplo anterior.

    Abre el archivo generado, bmctl-workspace/abm-user-cluster-metallb/abm-user-cluster-metallb.yaml, y reemplaza su contenido por el del ejemplo que verificaste en el paso anterior.

  5. Crea el clúster de usuario:

    bmctl create cluster -c abm-user-cluster-metallb \
      --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig

    El comando bmctl muestra el resultado en la pantalla a medida que ejecuta las verificaciones previas y crea el clúster. La información detallada se escribe en los registros de la carpeta baremetal/bmctl-workspace/abm-user-cluster-metallb/log en la estación de trabajo de administrador.

    La creación del clúster puede tomar varios minutos en completarse.

  6. En la consola de Google Cloud, ve a la página de clústeres de GKE.

    Ir a los clústeres de GKE

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

  7. Accede al clúster de usuarios:

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

    2. Selecciona Usa tu identidad de Google para acceder

    3. Haga clic en Acceder.

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

Console

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

  1. En la consola, ve a la página Crea un clúster de Bare Metal.

    Ir a Crea un clúster de Bare Metal

  2. Asegúrate de que esté seleccionado el proyecto de Google Cloud en el que creaste el clúster de administrador.

  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 Configurar. Se mostrará la página Requisitos previos.

  6. En Elige el tipo de clúster, selecciona Crear un clúster de usuario para un clúster de administrador existente.

  7. Haz clic en Siguiente.

Aspectos básicos del clúster

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

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

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

Herramientas de redes

La secuencia de comandos que ejecutaste para crear VMs y el clúster de administración también creó una VXLAN de capa 2 con direcciones IP en la subred 10.200.0.0/24.

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

    10.200.0.4
    

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

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

  3. En la sección New address pool, ingresa el siguiente rango de direcciones IP en el campo IP address range 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 el VIP de entrada:

    10.200.0.51
    
  7. Usa las direcciones IP predeterminadas en la sección CIDR de servicios y Pods.

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

Crea un grupo de nodos

Tu clúster de usuarios debe tener, al menos, un grupo de nodos para los nodos trabajadores.

  1. Ingresa la siguiente dirección IP en el campo Nodes address 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.

Crea el clúster

  1. Haz clic en Verify and Create para crear el clúster de usuario.

    La creación del clúster de usuario toma 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 mostrará un mensaje de error que debe ser lo suficientemente claro como para solucionar el problema de configuración y volver a crear el clúster.

    Para ver información adicional sobre el proceso de creación, haz clic en Mostrar detalles para que se muestre un panel lateral. Haz clic en para cerrar el panel de detalles.

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

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

  3. Accede al clúster de usuarios:

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

    2. Selecciona Usa tu identidad de Google para acceder

    3. Haga clic en Acceder.

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

gcloud CLI

Para crear el clúster de usuario, sigue estos pasos:

  1. Ejecuta el siguiente comando para crear el clúster de usuarios:

    gcloud container bare-metal clusters create abm-user-cluster-metallb \
        --project=PROJECT_ID \
        --admin-cluster-membership=projects/PROJECT_ID/locations/ON_PREM_API_REGION/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
    

    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 cadena operation-1678304606537-5f668bde5c57e-341effde-b612ff8a es el OPERATION_ID de la operación de larga duración.

  2. Para averiguar el estado de la operación, abre otra ventana de terminal y ejecuta el comando.

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

    Reemplaza OPERATION_ID por la cadena correspondiente del resultado del paso anterior.

    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 crea el clúster, verás un resultado similar al siguiente:

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

    Para obtener más información sobre el comando gcloud container bare-metal clusters create, incluidas las descripciones de cada marca, consulta la página container bare-metal clusters create del recurso de clústeres en la referencia de la gcloud CLI.

Crea un grupo de nodos

Después de crear el clúster de forma correcta, puedes crear un grupo de nodos para él.

Para crear un grupo de nodos, haz lo siguiente:

  1. Ejecuta el siguiente comando para crear un grupo de nodos:

    gcloud container bare-metal node-pools create NODE_POOL_NAME \
        --cluster=abm-user-cluster-metallb \
        --project=PROJECT_ID \
        --location=ON_PREM_API_REGION \
        --node-configs='node-ip=10.200.0.5'
    

    Reemplaza NODE_POOL_NAME por un nombre para el grupo de nodos.

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

    La creación del grupo de nodos tarda alrededor de 5 minutos o menos. Cuando se crea 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/abm-user-cluster-metallb/bareMetalNodePools/NODE_POOL_NAME].
    
  2. Ve a la página Crear un clúster de bare metal en la consola:

    Ir a la página Crear un clúster de Bare Metal

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

  3. Accede al clúster de usuarios:

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

    2. Selecciona Usa tu identidad de Google para acceder

    3. Haga clic en Acceder.

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

Terraform

Puedes usar el siguiente ejemplo de configuración básica para crear un clúster de usuario con el balanceador de cargas MetalLB incluido. 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, ve al directorio en el que se encuentra la muestra de Terraform:

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

    La muestra proporciona un archivo de variables de ejemplo para pasar a main.tf.

  2. Crea una copia del archivo terraform.tfvars.sample.

    cp terraform.tfvars.sample terraform.tfvars
    
  3. Verifica los valores en la siguiente muestra:

    El siguiente archivo de variables de Terraform, terraform.tfvars.sample, está prellenado con direcciones IP y con los valores que ingresaste en las secciones anteriores de esta guía.

    
    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"] }
    ]
    

    Reemplaza ADMIN_2_EMAIL_ADDRESS por una dirección de correo electrónico asociada con tu cuenta de Google Cloud o quítala cuando edites el archivo de variables.

    Para obtener más información sobre los argumentos de esta muestra para los que configuras variables, consulta la Referencia de argumentos en la documentación de Terraform para los clústeres de usuarios de Google Distributed Cloud.

  4. Reemplaza el contenido de tu copia del archivo de variables por el contenido del ejemplo anterior.

  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 cambios si es necesario:

    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 toma 15 minutos o más. Puedes ver el clúster en la consola de Google Cloud, en la página Clústeres de GKE.

  8. En la consola de Google Cloud, ve a la página de clústeres de GKE.

    Ir a los clústeres de GKE

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

  9. Accede al clúster de usuarios:

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

    2. Selecciona Usa tu identidad de Google para acceder

    3. Haga clic en Acceder.

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

5. Realiza una limpieza

Usa las siguientes instrucciones para quitar los clústeres y las VMs que creaste con esta guía.

Borra el clúster de usuarios

bmctl

  • Para borrar el clúster de usuarios con bmctl, ejecuta el siguiente comando desde la VM de la estación de trabajo de administrador, abm-ws:

    bmctl reset \
        --cluster abm-user-cluster-metallb \
        --admin-kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig
    

Console

  1. En la consola, ve a la página Clústeres de GKE.

    Ir a los clústeres de GKE

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

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

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

  5. Cuando se te solicite confirmación, ingresa el nombre del clúster y haz clic en Borrar.

  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.

gcloud CLI

  • Para borrar el clúster, ejecuta el siguiente comando:

    gcloud container bare-metal clusters delete abm-user-cluster-metallb \
        --project=PROJECT_ID \
        --location=ON_PREM_API_REGION \
        --force
    

    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.

Para obtener información sobre otras marcas, consulta gcloud container bare-metal clusters delete.

Terraform

El comando terraform destroy finaliza los recursos que se crearon cuando ejecutaste terraform apply para crear el clúster de usuarios.

  • Ejecuta el siguiente comando desde el directorio en el que se encuentran los archivos de muestra del clúster de usuarios de Terraform, como main.tf:

    terraform destroy
    

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

Borra el clúster de administrador y las VMs

  1. Da de baja la inscripción del clúster de administrador desde la API de GKE On-Prem:

    gcloud 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 de la flota y, luego, lo borra. Espera a que se borre el clúster antes de borrar las VMs.

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

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

    gcloud compute instances list | grep 'abm'
    
  6. Verifica que sea seguro borrar todas las VM que contienen 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 compute instances delete --quiet --zone ZONE
    
  7. Ejecuta el siguiente comando para borrar la cuenta de servicio y, cuando se te solicite, ingresa y:

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

    ¿Qué sigue?