Crea clústeres de demostración en máquinas virtuales (VM) de Compute Engine para obtener información sobre Google Distributed Cloud (solo software) para equipos físicos (antes conocido como Google Distributed Cloud Virtual y, anteriormente, como clústeres de Anthos en equipos físicos). Crear un clúster de administrador y un clúster de usuario con esta guía puede tardar 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 te guía por el proceso de 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 de 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
, Google Cloud consola, Google Cloud CLI o Terraform.
Descripción general del procedimiento
En esta guía, se incluyen los siguientes pasos principales:
Prepara tu entorno local para que la secuencia de comandos tenga las variables de entorno necesarias y hayas recopilado la información básica para ejecutar comandos.
Crea las VMs y la red con la secuencia de comandos descargada.
Crea el clúster de administrador con uno de los clientes compatibles.
Crea el clúster de usuario con uno de los clientes admitidos.
Realiza una limpieza para quitar los clústeres y las VMs que creaste con esta guía.
1. Prepara el entorno local
Como 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:
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Toma nota del ID del proyecto, ya que lo necesitarás 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.
-
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:
- 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.
- Asegúrate de tener instalado
kubectl
. Si necesitas instalarkubectl
, ejecuta el siguiente comando:gcloud components install kubectl
- 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:
- Asegúrate de que tu proyecto tenga una red de VPC llamada "default".
Si no tienes una red de VPC "predeterminada", la secuencia de comandos de la siguiente sección no podrá aprovisionar los recursos necesarios. A menos que decidas borrarla o restringirla, cada proyecto nuevo comienza con una red de VPC en modo automático llamada "predeterminada" que debería funcionar con la secuencia de comandos. Para obtener más información, consulta Redes de VPC.
- Asegúrate de que no se apliquen las siguientes restricciones de políticas de la organización:
constraints/iam.disableServiceAccountKeyCreation
constraints/compute.vmCanIpForward
constraints/compute.requireShieldedVm
constraints/compute.vmExternalIpAccess
Si se aplican estas restricciones, la secuencia de comandos de la siguiente sección no podrá aprovisionar los recursos necesarios. En el caso de un proyecto nuevo, estas restricciones se establecen como Inactivas (no aplicadas) de forma predeterminada. Para obtener más información, consulta Restricciones de las políticas de la organización.
- 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 administradorON_PREM_API_REGION
: La región Google Cloud en la que se ejecuta la API de GKE On-Prem y se almacenan sus metadatos. Especificaus-central1
o alguna otra región compatible.ZONE
: Es la Google Cloud zona en la que se crean las VMs de Compute Engine. Puedes usarus-central1-a
o cualquiera de las otras zonas de Compute Engine.
- 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, ejecutagcloud auth login
para acceder a la gcloud CLI con la cuenta que tiene acceso al proyecto. - 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
- 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 alta para obtener las funciones y correcciones más recientes de Google Distributed Cloud.
Clona el repositorio de
anthos-samples
y cambia al directorio en el que se encuentra el script:git clone https://github.com/GoogleCloudPlatform/anthos-samples cd anthos-samples/anthos-bm-gcp-bash
Ejecuta la secuencia de comandos:
bash install_admin_cluster.sh
En el símbolo del sistema, 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 de administrador y los nodos del clúster. La configuración de esta infraestructura tarda alrededor de 5 minutos.
Para obtener más información sobre la secuencia de comandos, haz clic en el siguiente vínculo:
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:-
Habilita las siguientes Google Cloud APIs:
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
-
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
-
Se crean 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
- Verifica que SSH esté habilitado en todas las VMs y que la estación de trabajo de administrador tenga acceso SSH a todas las demás VMs que se crearon para los nodos del clúster.
-
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, la red se destruye. 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 incluido. -
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 del administrador. -
Garantiza que
root@10.200.0.x
desde la estación de trabajo de administrador funcione realizando las siguientes tareas:- Generar una clave SSH nueva en la estación de trabajo de administrador.
- Agregar la clave pública a todas las otras VM de la implementación.
La secuencia de comandos genera cada comando que ejecuta y su estado. Cuando finalice, la secuencia de comandos mostrará 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 | |---------------------------------------------------------------------------------------------------------|
-
Habilita las siguientes Google Cloud APIs:
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
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.
Genera un archivo de configuración del clúster:
bmctl create config -c ADMIN_CLUSTER_NAME --project-id=PROJECT_ID
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 anteriormente. 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: ON_PREM_API_REGION storage: lvpNodeMounts: path: /mnt/localpv-disk storageClassName: local-disks lvpShare: path: /mnt/localpv-share storageClassName: local-shared numPVUnderSharedPath: 5 nodeConfig: podDensity: maxPodsPerNode: 110
Reemplaza el contenido del archivo de configuración generado en tu estación de trabajo de administrador por el contenido de la muestra 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.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 carpetabaremetal/bmctl-workspace/abm-user-cluster-metallb/log
de la estación de trabajo de administrador.La creación del clúster puede tomar varios minutos en completarse.
En la consola, ve a la página 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.
Accede al clúster de administrador:
Haz clic en el vínculo del nombre del clúster y, en el panel lateral, haz clic en Acceder.
Selecciona Usa tu identidad de Google para acceder
Haga clic en Acceder.
Usa SSH para acceder a la estación de trabajo de administrador como raíz:
gcloud compute ssh root@abm-ws --zone ZONE
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:
none{:.devsite-disable-click-to-copy} NAME STATUS ROLES AGE VERSION abm-admin-cluster-cp Ready control-plane 94m 1.31.300-gke.81
Cuando termines de explorar, ingresa
exit
para desconectarte de la estación de trabajo del administrador.En la consola de Google Cloud , ve a la página Clústeres de GKE.
Haz clic en Crear.
En el diálogo Create a cluster, selecciona Local y haz clic en Configure para Bare Metal:
Asegúrate de seleccionar
PROJECT_ID
en la lista de proyectos.En la barra de navegación izquierda, haz clic en Install bootstrap environment.
Ingresa
ADMIN_CLUSTER_NAME
como el nombre del clúster de administrador.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 debmctl
en la estación de trabajo de administrador. La versión de Google Distributed Cloud que instales debe coincidir con la versión debmctl
.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.
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 los mensajes 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.
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.
Cambia al directorio
baremetal/
y ejecuta el siguiente comando para crear el clúster de arranque.El nombre del clúster de arranque se obtiene anteponiendo
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..
En la página Instalar el entorno de arranque, en la sección Inicia el entorno desde la estación de trabajo de administrador, haz clic en Revisar conexión.
Si se realiza de forma correcta, la consola mostrará
Se estableció la conexión.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 Aspectos básicos del entorno de arranque.Asegúrate de que el valor de
--project-id
coincida con el ID del proyecto que seleccionaste en la consola.
Si necesitas cambiar el nombre del clúster de inicialización o el ID del proyecto, ingresa
Ctrl-C
para salir debmctl register bootstrap
y vuelve a ejecutar el comando.Haz clic en Networking en la barra de navegación izquierda.
En la sección Plano de control, ingresa lo siguiente en el campo IP del nodo del plano de control 1:
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.
En la sección Balanceador de cargas, asegúrate de que esté seleccionada la opción Paquetes.
En la sección IP 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, ingresaCtrl-C
en la otra ventana de terminal para salir debmctl register bootstrap
y volver a ejecutar el comando.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.
Usa SSH para acceder a la estación de trabajo de administrador como raíz:
gcloud compute ssh root@abm-ws --zone ZONE
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:
none{:.devsite-disable-click-to-copy} NAME STATUS ROLES AGE VERSION abm-admin-cluster-cp Ready control-plane 94m 1.31.300-gke.81
Cuando termines de explorar, ingresa
exit
para desconectarte de la estación de trabajo del administrador.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 los mensajes 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.
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.
Cambia al directorio
baremetal/
y ejecuta el siguiente comando para crear el clúster de arranque.El nombre del clúster de arranque se obtiene anteponiendo
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..
En una ventana de terminal nueva, confirma que el clúster de inicio 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
del siguiente paso depende de la disponibilidad del clúster de arranque. El comandobmctl 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 en la lista, 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, ingresaCtrl-C
en la otra ventana de terminal para salir debmctl register bootstrap
y volver a ejecutar el comando.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 anteriormente 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 como10.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
: Elnode-ip
se configura como10.200.0.3
Esta es la dirección IP de la VMabm-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 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 elOPERATION_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 correctamente, el resultado es similar al siguiente:none{:.devsite-disable-click-to-copy} 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.31.300-gke.81 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.
Usa SSH para acceder a la estación de trabajo de administrador como raíz:
gcloud compute ssh root@abm-ws --zone ZONE
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:
none{:.devsite-disable-click-to-copy} NAME STATUS ROLES AGE VERSION abm-admin-cluster-cp Ready control-plane 94m 1.31.300-gke.81
Cuando termines de explorar, ingresa
exit
para desconectarte de la estación de trabajo del administrador.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 administrador:cp -r anthos-samples/anthos-onprem-terraform/abm_user_cluster_metallb \ anthos-samples/anthos-onprem-terraform/abm_admin_cluster_basic
Cambia al directorio
abm_admin_cluster_basic
:cd anthos-samples/anthos-onprem-terraform/abm_admin_cluster_basic
Edita los archivos de Terraform:
variables.tf
:Define una variable para las direcciones IP del nodo del plano de control (aunque solo usamos una para esta demostración). Esta variable debería ser similar a la entrada
variable "control_plane_ips" { ... }
.Define una variable para la dirección VIP del plano de control. Esta variable debe ser similar a la entrada
variable "control_plane_vip" { ... }
.
terraform.tfvars
:Asigna valores de variables para los siguientes parámetros de 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 recursogoogle_gkeonprem_bare_metal_admin_cluster
.Borra el recurso
google_gkeonprem_bare_metal_node_pool
y la secciónlifecycle
relacionada.Actualiza el recurso para que use las variables definidas recientemente.
A continuación, se muestra un ejemplo de cómo podría verse 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 a 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 = "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 los clústeres de administrador, consulta google_gkeonprem_bare_metal_admin_cluster en el registro de Terraform.
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 los mensajes 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.
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.
Cambia al directorio
baremetal/
y ejecuta el siguiente comando para crear el clúster de arranque.El nombre del clúster de arranque se obtiene anteponiendo
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..
Inicializa y crea terraform plan:
terraform init
Terraform instala las bibliotecas necesarias, como el proveedor de Google Cloud .
Revisa la configuración y realiza cambios si es necesario:
terraform plan
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 como el 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.
En la consola, ve a la página 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.
Accede al clúster de administrador:
Haz clic en el vínculo del nombre del clúster y, en el panel lateral, haz clic en Acceder.
Selecciona Usa tu identidad de Google para acceder
Haga clic en Acceder.
Usa SSH para acceder a la estación de trabajo de administrador como raíz:
gcloud compute ssh root@abm-ws --zone ZONE
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:
none{:.devsite-disable-click-to-copy} NAME STATUS ROLES AGE VERSION abm-admin-cluster-cp Ready control-plane 94m 1.31.300-gke.81
Cuando termines de explorar, ingresa
exit
para desconectarte de la estación de trabajo del administrador.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
Genera un archivo de configuración del clúster:
bmctl create config -c abm-user-cluster-metallb \ --project-id=PROJECT_ID
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 los parámetros de configuración:El siguiente archivo de configuración del clúster se completa con los valores que ingresaste en la tabla de planificación anterior. 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 Credentials, como es normal para los clústeres de usuario.
- El tipo de clúster,
spec.type
, se estableció enuser
. - Se agregó el campo
spec.clusterSecurity.authorization.clusterAdmin.gcpAccounts
para otorgar elclusterrole/cluster-admin
a tu cuenta. Entre otras cosas, este campo te permite acceder a tu clúster en la consola deGoogle 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: ON_PREM_API_REGION 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
Reemplaza el contenido del archivo de configuración generado en tu estación de trabajo de administrador por el contenido de la muestra 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.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 carpetabaremetal/bmctl-workspace/abm-user-cluster-metallb/log
de la estación de trabajo de administrador.La creación del clúster puede tomar varios minutos en completarse.
En la consola de Google Cloud , ve a la página 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.
Accede al clúster de usuarios:
Haz clic en el vínculo del nombre del clúster y, en el panel lateral, haz clic en Acceder.
Selecciona Usa tu identidad de Google para acceder
Haga clic en Acceder.
Repite los mismos pasos para acceder al clúster de administrador.
En la consola, ve a la página Crea un clúster de Metal desnudo.
Asegúrate de que esté seleccionado el proyecto de Google Cloud en el que creaste el clúster de administrador.
Haz clic en Crear clúster.
En el cuadro de diálogo, haz clic en Local.
Junto a Bare metal, haz clic en Configurar. Se mostrará la página Requisitos previos.
En Choose your cluster type, selecciona Create a user cluster for an existing admin cluster.
Haz clic en Siguiente.
Ingresa un nombre para el clúster de usuarios o usa el predeterminado.
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 de esta página.
Haz clic en Networking en la barra de navegación izquierda.
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 creada por la secuencia de comandos.En la sección Balanceador de cargas, usa el balanceador de cargas predeterminado, Bundled with MetalLB.
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
Haz clic en Listo.
En la sección IP virtuales, ingresa la siguiente dirección IP en el campo VIP del plano de control:
10.200.0.50
Ingresa la siguiente dirección IP para la VIP de Ingress:
10.200.0.51
Usa las direcciones IP predeterminadas en la sección CIDR de servicios y Pods.
Haz clic en default-pool en la barra de navegación de la izquierda.
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 creada por la secuencia de comandos.
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 mostrar un panel lateral. Haz clic en
para cerrar el panel de detalles.Cuando se cree el clúster, se mostrará el mensaje Estado del clúster: En ejecución.
Después de crear el clúster, haz clic en
Clústeres para volver a la página Clústeres.Accede al clúster de usuarios:
Haz clic en el vínculo del nombre del clúster y, en el panel lateral, haz clic en Acceder.
Selecciona Usa tu identidad de Google para acceder
Haga clic en Acceder.
Repite los mismos pasos para acceder al clúster de administrador.
Ejecuta el siguiente comando para crear el clúster de usuario:
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 elOPERATION_ID
de la operación de larga duración.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. Mientras se crea el clúster, puedes ejecutar el comando anterior cada cierto tiempo para obtener el estado actual.
Cuando se crea 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/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.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].
Ve a la página Clústeres de Kubernetes 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.
Accede al clúster de usuarios:
Haz clic en el vínculo del nombre del clúster y, en el panel lateral, haz clic en Acceder.
Selecciona Usa tu identidad de Google para acceder
Haga clic en Acceder.
Repite los mismos pasos para acceder al clúster de administrador.
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
.Crea una copia del archivo
terraform.tfvars.sample
.cp terraform.tfvars.sample terraform.tfvars
Verifica los valores en la siguiente muestra:
El siguiente archivo de variables de Terraform,
terraform.tfvars.sample
, se completa previamente con direcciones IP y con los valores que ingresaste en las secciones anteriores de esta guía.Reemplaza
ADMIN_2_EMAIL_ADDRESS
por una dirección de correo electrónico asociada a 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 Argument Reference en la documentación de Terraform para clústeres de usuarios de Bare Metal.
Reemplaza el contenido de tu copia del archivo de variables por el contenido del ejemplo anterior.
Inicializa y crea terraform plan:
terraform init
Terraform instala las bibliotecas necesarias, como el proveedor de Google Cloud .
Revisa la configuración y realiza cambios si es necesario:
terraform plan
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.
En la consola de Google Cloud , ve a la página 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.
Accede al clúster de usuarios:
Haz clic en el vínculo del nombre del clúster y, en el panel lateral, haz clic en Acceder.
Selecciona Usa tu identidad de Google para acceder
Haga clic en Acceder.
Repite los mismos pasos para acceder al clúster de administrador.
Para borrar el clúster de usuario 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
En la consola, ve a la página Clústeres de GKE.
En la lista de clústeres, haz clic en el clúster de usuario.
En el panel Detalles, haz clic en Ver más detalles.
Cerca de la parte superior de la ventana, haz clic en
Borrar.Cuando se te solicite confirmar, ingresa el nombre del clúster y haz clic en Borrar.
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.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 tiene grupos de nodos. Sin la marca--force
, primero debes borrar los grupos de nodos y, luego, borrar el clúster.Ejecuta el siguiente comando desde el directorio en el que se encuentran los archivos de muestra del clúster de usuario de Terraform, como
main.tf
:terraform destroy
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
Conéctate a la estación de trabajo de administrador:
gcloud compute ssh root@abm-ws --zone ZONE
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.Sal de la estación de trabajo de administrador:
exit
Enumera todas las VM que tienen
abm
en su nombre:gcloud compute instances list | grep 'abm'
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
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?
Para comenzar a crear clústeres en tu propio hardware, consulta Planifica una instalación básica en tu hardware y Crea clústeres básicos en tu hardware.
Para conocer los requisitos de instalación detallados, consulta la descripción general de los requisitos previos de instalación.
Para obtener más información sobre la instalación, consulta Descripción general de la creación de clústeres.
Para obtener instrucciones sobre cómo realizar la implementación en tu clúster, consulta Implementa una aplicación.
2. Crea las VMs y la red
En esta sección, descargarás y ejecutarás la secuencia de comandos install_admin_cluster.sh
.
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 comandos desde allí:
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.
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.
Conceptos básicos del entorno de arranque
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 abierta, ya que 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.
Crea el clúster de administrador:
Herramientas de redes
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.
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
, debes ejecutar 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.
Crea el clúster de administrador:
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.
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
, debes ejecutar 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 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 existente de Terraform de un clúster de usuario.
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.
Crea el clúster de administrador:
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.
4. Crea el clúster de usuario
Puedes usar la Google Cloud consola, 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
Console
Sigue estos pasos para crear un clúster de usuario en la consola:
Aspectos básicos del clúster
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
.
Crea un grupo de nodos
Tu clúster de usuario debe tener al menos un grupo de nodos para los nodos trabajadores.
Crea el clúster
gcloud CLI
Para crear el clúster de usuario, sigue estos pasos:
Crea un grupo de nodos
Después de crear el clúster correctamente, puedes crear un grupo de nodos para el clúster.
Para crear un grupo de nodos, haz lo siguiente:
Terraform
Puedes usar el siguiente ejemplo de configuración básica para crear un clúster de usuario con el balanceador de cargas MetalLB en paquetes. Para obtener más información, consulta la documentación de referencia de google_gkeonprem_bare_metal_cluster
.
5. Realiza una limpieza
Sigue las instrucciones que se indican a continuación para quitar los clústeres y las VMs que creaste con esta guía.
Borra el clúster de usuario
bmctl
Console
gcloud CLI
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 usuario.
Espera a que se borre el clúster de usuario antes de borrar el clúster de administrador y las VMs.