Crea clústeres de administrador y de usuario de Google Distributed Cloud Virtual para Bare Metal en las VMs de Compute Engine

En esta página, se muestra cómo crear un clúster de usuario de Google Distributed Cloud Virtual for Bare Metal y un clúster de administrador en las máquinas virtuales (VMs) 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 las herramientas de la interfaz de línea de comandos (CLI) y archivos de configuración para aprovisionar clústeres durante la instalación, y las herramientas de la CLI para interactuar con los clústeres aprovisionados después de la instalación. Con la secuencia de comandos, se instalan 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 de 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 con la creación, las actualizaciones y la eliminación de clústeres de usuario. Un clúster de administrador consta solo de nodos del plano de control. Para obtener más información, consulta Implementación del clúster de administrador y de usuario.

La secuencia de comandos configura una red de superposición 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 tú mismo a fin de obtener información sobre las herramientas que GKE on Bare Metal proporciona para crear clústeres de administrador.

Con la secuencia de comandos proporcionada, puedes probar GKE en Bare Metal con rapidez y sin tener que preparar ningún hardware. Completar los pasos de esta página te proporciona un entorno de prueba de GKE en Bare Metal que se ejecuta en Compute Engine.

¿Qué es la API de Anthos local?

La API de Anthos On-Prem es una API alojada en Google Cloud que te permite administrar el ciclo de vida de tus clústeres locales mediante Terraform y 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 tus clústeres, la API de Anthos On-Prem debe almacenar metadatos sobre el estado de tu clúster en Google Cloud mediante la región de Google Cloud que especificas cuando creas el clúster. Estos metadatos permiten que la API administre el ciclo de vida del clúster y no incluyen datos específicos de la carga de trabajo.

Cuando creas un clúster con un cliente de la API de Anthos On-Prem, debes especificar 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 el proyecto host de la flota. El proyecto host de la flota no se puede cambiar después de crear 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. Toma nota del ID del proyecto porque lo necesitas para establecer una variable de entorno que se usa 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 con 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. Si es necesario, actualiza los componentes de gcloud CLI:
      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 para esta instalación. Puedes ejecutar el siguiente comando para lograr el mismo resultado en esta instalación:" Sigue las instrucciones para copiar y pegar el comando y actualizar los componentes.

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

Crea la infraestructura de VM y, opcionalmente, el clúster de administrador

Sigue estos pasos para configurar y ejecutar la secuencia de comandos. La secuencia de comandos que descargas y ejecutas proviene del repositorio anthos-samples. Si deseas 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 sus 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 otras zonas de Compute Engine.

  2. 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, 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. Obtén una lista de las versiones 1.14 que puedes instalar:

    gcloud container bare-metal admin-clusters query-version-config \
          --location=ON_PREM_API_REGION | grep 1.14
    
  4. Selecciona una versión del resultado del comando anterior y configúrala en una variable de entorno:

    export BMCTL_VERSION=BMCTL_VERSION
    
  5. Clona el repositorio 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
    
  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, instale el clúster de administrador.
    • Ingresa 2 para que la secuencia de comandos configure solo la infraestructura de VM.
  8. Cuando se te solicite, confirma tu selección.

La secuencia de comandos genera cada comando que ejecuta y el estado. Cuando finaliza, la secuencia de comandos muestra lo siguiente en función de 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         |
|---------------------------------------------------------------------------------------------------------|

Solo configura 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 VMs:
    • 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 a través de 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 la conexión SSH esté habilitada en todas las VMs.
  4. Crea una red de superposición 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 destruirá la red. La red está configurada para estar 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 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 funcione mediante 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 demás VMs en 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 elegiste 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 usuario raíz. A continuación, la secuencia de comandos ejecutará la herramienta de línea de comandos de bmctl para crear el clúster de administrador. Esta es una de las herramientas que puedes usar para crear clústeres de administrador.

    Cuando GKE en Bare Metal crea clústeres, implementa un clúster de Kubernetes en Docker (kind) 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 con el fin de crear el clúster de administrador. Después de la creación, 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 que Docker extraiga imágenes de contenedor.

