Esta es la segunda parte de una guía que te muestra cómo realizar una pequeña instalación de prueba de concepto de Google Distributed Cloud. En la primera parte, Configurar la infraestructura mínima, se explica cómo planificar las direcciones IP y configurar la infraestructura de vSphere y Google Cloud necesaria para la implementación. Este documento se basa en la configuración y la planificación que has realizado en la sección anterior y te muestra cómo crear una estación de trabajo de administrador, un clúster de administrador y un clúster de usuarios en tu entorno de vSphere mediante plantillas sencillas que puedes rellenar en este documento. Después, puedes desplegar una aplicación.
Al igual que con la configuración de la infraestructura de esta instalación sencilla, es posible que los clústeres que configures con este documento no sean adecuados para tus necesidades de producción y casos prácticos reales. Para obtener mucha más información, consultar las prácticas recomendadas y ver instrucciones para las instalaciones de producción, consulta las guías de instalación.
Antes de empezar
Asegúrate de haber configurado tus entornos de vSphere y Google Cloud como se describe en Configurar la infraestructura mínima.
Si quieres usar Terraform para crear el clúster de usuarios, necesitas Terraform en tu estación de trabajo de administrador o en otro ordenador.
Descripción general del procedimiento
Estos son los pasos principales que hay que seguir para completar la configuración:
Inicia sesión en la CLI de Google Cloud con una cuenta que tenga los permisos necesarios para crear cuentas de servicio.
Recopila la información que necesitas para configurar Google Distributed Cloud, como el nombre de usuario y la contraseña de vCenter, y las direcciones IP que has preparado en la sección anterior.
Crea una estación de trabajo de administrador que tenga los recursos y las herramientas que necesitas para crear clústeres de administrador y de usuario, incluidas las cuentas de servicio adicionales que necesitas para completar la configuración.
Crea un clúster de administrador para gestionar y actualizar tu clúster de usuario.
Crea un clúster de usuarios para ejecutar tus cargas de trabajo.
1. Iniciar sesión en Google Cloud CLI
Para configurar Google Distributed Cloud, se necesitan varias cuentas de servicio con diferentes permisos. Por lo tanto, debes iniciar sesión en la CLI de Google Cloud con una cuenta que tenga los permisos necesarios para crear y configurar cuentas de servicio, ya que gkeadm
usa tu account
propiedad actual de la CLI de gcloud al realizar esta configuración.
Inicia sesión en gcloud CLI. Puedes usar cualquier cuenta de Google, pero debe tener los permisos necesarios. Si has seguido la parte anterior de esta guía, probablemente ya hayas iniciado sesión con una cuenta adecuada para crear tu cuenta de servicio de acceso al componente.
gcloud auth login
Verifica que la propiedad
account
de la CLI de gcloud esté configurada correctamente:gcloud config list
En el resultado se muestra el valor de la propiedad
account
de su SDK. Por ejemplo:[core] account = my-name@google.com disable_usage_reporting = False Your active configuration is: [default]
Asegúrate de tener instalados los componentes más recientes de gcloud CLI:
gcloud components update
En función de cómo hayas instalado la CLI de gcloud, es posible que veas el siguiente mensaje: "No puedes realizar esta acción porque el gestor de componentes de la CLI de Google Cloud está inhabilitado en esta instalación. Puedes ejecutar el siguiente comando para obtener el mismo resultado en esta instalación:" Sigue las instrucciones para copiar y pegar el comando para actualizar los componentes.
2. Recoger información
Usa la información que has preparado en Configurar la infraestructura mínima para editar los marcadores de posición de la siguiente tabla:
Detalles de vSphere | |
---|---|
El nombre de usuario de tu cuenta de vCenter | USERNAME |
La contraseña de tu cuenta de vCenter | PASSWORD |
Tu dirección de vCenter Server | ADDRESS |
La ruta al certificado de AC raíz de tu servidor vCenter en el equipo que vas a usar para crear tu estación de trabajo de administrador | CA_CERT_PATH |
El nombre de tu centro de datos de vSphere | DATA_CENTER |
El nombre de tu clúster de vSphere | VSPHERE_CLUSTER |
El nombre o la ruta de tu grupo de recursos de vSphere. Para obtener más información, consulta vcenter.resourcePool. | RESOURCE_POOL |
El nombre de tu almacén de datos de vSphere | DATASTORE |
El nombre de tu red de vSphere | NETWORK |
Direcciones IP | |
Una dirección IP para tu estación de trabajo de administrador | ADMIN_WS_IP |
Tres direcciones IP para los nodos del plano de control del clúster de administrador. |
ADMIN_CONTROL_PLANE_NODE_IP_1 ADMIN_CONTROL_PLANE_NODE_IP_2 ADMIN_CONTROL_PLANE_NODE_IP_3 |
Una dirección IP para el nodo de plano de control del clúster de usuarios. |
USER_CONTROL_PLANE_NODE_IP |
Cuatro direcciones IP para los nodos de trabajo del clúster de usuarios. Esto incluye una dirección para un nodo adicional que se puede usar durante la actualización. |
USER_NODE_IP_1 USER_NODE_IP_2 USER_NODE_IP_3 USER_NODE_IP_4 |
Una dirección IP virtual (VIP) para el servidor de la API de Kubernetes del clúster de administrador | ADMIN_CONTROL_PLANE_VIP |
Una IP virtual para el servidor de la API de Kubernetes del clúster de usuario | USER_CONTROL_PLANE_VIP |
Una IP virtual de Ingress para el clúster de usuarios | USER_INGRESS_VIP |
Dos IPs virtuales para los servicios de tipo LoadBalancer en tu clúster de usuario. |
SERVICE_VIP_1 SERVICE_VIP_2 |
La dirección IP de un servidor DNS al que se pueda acceder desde tu estación de trabajo de administrador y los nodos del clúster | DNS_SERVER_IP |
La dirección IP de un servidor NTP al que se pueda acceder desde tu estación de trabajo de administrador y los nodos del clúster | NTP_SERVER_IP |
La dirección IP de la pasarela predeterminada de la subred que tiene tu estación de trabajo de administrador y los nodos del clúster | DEFAULT_GATEWAY_IP |
La máscara de red de la subred que tiene tu estación de trabajo de administrador y los nodos del clúster Ejemplo: 255.255.255.0 |
NETMASK |
Si tu red está detrás de un servidor proxy, la URL del servidor proxy. Para obtener más información, consulta proxy. Rellene este campo manualmente en el archivo de configuración de su estación de trabajo de administrador si es necesario. | PROXY_URL |
Intervalos CIDR de servicios y pods | |
El clúster de administrador y el clúster de usuario necesitan un intervalo CIDR para los servicios y otro para los pods. Utilice los siguientes valores predefinidos, a menos que necesite cambiarlos para evitar que se solapen con otros elementos de su red: | |
Un intervalo CIDR para los servicios del clúster de administración | 10.96.232.0/24 |
Un intervalo CIDR para los pods del clúster de administrador | 192.168.0.0/16 |
Un intervalo CIDR para los servicios del clúster de usuario | 10.96.0.0/20 |
Un intervalo CIDR para los pods del clúster de usuarios | 192.168.0.0/16 |
Google Cloud detalles | |
El ID del proyecto de Cloud que elijas. | PROJECT_ID |
La ruta al archivo de clave JSON de la cuenta de servicio de acceso a componentes que has configurado en la sección anterior, en el equipo que vas a usar para crear tu estación de trabajo de administrador. | COMPONENT_ACCESS_SA_KEY_PATH |
La dirección de correo asociada a tu cuenta de Google Cloud. Por ejemplo: alex@example.com . |
GOOGLE_ACCOUNT_EMAIL |
3. Crear una estación de trabajo de administrador
Antes de crear clústeres, debes crear una estación de trabajo de administrador y, a continuación, conectarte a ella mediante SSH. La estación de trabajo de administrador es una VM independiente que incluye las herramientas y los recursos que necesitas para crear clústeres de Google Distributed Cloud en tu entorno de vSphere. Para crear la estación de trabajo de administrador, se usa la herramienta de línea de comandos gkeadm
.
Descargar gkeadm
Descarga gkeadm
en tu directorio actual:
gcloud storage cp gs://gke-on-prem-release/gkeadm/1.32.300-gke.85/linux/gkeadm ./ chmod +x gkeadm
Necesitas la versión gkeadm
(que también es la versión de Google Distributed Cloud) para crear los archivos de configuración de administrador y de clúster de usuario. Para comprobar la versión de gkeadm
, ejecuta lo siguiente:
./gkeadm version
En el siguiente ejemplo de salida se muestra la versión.
gkeadm 1.33.100 (1.32.300-gke.85)
Aunque puedes descargar otra versión de gkeadm
, esta guía da por hecho que vas a instalar la versión 1.32.300-gke.85 y la usa en todos los archivos de configuración y comandos.
Crear el archivo de credenciales
Crea y guarda un archivo llamado credential.yaml
en tu directorio actual con el siguiente contenido:
apiVersion: v1 kind: CredentialFile items: - name: vCenter username: "USERNAME" password: "PASSWORD"
Crear el archivo de configuración de la estación de trabajo de administrador
Crea y guarda un archivo llamado admin-ws-config.yaml
, de nuevo en tu directorio actual, con el siguiente contenido:
gcp: componentAccessServiceAccountKeyPath: "COMPONENT_ACCESS_SA_KEY_PATH" vCenter: credentials: address: "ADDRESS" fileRef: path: "credential.yaml" entry: "vCenter" datacenter: "DATA_CENTER" datastore: "DATASTORE" cluster: "VSPHERE_CLUSTER" network: "NETWORK" resourcePool: "RESOURCE_POOL" caCertPath: "CA_CERT_PATH" proxyUrl: "" adminWorkstation: name: "minimal-installation-admin-workstation" cpus: 4 memoryMB: 8192 diskGB: 50 dataDiskName: gke-on-prem-admin-workstation-data-disk/minimal-installation-data-disk.vmdk dataDiskMB: 512 network: ipAllocationMode: "static" hostConfig: ip: "ADMIN_WS_IP" gateway: "DEFAULT_GATEWAY_IP" netmask: "NETMASK" dns: - "DNS_SERVER_IP" proxyUrl: "" ntpServer: ntp.ubuntu.com
Crear tu estación de trabajo de administrador
Crea tu estación de trabajo de administrador con el siguiente comando:
./gkeadm create admin-workstation --auto-create-service-accounts
Al ejecutar este comando:
- Crea tu estación de trabajo de administrador
- Crea automáticamente las cuentas de servicio adicionales que necesites para tu instalación.
- Crea archivos de configuración de plantillas para tus clústeres de administrador y de usuario.
El resultado proporciona información detallada sobre la creación de tu estación de trabajo de administrador y un comando que puedes usar para obtener una conexión SSH a tu estación de trabajo de administrador. Por ejemplo:
... Admin workstation is ready to use. Admin workstation information saved to /usr/local/google/home/me/my-admin-workstation This file is required for future upgrades SSH into the admin workstation with the following command: ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.20.49 ********************************************************************
En el resultado anterior, la dirección IP es un ejemplo. La dirección IP de tu estación de trabajo de administrador será diferente. Anota la dirección IP de tu estación de trabajo de administrador. Lo necesitarás en el siguiente paso.
Para obtener información más detallada sobre cómo crear una estación de trabajo de administrador, consulta el artículo Crear una estación de trabajo de administrador.
Conectarse a la estación de trabajo de administrador
Usa el comando que se muestra en el resultado anterior para obtener una conexión SSH a tu estación de trabajo de administrador. Por ejemplo:
ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.20.49
Si necesitas volver a encontrar este comando, gkeadm
genera un archivo llamado gke-admin-ws-...
en el directorio de tu equipo local en el que ejecutaste gkeadm create admin-workstation
.
Contiene detalles sobre tu estación de trabajo de administrador, incluido el comando SSH.
En tu estación de trabajo de administrador, introduce exit
para finalizar la conexión SSH y volver a tu máquina local.
Copia la clave de registro de auditoría en tu estación de trabajo de administrador
En la sección anterior, has creado un archivo de clave JSON para tu cuenta de servicio de registro de auditoría.
Copia el archivo de clave JSON en el directorio principal de tu estación de trabajo de administrador. Por ejemplo, en tu máquina local:
scp -i /usr/local/google/home/me/.ssh/gke-admin-workstation audit-logging-key.json ubuntu@172.16.20.49:~
Ver archivos en tu estación de trabajo de administrador
Una vez más, establece una conexión SSH con tu estación de trabajo de administrador.
En tu estación de trabajo de administrador, muestra los archivos del directorio principal:
ls -1
La salida debe incluir lo siguiente:
admin-cluster.yaml
, un archivo de configuración de plantilla para crear tu clúster de administrador.user-cluster.yaml
, un archivo de configuración de plantilla para crear tu clúster de usuario.- El archivo de certificado de vCenter que has especificado en la configuración de tu estación de trabajo de administrador
- El archivo
credential.yaml
que has especificado en la configuración de tu estación de trabajo de administrador. - El archivo de clave JSON de tu cuenta de servicio de registro de auditoría.
- Archivos de clave JSON de dos cuentas de servicio que
gkeadm
se han creado automáticamente: una cuenta de servicio de conexión y registro, y una cuenta de servicio de registro y monitorización, así como el archivo de clave de la cuenta de servicio de acceso a componentes que has creado anteriormente.
Por ejemplo:
admin-cluster.yaml admin-ws-config.yaml audit-logging-key.json sa-key.json connect-register-sa-2203040617.json credential.yaml log-mon-sa-2203040617.json logs vc01-cert.pem user-cluster.yaml
Deberás especificar algunos de estos nombres de archivo en tus archivos de configuración para crear clústeres. Use los nombres de archivo como valores de los marcadores de posición de la siguiente tabla:
Nombre de archivo de clave de cuenta de servicio de Connect-register Ejemplo: connect-register-sa-2203040617.json |
CONNECT_REGISTER_SA_KEY |
Nombre del archivo de clave de la cuenta de servicio de registro y monitorización Ejemplo: log-mon-sa-2203040617.json |
LOG_MON_SA_KEY |
Nombre del archivo de clave de cuenta de servicio de registro de auditoría Ejemplo: audit-logging-key.json |
AUDIT_LOG_SA_KEY |
Nombre del archivo de clave de la cuenta de servicio de acceso al componente Ejemplo: sa-key.json |
COMPONENT_ACCESS_SA_KEY |
Nombre del archivo de certificado de vCenter Ejemplo: vc01-cert.pem |
CA_CERT_FILE |
4. Crear clúster de administradores
Ahora que tienes una estación de trabajo de administrador configurada con tu vCenter y otros detalles, puedes usarla para crear un clúster de administrador en tu entorno de vSphere. Antes de empezar este paso, asegúrate de tener una conexión SSH a tu estación de trabajo de administrador, tal como se ha descrito anteriormente. Todos los comandos siguientes se ejecutan en la estación de trabajo de administrador.
Crear el archivo de configuración del clúster de administrador
Abre admin-cluster.yaml
y sustituye el contenido por lo siguiente:
apiVersion: v1 kind: AdminCluster name: "minimal-installation-admin-cluster" bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.32.300-gke.85-full.tgz" vCenter: address: "ADDRESS" datacenter: "DATA_CENTER" cluster: "VSPHERE_CLUSTER" resourcePool: "RESOURCE_POOL" datastore: "DATASTORE" caCertPath: "CA_CERT_FILE" credentials: fileRef: path: "credential.yaml" entry: "vCenter" network: hostConfig: dnsServers: - "DNS_SERVER_IP" ntpServers: - "NTP_SERVER_IP" serviceCIDR: "10.96.232.0/24" podCIDR: "192.168.0.0/16" vCenter: networkName: "NETWORK" controlPlaneIPBlock: netmask: "NETMASK" gateway: "DEFAULT_GATEWAY_IP" ips: - ip: "ADMIN_CONTROL_PLANE_NODE_IP_1" hostname: "admin-cp-vm-1" - ip: "ADMIN_CONTROL_PLANE_NODE_IP_2" hostname: "admin-cp-vm-2" - ip: "ADMIN_CONTROL_PLANE_NODE_IP_3" hostname: "admin-cp-vm-3" loadBalancer: vips: controlPlaneVIP: "ADMIN_CONTROL_PLANE_VIP" kind: "MetalLB" adminMaster: cpus: 4 memoryMB: 16384 replicas: 3 antiAffinityGroups: enabled: false componentAccessServiceAccountKeyPath: "COMPONENT_ACCESS_SA_KEY" gkeConnect: projectID: "PROJECT_ID" registerServiceAccountKeyPath: "CONNECT_REGISTER_SA_KEY" stackdriver: projectID: "PROJECT_ID" clusterLocation: "us-central1" enableVPC: false serviceAccountKeyPath: "LOG_MON_SA_KEY" disableVsphereResourceMetrics: false cloudAuditLogging: projectID: "PROJECT_ID" clusterLocation: us-central1 serviceAccountKeyPath: "AUDIT_LOG_SA_KEY"
Validar el archivo de configuración del clúster de administrador
Verifica que el archivo de configuración del clúster de administrador sea válido y se pueda usar para crear clústeres:
gkectl check-config --config admin-cluster.yaml
Importar imágenes de SO a vSphere
Ejecuta gkectl prepare
con el archivo de configuración completado para importar imágenes de SO de nodos a vSphere:
gkectl prepare --config admin-cluster.yaml --skip-validation-all
Al ejecutar este comando, las imágenes se importan a vSphere y se marcan como plantillas de máquina virtual, incluida la imagen de tu clúster de administrador.
Este comando puede tardar unos minutos en devolver el resultado.
Crear el clúster de administrador
Crea el clúster de administrador:
gkectl create admin --config admin-cluster.yaml
Reanudar la creación de un clúster de administrador tras un fallo
Si se produce un error al crear el clúster de administrador o se cancela, puedes volver a ejecutar el comando create
:
gkectl create admin --config admin-cluster.yaml
Localizar el archivo kubeconfig del clúster de administrador
El comando gkectl create admin
crea un archivo kubeconfig llamado kubeconfig
en el directorio actual. Necesitarás este archivo kubeconfig más adelante para interactuar con tu clúster de administrador.
Verificar que el clúster de administrador se está ejecutando
Comprueba que tu clúster de administrador se está ejecutando:
kubectl get nodes --kubeconfig kubeconfig
El resultado muestra los nodos del clúster de administrador. Por ejemplo:
admin-cp-vm-1 Ready control-plane,master ... admin-cp-vm-2 Ready control-plane,master ... admin-cp-vm-3 Ready control-plane,master ...
Habilitar la autorización RBAC
Para asignar a tu cuenta de usuario el rol clusterrole/cluster-admin
de Kubernetes en el clúster, ejecuta el siguiente comando:
gcloud container fleet memberships generate-gateway-rbac \ --membership=minimal-installation-admin-cluster \ --role=clusterrole/cluster-admin \ --users=GOOGLE_ACCOUNT_EMAIL \ --project=PROJECT_ID \ --kubeconfig=kubeconfig \ --context=minimal-installation-admin-cluster \ --apply
El resultado de este comando es similar al siguiente, que se ha truncado 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: kubeconfig, context: minimal-installation-admin-cluster Writing RBAC policy for user: GOOGLE_ACCOUNT_EMAIL to cluster. Successfully applied the RBAC policy to cluster.
Entre otras cosas, la política de RBAC te permite iniciar sesión en tu clúster en la consola deGoogle Cloud con tu identidad de Google para ver más detalles del clúster.
Registro automático en la API GKE On-Prem
Como la API de GKE On-Prem está habilitada en tu proyecto, el clúster se registra automáticamente en la API de GKE On-Prem. Si registras tu clúster de administrador en la API de GKE On-Prem, podrás usar herramientas estándar (la consola, la CLI de Google Cloud o Terraform) para crear, actualizar y eliminar clústeres de usuario que gestione el clúster de administrador.Google Cloud Al registrar tu clúster, también puedes ejecutar comandos de gcloud
para obtener información sobre él.
5. Crear clúster de usuarios
En esta sección se explica cómo crear el clúster de usuario mediante la consola, gkectl
, Terraform o la CLI de gcloud.
gkectl
Antes de empezar este procedimiento, asegúrate de tener una conexión SSH con tu estación de trabajo de administrador, tal como se ha descrito anteriormente. Todos los comandos siguientes se ejecutan en la estación de trabajo de administrador.
Crear el archivo de bloque de IPs del clúster de usuarios
Crea un archivo llamado
user-ipblock.yaml
.Copia y pega el siguiente contenido en
user-ipblock.yaml
y guarda el archivo:blocks: - netmask: "NETMASK" gateway: "DEFAULT_GATEWAY_IP" ips: - ip: "USER_NODE_IP_1" hostname: "user-vm-1" - ip: "USER_NODE_IP_2" hostname: "user-vm-2" - ip: "USER_NODE_IP_3" hostname: "user-vm-3" - ip: "USER_NODE_IP_4" hostname: "user-vm-4"
Crear el archivo de configuración del clúster de usuarios
Crea un archivo llamado
user-cluster.yaml
en el mismo directorio queuser-ipblock.yaml
.Copia y pega el siguiente contenido en
user-cluster.yaml
y guarda el archivo:
apiVersion: v1 kind: UserCluster name: "minimal-installation-user-cluster" gkeOnPremVersion: "1.32.300-gke.85" enableControlplaneV2: true network: hostConfig: dnsServers: - "DNS_SERVER_IP" ntpServers: - "NTP_SERVER_IP" ipMode: type: "static" ipBlockFilePath: "user-ipblock.yaml" serviceCIDR: "10.96.0.0/20" podCIDR: "192.168.0.0/16" controlPlaneIPBlock: netmask: "NETMASK" gateway: "DEFAULT_GATEWAY_IP" ips: - ip: "USER_CONTROL_PLANE_NODE_IP" hostname: "cp-vm-1" loadBalancer: vips: controlPlaneVIP: "USER_CONTROL_PLANE_VIP" ingressVIP: "USER_INGRESS_VIP" kind: "MetalLB" metalLB: addressPools: - name: "uc-address-pool" addresses: - "USER_INGRESS_VIP/32" - "SERVICE_VIP_1/32" - "SERVICE_VIP_2/32" enableDataplaneV2: true nodePools: - name: "uc-node-pool" cpus: 4 memoryMB: 8192 replicas: 3 enableLoadBalancer: true antiAffinityGroups: enabled: false gkeConnect: projectID: "PROJECT_ID" registerServiceAccountKeyPath: "CONNECT_REGISTER_SA_KEY" stackdriver: projectID: "PROJECT_ID" clusterLocation: "us-central1" enableVPC: false serviceAccountKeyPath: "LOG_MON_SA_KEY" disableVsphereResourceMetrics: false autoRepair: enabled: true
Validar la configuración y crear el clúster
Verifica que el archivo de configuración del clúster de usuarios sea válido y se pueda usar para crear el clúster:
gkectl check-config --kubeconfig kubeconfig --config user-cluster.yaml
Crea el clúster de usuarios:
gkectl create cluster --kubeconfig kubeconfig --config user-cluster.yaml
La creación del clúster tarda aproximadamente 30 minutos.
Buscar el archivo kubeconfig del clúster de usuarios
El comando gkectl create cluster
crea un archivo kubeconfig llamado USER_CLUSTER_NAME-kubeconfig
en el directorio actual. Necesitarás este archivo kubeconfig más adelante para interactuar con tu clúster de usuario.
Verificar que el clúster de usuarios esté en funcionamiento
Verifica que tu clúster de usuario esté en funcionamiento:
kubectl get nodes --kubeconfig USER_CLUSTER_KUBECONFIG
Sustituye USER_CLUSTER_KUBECONFIG por la ruta del archivo kubeconfig de tu clúster de usuario.
El resultado muestra los nodos del clúster de usuarios. Por ejemplo:
cp-vm-1 Ready control-plane,master user-vm-1 Ready user-vm-2 Ready user-vm-3 Ready
Habilitar la autorización RBAC
Para asignar a tu cuenta de usuario el rol clusterrole/cluster-admin
de Kubernetes en el clúster, ejecuta el siguiente comando:
gcloud container fleet memberships generate-gateway-rbac \ --membership=minimal-installation-user-cluster \ --role=clusterrole/cluster-admin \ --users=GOOGLE_ACCOUNT_EMAIL \ --project=PROJECT_ID \ --kubeconfig=USER_CLUSTER_KUBECONFIG \ --context=minimal-installation-user-cluster \ --apply
El resultado de este comando es similar al siguiente, que se ha truncado 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: kubeconfig, context: minimal-installation-admin-cluster Writing RBAC policy for user: GOOGLE_ACCOUNT_EMAIL to cluster. Successfully applied the RBAC policy to cluster.
Entre otras cosas, la política de RBAC te permite iniciar sesión en tu clúster en la consola deGoogle Cloud con tu identidad de Google para ver más detalles del clúster.
Registro automático en la API GKE On-Prem
Como la API de GKE On-Prem está habilitada en tu proyecto, el clúster se registra automáticamente en la API de GKE On-Prem. De esta forma, puedes usar la consola o la CLI de gcloud para ver los detalles del clúster y gestionar su ciclo de vida. Por ejemplo, puedes ejecutar comandos gcloud
para obtener información sobre tu clúster de usuarios.
Consola
En la Google Cloud consola, ve a la página Crear un clúster de Google Distributed Cloud.
Selecciona el Google Cloud proyecto en el que quieras crear el clúster. El proyecto seleccionado también se usa como proyecto host de la flota. Debe ser el mismo proyecto en el que está registrado el clúster de administrador. Una vez creado el clúster de usuarios, se registra automáticamente en la flota del proyecto seleccionado.
En las siguientes secciones se explica cómo configurar el clúster de usuarios.
Requisitos previos
Familiarízate con la información de la página Requisitos previos.
En la parte inferior de la página, haz clic en Siguiente.
Información básica de los clústeres
En Nombre, escribe un nombre para el clúster de usuarios. Por ejemplo:
minimal-installation-user-cluster
.En Clúster de administrador, selecciona minimal-installation-admin-cluster.
En el campo Ubicación de la API de GCP, selecciona us-central1.
En Versión, selecciona 1.32.300-gke.85.
No es necesario que abra las secciones Autorización ni Configuración de vCenter.
Haz clic en Siguiente.
Plano de control
En IPs de nodos del plano de control, en Pasarela, introduce DEFAULT_GATEWAY_IP.
En Máscara de subred, introduce NETMASK.
En Direcciones IP, en Dirección IP 1, introduzca USER_CONTROL_PLANE_NODE_IP. Deja en blanco el campo Nombre de host 1.
Haz clic en Siguiente.
Redes
En esta sección, se especifican las direcciones IP de los nodos, los pods y los servicios del clúster. Un clúster de usuarios necesita una dirección IP para cada nodo y una dirección IP adicional para un nodo temporal que se necesita durante las actualizaciones, las actualizaciones y la reparación automática del clúster. Para obtener más información, consulta ¿Cuántas direcciones IP necesita un clúster de usuarios?
En IPs de nodos de trabajo, en Modo de IP, comprueba que esté seleccionada la opción Estático.
En Pasarela, introduce DEFAULT_GATEWAY_IP.
En Máscara de subred, introduce NETMASK.
En Direcciones IP, introduzca estas direcciones:
- USER_NODE_IP_1
- USER_NODE_IP_2
- USER_NODE_IP_3
- USER_NODE_IP_4
Deja en blanco los campos Nombre de host.
En CIDR de servicio, introduce 10.96.0.0/20. En CIDR de pods, introduce 192.168.0.0/16.
En Servidor DNS 1, introduce DNS_SERVER_IP.
En Servidor NTP 1, introduce NTP_SERVER_IP.
Deja en blanco el campo Dominio de búsqueda de DNS.
Haz clic en Siguiente.
Balanceador de carga
En Tipo de balanceador de carga, selecciona Agrupado con MetalLB.
En Grupos de direcciones, usa el nombre predeterminado.
En Direcciones IP, en Intervalo de direcciones IP 1, introduzca USER_INGRESS_VIP/32.
Haz clic en Añadir intervalo de direcciones IP. En Intervalo de direcciones IP 1, introduce SERVICE_VIP_1/32
Haz clic en Añadir intervalo de direcciones IP. En Intervalo de direcciones IP 2, introduce SERVICE_VIP_2/32
En Asignación de direcciones IP, selecciona Automática.
Deja la opción Evitar direcciones IP con errores sin marcar.
En IPs virtuales, en IP virtual del plano de control, introduce USER_CONTROL_PLANE_VIP. El campo Ingress VIP ya está rellenado.
Haz clic en Continuar.
Funciones
Deja todos los valores predeterminados.
Haz clic en Siguiente.
Grupos de nodos
Deja todos los valores predeterminados.
Haz clic en Verificar y completar para crear el clúster de usuarios. La creación del clúster de usuarios tarda 15 minutos o más. La consola muestra mensajes de estado mientras verifica la configuración y crea el clúster en tu centro de datos.
Si se produce un error al verificar la configuración, la consola muestra un mensaje de error que debería ser lo suficientemente claro como para que puedas solucionar el problema de configuración y volver a intentar crear el clúster.
Para obtener más información sobre los posibles errores y cómo solucionarlos, consulta Solucionar problemas de clústeres registrados en la API de GKE On-Prem.
Terraform
En esta sección se muestra cómo crear un clúster de usuario y un grupo de nodos con Terraform. Para obtener más información y otros ejemplos, consulta lo siguiente:
Crea un directorio y un archivo en él. El nombre del archivo debe tener la extensión
.tf
. En esta guía, el archivo se llamamain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
Verifica el recurso de Terraform del clúster de usuario:
El siguiente ejemplo de recurso de Terraform se rellena con los valores que has introducido en la tabla de planificación de la sección anterior.
resource "google_gkeonprem_vmware_cluster" "cluster-basic" { name = "minimal-installation-user-cluster" project = "PROJECT_ID" location = "us-central1" admin_cluster_membership = "projects/PROJECT_ID/locations/global/memberships/minimal-installation-admin-cluster" description = "User cluster config with MetalLB, static IPs, and Controlplane V2" enable_control_plane_v2 = "true" on_prem_version = "1.32.300-gke.85" control_plane_node { cpus = 4 memory = 8192 replicas = 1 } network_config { service_address_cidr_blocks = ["10.96.0.0/20"] pod_address_cidr_blocks = ["192.168.0.0/16"] host_config { dns_servers = ["DNS_SERVER_IP"] ntp_servers = ["NTP_SERVER_IP"] } static_ip_config { ip_blocks { netmask = "NETMASK" gateway = "DEFAULT_GATEWAY_IP" ips { ip = "USER_NODE_IP_1" hostname = "user-vm-1" } ips { ip = "USER_NODE_IP_2" hostname = "user-vm-2" } ips { ip = "USER_NODE_IP_3" hostname = "user-vm-3" } ips { ip = "USER_NODE_IP_4" hostname = "user-vm-4" } } } control_plane_v2_config { control_plane_ip_block { netmask = "NETMASK" gateway = "DEFAULT_GATEWAY_IP" ips { ip = "USER_CONTROL_PLANE_NODE_IP" hostname = "cp-vm-1" } } } } load_balancer { vip_config { control_plane_vip = "USER_CONTROL_PLANE_VIP" ingress_vip = "USER_INGRESS_VIP" } metal_lb_config { address_pools { pool = "uc-address-pool" manual_assign = "true" addresses = ["USER_INGRESS_VIP/32", "SERVICE_VIP_1/32", "SERVICE_VIP_2/32"] } } } authorization { admin_users { username = "GOOGLE_ACCOUNT_EMAIL" } } provider = google-beta } resource "google_gkeonprem_vmware_node_pool" "my-node-pool-1" { name = "uc-node-pool" project = "PROJECT_ID" vmware_cluster = "minimal-installation-user-cluster" location = "us-central1" config { replicas = 3 image_type = "ubuntu_containerd" enable_load_balancer = "true" } depends_on = [ google_gkeonprem_vmware_cluster.cluster-basic ] provider = google-beta }
Copia el recurso de Terraform en
main.tf
y guarda el archivo.Inicializa y crea el plan de Terraform:
terraform init
Terraform instala las bibliotecas necesarias, como el Google Cloud proveedor.
Revisa la configuración y haz los cambios necesarios:
terraform plan
Aplica el plan de Terraform para crear el clúster de usuarios:
terraform apply
Cuando se te solicite, introduce
yes
.Se tarda unos 15 minutos (o más, según tu red) en crear el clúster de usuario básico y el grupo de nodos.
gcloud
Crea el clúster:
gcloud container vmware clusters create minimal-installation-user-cluster \ --project=PROJECT_ID \ --admin-cluster-membership=projects/PROJECT_ID/locations/global/memberships/minimal-installation-admin-cluster \ --location=us-central1 \ --version=1.32.300-gke.85 \ --admin-users=GOOGLE_ACCOUNT_EMAIL \ --service-address-cidr-blocks=10.96.0.0/20 \ --pod-address-cidr-blocks=192.168.0.0/16 \ --metal-lb-config-address-pools='pool=uc-address-pool,avoid-buggy-ips=False,manual-assign=False,addresses=USER_INGRESS_VIP/32;SERVICE_VIP_1/32;SERVICE_VIP_2/32' \ --control-plane-vip=USER_CONTROL_PLANE_VIP \ --ingress-vip=USER_INGRESS_VIP \ --static-ip-config-ip-blocks='gateway=DEFAULT_GATEWAY_IP,netmask=NETMASK,ips=USER_NODE_IP_1;USER_NODE_IP_2;USER_NODE_IP_3;USER_NODE_IP_4' \ --dns-servers=DNS_SERVER_IP \ --ntp-servers=NTP_SERVER_IP \ --enable-control-plane-v2 \ --enable-dataplane-v2 \ --control-plane-ip-block='gateway=DEFAULT_GATEWAY_IP,netmask=NETMASK,ips=USER_CONTROL_PLANE_NODE_IP'
La salida del comando es similar a la siguiente:
Waiting for operation [projects/example-project-12345/locations/us-central1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.
En el resultado de ejemplo, la cadena operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179
es el OPERATION_ID
de la operación de larga duración. Puedes consultar el estado de la operación con el siguiente comando:
gcloud container vmware operations describe OPERATION_ID \ --project=PROJECT_ID \ --location=us-central1
Para obtener más información, consulta gcloud container vmware operations.
La creación del clúster de usuarios tarda 15 minutos o más. Puedes ver el clúster en la consola, en la página de descripción general de clústeres de Google Kubernetes Engine.
Crea un grupo de nodos:
gcloud container vmware node-pools create uc-node-pool \ --cluster=minimal-installation-user-cluster \ --project=PROJECT_ID \ --location=us-central1 \ --image-type=ubuntu_containerd \ --boot-disk-size=40 \ --cpus=4 \ --memory=8192 \ --replicas=3 \ --enable-load-balancer
Siguientes pasos
Ya has completado esta instalación mínima de Google Distributed Cloud. Como paso opcional, puedes ver tu instalación en acción implementando una aplicación.