Crea el clúster de administrador (opcional)

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 de 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 (kind) 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 de clústeres de GKE Enterprise.

    Ir a la página Clústeres de GKE Enterprise

  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 Configurar. En la página Requisitos previos, 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 la opción Crear un clúster de administrador esté seleccionada.

  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 anexas bootstrap- al nombre del clúster de administrador.

  8. Selecciona VERSION como la versión del 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 GKE en Bare Metal que instales debe 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 local 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 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 arranque. Deja la página de la consola que se muestra, ya que regresarás allí para crear el clúster de administrador.

gcloud CLI

Abre una nueva ventana de terminal. Usarás la segunda ventana de la terminal para conectarte a la estación de trabajo de administrador a fin de 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

Sigue estos 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 pruebas, es posible que quieras actualizar el SO o actualizar a la siguiente versión, como se describe en la documentación de Ubuntu.

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

    gcloud auth application-default login
    

    Sigue las instrucciones a fin de seleccionar tu Cuenta de Google para el 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 entorno de arranque en la sección Entorno de arranque desde la estación de trabajo de administrador, haz clic en Verificar conexión.

    Si la operación se completa de forma correcta, en la consola se mostrará Conexión establecida.

    Se debe establecer la conexión con el clúster de arranque antes de continuar. Si no se estableció 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 del 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 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 Agrupado.

  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.

gcloud CLI

  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 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, ocurre lo siguiente:

    • --control-plane-vip: Se establece 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: 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 la 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
    

Los detalles sobre el 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 comprobaciones preliminares para comprobar la configuración. Si se aprueban las comprobaciones preliminares, 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 de 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 pruebas, es posible que quieras actualizar el SO o actualizar a la siguiente 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 los comandos de 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 al siguiente:

    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 realiza las siguientes acciones:

    • 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 mediante tu identidad de Google.

    Reemplaza YOUR_EMAIL_ADDRESS por la dirección de correo electrónico asociada a 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 facilitar la lectura:

    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 al siguiente:

    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 kubectl a través de la puerta de enlace de conexión:

    kubectl get nodes
    

    El resultado es similar al siguiente:

    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 On-Prem:

    gcloud 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 VXLAN L2 para las VM, asignó las siguientes direcciones IP en la red 10.200.0.0/24. Usas estas direcciones IP cuando configures la red y el grupo de nodos para el clúster de usuario.

Nombre de VM IP de red Descripción del nodo
abm-admin-cluster-cp1 10.200.0.3 Nodo del plano de control para el clúster de administrador
abm-user-cluster-cp1 10.200.0.4 Nodo del plano de control para el clúster de usuario
abm-user-cluster-w1 10.200.0.5 Nodo trabajador del clúster de usuario
abm-user-cluster-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 GKE Enterprise.

    Ir a la página Clústeres de GKE Enterprise

  2. Asegúrate de que el proyecto de Google Cloud en el que creaste el clúster de administrador esté seleccionado. Deberías 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 Configurar. Aparecerá la página Requisitos previos.

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

  7. Haz clic en Siguiente.

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 el clúster de administrador recién creado esté seleccionado. Puedes utilizar 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

  1. En la sección Plano de control, ingresa lo siguiente en el campo IP de 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 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 de Ingress:

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

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

Crear un grupo de nodos

El 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 mientras 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 debería ser lo suficientemente claro como para que lo soluciones y intentes crear el clúster de nuevo.

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

    Cuando se crea el clúster, se muestra Cluster status: running.

    Clúster de capturas de pantalla listo

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

gcloud CLI

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

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

    El resto de los valores de las marcas se completaron automáticamente. Desplázate si es necesario para verificar que la marca --admin-cluster-membership tenga el valor correcto para el nombre del clúster de administrador, que es el último segmento en el nombre de membresía especificado por completo.

    gcloud 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: El ID del proyecto en el que se registrará el clúster de usuario. Este proyecto se conoce como el proyecto host de la flota.

  • --admin-cluster-membership: El nombre del clúster de administrador especificado por completo que identifica el clúster de administrador en la flota.

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

  • --version: Es la versión de GKE en Bare Metal.

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

  • --metal-lb-address-pools: Es la configuración del grupo de direcciones para el balanceador de cargas agrupado de MetalLB. 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 la VIP del plano de control. Sin embargo, ten en cuenta que la VIP de entrada 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: Es la IP virtual del plano de control. El valor 10.200.0.50 está 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 usó 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. Si bien puedes configurar otro valor, el puerto 443 es el estándar que se usa para las conexiones HTTPS.

  • --ingress-vip: Es la IP virtual para el 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 servicios 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 la máquina anfitrión en la que se pueden crear los subdirectorios. Se crea un PersistentVolume (PV) local 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 la máquina anfitrión en la que se pueden detectar los discos activados. Se crea un PersistentVolume (PV) local 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 la OPERATION_ID de la operación de larga duración.

Para averiguar el estado de la operación, copia el OPERATION_ID de tu resultado en el siguiente comando. 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

La creación del clúster tarda alrededor de 15 minutos o más. Mientras 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

Una vez que el clúster se haya creado correctamente, 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 todavía esté configurado en el nombre del clúster de usuario.

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

La creación del grupo de nodos tarda 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, hay otros comandos de gcloud CLI que puedes ejecutar, por ejemplo:

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

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

Otros comandos del grupo de nodos

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

  • Para enumerar los grupos de nodos, sigue estos pasos:
gcloud container bare-metal node-pools list \
    --cluster=USER_CLUSTER_NAME \
    --project=PROJECT_ID \
    --location=ON_PREM_API_REGION
  • Para describir un grupo de nodos, sigue estos pasos:
gcloud 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 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 en paquete. 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
    

    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
    
    
    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: El ID del proyecto en el que se registrará el clúster de usuario. Este proyecto se conoce como el proyecto host de la flota.

    • region: Es la región de Google Cloud que estableciste 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: Es la versión de GKE en Bare Metal para el clúster de usuario. Para 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 anterior a la versión del clúster de administrador. La versión del clúster de usuario no puede ser superior a la versión del clúster de administrador.

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

    • admin_user_emails: Es una lista de direcciones de correo electrónico de los usuarios a los que se les otorgarán privilegios de administrador 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 todos los recursos del 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: Es 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: Es una lista de una o más direcciones IPv4 para las máquinas de nodos trabajadores. 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: Es 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 se encuentra en el rango de direcciones IP que se usa para los grupos de direcciones del balanceador de cargas de MetalLB.

    • lb_address_pools: Es una lista de mapas en la que se 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 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 tarda 15 minutos o más. Puedes ver el clúster en Google Cloud Console 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 con tu identidad de Google Cloud, que es la dirección de correo electrónico asociada con 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 GKE Enterprise en la consola:

Ir a la página Clústeres de GKE Enterprise

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

Observa que el clúster de usuario tiene Anthos (Bare metal: Usuario) en la columna Type. 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 local no administra el clúster.

Lista de clústeres de capturas de pantalla

Aunque la secuencia de comandos creó el clúster de administrador mediante bmctl, puedes configurarlo 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 Acceder.

  2. Selecciona Usa tu identidad de Google para acceder

  3. Haz clic en Login.

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

Lista de clústeres de capturas de pantalla

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 mediante el kubeconfig de la puerta de enlace de Connect.

En 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 al siguiente:

    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 al siguiente:

    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 de clústeres de GKE Enterprise.

    Ir a la página Clústeres de GKE Enterprise

  2. En la lista de clústeres, haz clic en su nombre y luego haz clic 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 Dirección de 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. Haz clic en Create.

  8. Vuelve a hacer clic en la pestaña Nodos si es necesario.

  9. El nuevo grupo de nodos muestra el estado En conciliación.

  10. Haz clic en en la esquina superior derecha para ver el estado de la 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.

gcloud CLI

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 todavía esté configurado con el nombre del clúster de usuario.

gcloud 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 abrm-user-cluster-w2 en la VXLAN que creó la secuencia de comandos.

Terraform

Si creaste el clúster mediante Terraform, este se creó con dos nodos, por lo que no hay VM adicionales en VXLAN disponibles 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 con 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 al siguiente:

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

    Ir a la página Clústeres de GKE Enterprise

  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 te solicite confirmar, ingresa el nombre del clúster y haz 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.

gcloud CLI

Ejecuta el siguiente comando para borrar el clúster:

gcloud 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 tenga 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 gcloud 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. Para dar de baja el clúster de administrador en la API de Anthos On-Prem, sigue estos pasos:

    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, borra el clúster. Espera 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 de acuerdo con borrar 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?