Crear clúster de administradores

En esta página se muestra cómo crear un clúster de administrador para Google Distributed Cloud. El clúster de administrador gestiona los clústeres de usuarios que ejecutan tus cargas de trabajo. Si quieres usar dominios de topología, consulta Crear un clúster de administrador para usarlo con dominios de topología.

Esta página está dirigida a administradores, arquitectos y operadores que configuran, monitorizan y gestionan la infraestructura tecnológica. Para obtener más información sobre los roles habituales y las tareas de ejemplo a las que hacemos referencia en el contenido de Google Cloud , consulta Roles y tareas de usuario habituales de GKE.

Para obtener más información sobre el clúster de administrador, consulta la descripción general de la instalación.

En la versión 1.33 y posteriores, todos los clústeres nuevos se crean como clústeres avanzados. Consulta las diferencias al ejecutar clústeres avanzados.

Antes de empezar

  • Asegúrate de haber configurado tu estación de trabajo de administrador y de poder iniciar sesión en ella tal como se describe en el artículo Crear una estación de trabajo de administrador.

  • Asegúrate de que los archivos de clave JSON de las cuentas de servicio estén en tu estación de trabajo de administrador.

  • Consulta el documento de planificación de direcciones IP. Asegúrate de que tienes suficientes direcciones IP disponibles para los tres nodos del plano de control y una IP virtual del plano de control. Si tienes previsto crear algún clúster de usuarios de kubeception, debes tener suficientes direcciones IP disponibles para los nodos del plano de control de esos clústeres de usuarios.

  • Consulta la información general sobre el balanceo de carga y vuelve a plantearte qué tipo de balanceador de carga quieres usar. En el caso de los balanceadores de carga manuales, debe configurar el balanceador de carga antes de crear el clúster de administrador.

  • Si usas gkectl para crear el clúster de administrador, decide si quieres usar un registro público o privado para los componentes de Google Distributed Cloud. Para obtener información sobre cómo usar un registro de Docker privado, consulta privateRegistry. Ni Terraform ni la consola admiten el uso de un registro de Docker privado para los componentes del sistema. Google Cloud

  • Decide qué tipo de sistema operativo quieres ejecutar en los nodos de tu clúster de administrador.

  • Si tu organización requiere que el tráfico saliente pase por un servidor proxy, asegúrate de incluir en la lista de permitidos las APIs necesarias y la dirección de Artifact Registry.

  • En la versión 1.29 y posteriores, las comprobaciones preparatorias del lado del servidor están habilitadas de forma predeterminada. Las comprobaciones previas del lado del servidor requieren reglas de cortafuegos adicionales. En Reglas de firewall para clústeres de administrador, busca "Comprobaciones previas" y asegúrate de que todas las reglas de firewall necesarias estén configuradas. Las comprobaciones previas del lado del servidor se ejecutan en el clúster de arranque en lugar de localmente en la estación de trabajo del administrador.

Crear un clúster de administrador con la herramienta que prefieras

En esta sección se explica cómo crear un clúster de administrador con gkectl, Terraform y la Google Cloud consola. Para obtener información que te ayude a elegir una herramienta y conocer las limitaciones de algunas de ellas, consulta el artículo Elegir una herramienta para gestionar el ciclo de vida de un clúster.

gkectl

Descripción general del procedimiento

Estos son los pasos principales para crear un clúster de administradores:

  1. Rellena tus archivos de configuración.
    Especifica los detalles de tu nuevo clúster de administrador completando y validando un archivo de configuración de clúster de administrador, un archivo de configuración de credenciales y, posiblemente, un archivo de bloque de IPs.
  2. Importa imágenes de SO a vSphere y envía imágenes de contenedor al registro privado, si procede.
    Ejecutar gkectl prepare.
  3. Crea un clúster de administrador.
    Usa gkectl para crear un clúster de administrador tal como se especifica en los archivos de configuración completados. Cuando Google Distributed Cloud crea un clúster de administrador, implementa un clúster Kubernetes en Docker (kind) para alojar temporalmente los controladores de Kubernetes necesarios para crear el clúster de administrador. Este clúster transitorio se denomina clúster de arranque. El administrador encargado crea y actualiza los clústeres de usuarios sin usar un clúster de arranque.
  4. Comprueba que tu clúster de administrador esté en funcionamiento.
    Usa kubectl para ver los nodos del clúster.

Al final de este procedimiento, tendrás un clúster de administrador en funcionamiento que podrás usar para crear y gestionar clústeres de usuarios.

Si usas Controles de Servicio de VPC, es posible que veas errores al ejecutar algunos comandos de gkectl, como "Validation Category: GCP - [UNKNOWN] GCP service: [Stackdriver] could not get GCP services". Para evitar estos errores, añade el parámetro --skip-validation-gcp a tus comandos.

Rellena el archivo de configuración

  • Asegúrate de que tu estación de trabajo de administrador tenga la versión necesaria de gkectl. Normalmente, se usa la misma versión de gkectl que la que se usará al crear el clúster. Puedes especificar la versión del clúster en el campo gkeOnPremVersion del archivo de configuración del clúster. Durante la creación del clúster, se aplican las siguientes reglas de versión:

    • La versión secundaria de gkectl no puede ser inferior a la versión secundaria del clúster. Por ejemplo, no se permite crear un clúster 1.30 con la versión 1.29 de gkectl. Las versiones de parche no importan. Por ejemplo, puedes usar la versión 1.29.0-gke.1456 de gkectl para crear un clúster con una versión de parche superior, como la 1.29.1000-gke.94.

    • La versión secundaria gkectl no puede ser más de dos versiones secundarias superior a la versión del clúster. Por ejemplo, si vas a crear un clúster 1.28, la versión de gkectl puede ser 1.29 o 1.30. Sin embargo, no puedes usar la versión 1.31 de gkectl porque es tres versiones secundarias superior a la versión del clúster.

    Si es necesario, consulta Descargar gkectl para obtener una versión compatible de gkectl.

Si has usado gkeadm para crear tu estación de trabajo de administrador, se habrá generado un archivo de configuración llamado admin-cluster.yaml.

Si no has usado gkeadm para crear tu estación de trabajo de administrador, genera admin-cluster.yaml ejecutando este comando en tu estación de trabajo de administrador:

gkectl create-config admin

Este archivo de configuración se usa para crear el clúster de administrador.

Familiarízate con el archivo de configuración consultando el documento Archivo de configuración de clúster de administradores. Te recomendamos que mantengas este documento abierto en otra pestaña o ventana, ya que lo consultarás cuando completes los pasos siguientes.

name

Si quieres especificar un nombre para tu clúster de administrador, rellena el campo name.

bundlePath

El paquete es un archivo comprimido que contiene componentes de clúster. Se incluye con la estación de trabajo de administrador. Este campo ya está rellenado.

vCenter

Los campos de esta sección ya están rellenados con los valores que introdujo al crear su estación de trabajo de administrador.

enableAdvancedCluster

En la versión 1.31, si quieres habilitar la función de clúster avanzado, define enableAdvancedCluster como true.

Tenga en cuenta las siguientes diferencias entre las versiones:

  • En la versión 1.31, la función de clúster avanzado está en versión preliminar:

    • Solo puedes habilitar clústeres avanzados al crear clústeres 1.31 nuevos.

    • Una vez que se haya habilitado el clúster avanzado, no podrás actualizarlo a la versión 1.32. Habilita el clúster avanzado solo en un entorno de prueba.

  • En la versión 1.32, la función de clúster avanzado está disponible de forma general.

    • De forma predeterminada, los clústeres de administrador se crean como clústeres avanzados. Debes definir enableAdvancedCluster como false explícitamente si quieres crear un clúster no avanzado.

    • En los clústeres que tienen habilitada la función de clústeres avanzados, se admiten las actualizaciones de clústeres.

  • En la versión 1.33 y posteriores, todos los clústeres se crean como clústeres avanzados. Si asignas el valor false a enableAdvancedCluster, no se podrá crear el clúster.

network

Rellena la sección network.controlPlaneIPBlock y la sección network.hostConfig. También asigna el valor 3 a adminMaster.replicas.

Los campos network.podCIDR y network.serviceCIDR tienen valores predefinidos que puedes dejar sin modificar, a menos que entren en conflicto con direcciones que ya se estén usando en tu red. Kubernetes usa estos intervalos para asignar direcciones IP a los pods y servicios de tu clúster.

Rellena el resto de los campos de la sección de red del archivo de configuración según sea necesario.

loadBalancer

Reserva una dirección IP virtual para el servidor de la API de Kubernetes de tu clúster de administrador. Proporciona tu VIP como valor de loadBalancer.vips.controlPlaneVIP

Para obtener más información, consulta VIPs in the admin cluster subnet (VIPs en la subred del clúster de administración).

Decide qué tipo de balanceo de carga quieres usar. Las opciones disponibles son:

  • Balanceo de carga agrupado de MetalLB. Asigna el valor "MetalLB" a loadBalancer.kind.

  • Balanceo de carga manual. Asigna el valor "ManualLB" a loadBalancer.kind y elimina la sección manualLB.

Para obtener más información sobre las opciones de balanceo de carga, consulta la información general sobre el balanceo de carga.

antiAffinityGroups

Asigna el valor antiAffinityGroups.enabled a true o false según tus preferencias.

Usa este campo para especificar si quieres que Google Distributed Cloud cree reglas de antiafinidad de Distributed Resource Scheduler (DRS) de VMware para los nodos de tu clúster de administrador, lo que hará que se distribuyan en al menos tres hosts físicos de tu centro de datos.

adminMaster

Si quieres especificar la CPU y la memoria de los nodos del plano de control del clúster de administrador, rellena los campos cpus y memoryMB de la sección adminMaster.

Los clústeres de administrador deben tener tres nodos del plano de control. En el campo replicas de la sección adminMaster, introduzca el valor 3.

proxy

Si la red que tendrá los nodos de tu clúster de administración está detrás de un servidor proxy, rellena la sección proxy.

privateRegistry

Decide dónde quieres conservar las imágenes de contenedor de los componentes de Google Distributed Cloud. Las opciones disponibles son:

  • Artifact Registry

  • Tu propio registro de Docker privado.

    Si quieres usar tu propio registro privado, rellena la sección privateRegistry.

componentAccessServiceAccountKeyPath

Google Distributed Cloud usa tu cuenta de servicio de acceso a componentes para descargar componentes de clúster de Artifact Registry. Este campo contiene la ruta de un archivo de clave JSON de tu cuenta de servicio de acceso a componentes.

Este campo ya está rellenado.

gkeConnect

Registre su clúster de administrador en una Google Cloud flota rellenando la sección gkeConnect. Si incluye las secciones stackdriver y cloudAuditLogging en el archivo de configuración, el ID de gkeConnect.projectID debe ser el mismo que el ID definido en stackdriver.projectID y cloudAuditLogging.projectID. Si los IDs de proyecto no son los mismos, no se podrá crear el clúster.

En la versión 1.28 y posteriores, puedes especificar una región en la que se ejecuten los servicios Fleet y Connect en gkeConnect.location. Si no incluyes este campo, el clúster usará las instancias globales de estos servicios.

Si incluye gkeConnect.location, la región que especifique debe ser la misma que la configurada en cloudAuditLogging.clusterLocation, stackdriver.clusterLocation y gkeOnPremAPI.location. Si las regiones no son las mismas, no se podrá crear el clúster.

gkeOnPremAPI

Si la API de GKE On-Prem está habilitada en tuGoogle Cloud proyecto, todos los clústeres del proyecto se registran en la API de GKE On-Prem automáticamente en la región configurada en stackdriver.clusterLocation. La región gkeOnPremAPI.location debe ser la misma que la especificada en cloudAuditLogging.clusterLocation, gkeConnect.location y stackdriver.clusterLocation. Si las regiones no son las mismas, no se podrá crear el clúster.

  • Si quieres registrar todos los clústeres del proyecto en la API de GKE On-Prem, sigue los pasos que se indican en la sección Antes de empezar para activar y usar la API de GKE On-Prem en el proyecto.

  • Si no quieres registrar el clúster en la API GKE On-Prem, incluye esta sección y asigna el valor false a gkeOnPremAPI.enabled. Si no quieres registrar ningún clúster en el proyecto, inhabilita gkeonprem.googleapis.com (el nombre del servicio de la API de GKE On-Prem) en el proyecto. Para obtener instrucciones, consulta Inhabilitar servicios.

stackdriver

Si quieres habilitar Cloud Logging y Cloud Monitoring en tu clúster, rellena la sección stackdriver.

Esta sección es obligatoria de forma predeterminada. Es decir, si no rellenas esta sección, debes incluir la marca --skip-validation-stackdriver cuando ejecutes gkectl create admin.

Ten en cuenta los siguientes requisitos:

  • Si habilitas el clúster avanzado, debes especificar la misma ruta en cloudAuditLogging.serviceAccountKeyPath y stackdriver.serviceAccountKeyPath.

  • El ID de stackdriver.projectID debe ser el mismo que el de gkeConnect.projectID y cloudAuditLogging.projectID.

  • La región definida en stackdriver.clusterLocation debe ser la misma que la definida en cloudAuditLogging.clusterLocation y gkeConnect.location. Google Cloud Además, si gkeOnPremAPI.enabled es true, se debe definir la misma región en gkeOnPremAPI.location.

Si los IDs de proyecto y las regiones no son los mismos, no se podrá crear el clúster.

cloudAuditLogging

Si quieres integrar los registros de auditoría del servidor de la API de Kubernetes de tu clúster con los registros de auditoría de Cloud, rellena la sección cloudAuditLogging.

Ten en cuenta los siguientes requisitos:

  • Si habilitas el clúster avanzado, debes especificar la misma ruta en cloudAuditLogging.serviceAccountKeyPath y stackdriver.serviceAccountKeyPath.

  • El ID de cloudAuditLogging.projectID debe ser el mismo que el de gkeConnect.projectID y stackdriver.projectID.

  • La región definida en Google Cloud y cloudAuditLogging.clusterLocation debe ser la misma que la definida en stackdriver.clusterLocation y gkeConnect.location (si el campo se incluye en el archivo de configuración). Además, si gkeOnPremAPI.enabled es true, se debe definir la misma región en gkeOnPremAPI.location.

Si los IDs de proyecto y las regiones no son los mismos, no se podrá crear el clúster.

clusterBackup

Si quieres habilitar la creación de copias de seguridad del clúster de administrador, define clusterBackup.datastore como el almacén de datos de vSphere en el que quieras guardar las copias de seguridad del clúster.

Si habilitas el clúster avanzado, elimina esta sección. No se admite la creación de copias de seguridad del clúster de administrador en un almacén de datos de vSphere.

autoRepair

Si quieres habilitar la reparación automática de nodos en tu clúster de administrador, define autoRepair.enabled en true.

secretsEncryption

Si quieres habilitar el encriptado de secretos siempre activo, rellena la sección secretsEncryption.

Si habilitas el clúster avanzado, asigna el valor false a secretsEncryption.enabled. No se admite el cifrado de secretos siempre activo.

osImageType

Decide qué tipo de imagen de SO quieres usar para los nodos del clúster de administrador y rellena la sección osImageType en consecuencia.

Si habilitas el clúster avanzado, asigna a osImageType el valor ubuntu_cgroupv2 o ubuntu_containerd.

Ejemplo de archivos de configuración rellenados

A continuación, se muestra un ejemplo de un archivo de configuración de clúster de administradores rellenado. La configuración habilita algunas de las funciones disponibles, pero no todas.

vc-01-admin-cluster.yaml

apiVersion: v1
kind: AdminCluster
name: "gke-admin-01"
bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.28.0-gke.1-full.tgz"
vCenter:
  address: "vc01.example"
  datacenter: "vc-01"
  cluster: "vc01-workloads-1"
  resourcePool: "vc-01-pool-1"
  datastore: "vc01-datastore-1"
  caCertPath: "/usr/local/google/home/me/certs/vc01-cert.pem""
  credentials:
    fileRef:
      path: "credential.yaml"
      entry: "vCenter"
network:
  hostConfig:
    dnsServers:
    - "203.0.113.1"
    - "198.51.100.1"
    ntpServers:
    - "216.239.35.4"
  serviceCIDR: "10.96.232.0/24"
  podCIDR: "192.168.0.0/16"
  vCenter:
    networkName: "vc01-net-1"
  controlPlaneIPBlock:
    netmask: "255.255.248.0"
    gateway: "21.0.143.254"
    ips:
    - ip: "21.0.140.226"
      hostname: "admin-cp-vm-1"
    - ip: "21.0.141.48"
      hostname: "admin-cp-vm-2"
    - ip: "21.0.141.65"
      hostname: "admin-cp-vm-3"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.20.59"
  kind: "MetalLB"
antiAffinityGroups:
  enabled: true
adminMaster:
  cpus: 4
  memoryMB: 16384
  replicas: 3
componentAccessServiceAccountKeyPath: "sa-key.json"
gkeConnect:
  projectID: "my-project-123"
  registerServiceAccountKeyPath: "connect-register-sa-2203040617.json"
stackdriver:
  projectID: "my-project-123"
  clusterLocation: "us-central1"
  enableVPC: false
  serviceAccountKeyPath: "log-mon-sa-2203040617.json"
  disableVsphereResourceMetrics: false
clusterBackup:
  datastore: "vc-01-datastore-bu"
autoRepair:
  enabled: true
osImageType: "ubuntu_containerd"

Validar el archivo de configuración

Una vez que hayas rellenado el archivo de configuración del clúster de administrador, ejecuta gkectl check-config para verificar que el archivo sea válido:

gkectl check-config --config ADMIN_CLUSTER_CONFIG

Sustituye ADMIN_CLUSTER_CONFIG por la ruta del archivo de configuración de tu clúster de administrador.

Si el comando devuelve algún mensaje de error, solucione los problemas y vuelva a validar el archivo.

Si quieres saltarte las validaciones que requieren más tiempo, usa la marca --fast. Para omitir validaciones concretas, usa las marcas --skip-validation-xxx. Para obtener más información sobre el comando check-config, consulta el artículo Ejecutar comprobaciones de solicitudes preparatorias.

Obtener imágenes de SO

Ejecuta gkectl prepare para inicializar tu entorno de vSphere:

gkectl prepare --config ADMIN_CLUSTER_CONFIG

El comando gkectl prepare realiza las siguientes tareas preparatorias:

  • Importa imágenes de SO a vSphere y las marca como plantillas de VM.

  • Si usas un registro de Docker privado, envía las imágenes de contenedor a tu registro.

  • Opcionalmente, valida las atestaciones de compilación de las imágenes de contenedor, lo que permite verificar que Google ha compilado y firmado las imágenes, y que están listas para desplegarse.

Crear el clúster de administrador

Crea el clúster de administrador:

gkectl create admin --config ADMIN_CLUSTER_CONFIG

Si usas Controles de Servicio de VPC, es posible que veas errores al ejecutar algunos comandos de gkectl, como "Validation Category: GCP - [UNKNOWN] GCP service: [Stackdriver] could not get GCP services". Para evitar estos errores, añade el parámetro --skip-validation-gcp a tus comandos.

Reanudar la creación del clúster de administradores 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_CONFIG

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.

El archivo kubeconfig contiene el nombre de tu clúster de administrador. Para ver el nombre del clúster, puedes ejecutar el siguiente comando:

kubectl config get-clusters --kubeconfig ADMIN_CLUSTER_KUBECONFIG

El resultado muestra el nombre del clúster. Por ejemplo:

NAME
gke-admin-tqk8x

Si quieres, puedes cambiar el nombre y la ubicación del archivo kubeconfig.

Gestionar el archivo checkpoint.yaml

Esta sección solo se aplica a los clústeres de administrador que no son de alta disponibilidad. El archivo checkpoint.yaml no se usa para crear clústeres de administrador de alta disponibilidad.

Cuando ejecutaste el comando gkectl create admin para crear el clúster de administrador, se creó un archivo de punto de control en la misma carpeta de almacén de datos que el disco de datos del clúster de administrador. De forma predeterminada, este archivo tiene el nombre DATA_DISK_NAME‑checkpoint.yaml. Si la longitud de DATA_DISK_NAME es igual o superior a 245 caracteres, el nombre será DATA_DISK_NAME.yaml debido al límite de vSphere en cuanto a la longitud de los nombres de archivo.

Este archivo contiene el estado y las credenciales del clúster de administrador, y se usa para futuras actualizaciones. No elimines este archivo a menos que estés siguiendo el proceso para eliminar un clúster de administrador.

Si has habilitado el cifrado de máquinas virtuales en tu instancia de vCenter Server, debes tener el privilegio Operaciones criptográficas.Acceso directo antes de crear o actualizar tu clúster de administrador. De lo contrario, el punto de control no se subirá. Si no puedes obtener este privilegio, puedes inhabilitar la subida del archivo de punto de control mediante la marca oculta --disable-checkpoint al ejecutar un comando pertinente.

El archivo checkpoint.yaml se actualiza automáticamente cuando ejecutas el comando gkectl upgrade admin o cuando ejecutas un comando gkectl update que afecta al 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 ADMIN_CLUSTER_KUBECONFIG

Sustituye ADMIN_CLUSTER_KUBECONFIG por la ruta del archivo kubeconfig de tu clúster de administrador.

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

Crear copias de seguridad de archivos

Te recomendamos que hagas una copia de seguridad del archivo kubeconfig de tu clúster de administrador. Es decir, copia el archivo kubeconfig de tu estación de trabajo de administrador a otra ubicación. De esta forma, si pierdes el acceso a la estación de trabajo del administrador o si el archivo kubeconfig de tu estación de trabajo del administrador se elimina por error, seguirás teniendo acceso al clúster de administrador.

También te recomendamos que hagas una copia de seguridad de la clave SSH privada de tu clúster de administrador. De esta forma, si pierdes el acceso al clúster de administrador, podrás seguir usando SSH para conectarte a los nodos del clúster de administrador. De esta forma, podrá solucionar e investigar cualquier problema de conectividad con el clúster de administrador.

Extrae la clave SSH del clúster de administrador en un archivo llamado admin-cluster-ssh-key:

kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get secrets -n kube-system sshkeys \
    -o jsonpath='{.data.vsphere_tmp}' | base64 -d > admin-cluster-ssh-key

Ahora puedes crear una copia de seguridad de admin-cluster-ssh-key en otra ubicación que elijas.

Políticas de RBAC

Cuando rellenas la sección gkeConnect del archivo de configuración del clúster de administrador, el clúster se registra en tu flota durante la creación o la actualización. Para habilitar la función de gestión de flotas, Google Cloud implementa el agente de Connect y crea una cuenta de servicio de Google que representa el proyecto en el que se ha registrado el clúster. El agente Connect establece una conexión con la cuenta de servicio para gestionar las solicitudes al servidor de la API de Kubernetes del clúster. Esto permite acceder a las funciones de gestión de clústeres y cargas de trabajo de Google Cloud, incluido el acceso a la consola deGoogle Cloud , que te permite interactuar con tu clúster.

El servidor de la API de Kubernetes del clúster de administrador debe poder autorizar las solicitudes del agente de Connect. Para ello, se configuran las siguientes políticas de control de acceso basado en roles (RBAC) en la cuenta de servicio:

  • Una política de suplantación de identidad que autoriza al agente de Connect a enviar solicitudes al servidor de la API de Kubernetes en nombre de la cuenta de servicio.

  • Una política de permisos que especifica las operaciones que se permiten en otros recursos de Kubernetes.

La cuenta de servicio y las políticas de RBAC son necesarias para que puedas gestionar el ciclo de vida de tus clústeres de usuario en la consola de Google Cloud .

Terraform

Descripción general del procedimiento

Antes de crear el clúster de administrador, debes ejecutar el comando gkectl register bootstrap en tu estación de trabajo de administrador. Este comando 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 el clúster de administrador. Cuando creas el clúster de administrador, los controladores del clúster de arranque aprovisionan nodos, ejecutan comprobaciones previas y registran el clúster de administrador en la flota. El clúster de arranque se elimina automáticamente después de que se haya creado correctamente el clúster de administrador.

A continuación, se indican los pasos generales para crear un clúster de administrador con Terraform:

  1. Rellena el archivo de configuración.
    Usa el recurso google_gkeonprem_vmware_admin_cluster y el ejemplo que se muestra a continuación para crear el archivo de configuración main.tf.
  2. Crea un clúster bootstrap.
    Ejecuta el gkectl register bootstrap para crear el clúster de arranque. Cuando el comando termine de crear el clúster de arranque, el resultado te indicará que completes la configuración del clúster de administrador. El proceso se sigue ejecutando hasta que se crea el clúster de administrador.
  3. Crea un clúster de administrador.
    En otra ventana de terminal o en otro ordenador que tenga acceso a la API GKE On-Prem, ejecuta los comandos terraform para crear un clúster de administrador tal como se especifica en el archivo de configuración main.tf que has completado.

Rellena el archivo de configuración

En el siguiente ejemplo se muestra cómo crear un clúster de administrador de alta disponibilidad con tres nodos del plano de control con MetalLB. En la versión 1.28 y posteriores, los nuevos clústeres de administrador deben tener alta disponibilidad. Debido a este requisito, debes definir control_plane_node.replicas en 3.

Para obtener más información y otros ejemplos, consulta la documentación de referencia de google_gkeonprem_vmware_admin_cluster. Para obtener información sobre cómo usar un registro privado para imágenes del sistema, consulta Configurar un registro de contenedores privado.

Rellena las variables de marcador de posición del siguiente ejemplo, cópialo y pégalo en main.tf. Si has usado gkeadm para crear tu estación de trabajo de administrador, abre el archivo de configuración de la estación de trabajo para poder copiar los valores de la sección vCenter en las variables de marcador de posición correspondientes.

resource "google_gkeonprem_vmware_admin_cluster" "admin-cluster-metallb" {
  provider = google-beta
  name = "ADMIN_CLUSTER_NAME"
  project = "PROJECT_ID"
  location = "REGION"
  description = "DESCRIPTION"
  bootstrap_cluster_membership = "projects/PROJECT_ID/locations/REGION/memberships/bootstrap-ADMIN_CLUSTER_NAME"
  on_prem_version = "VERSION"
  image_type = "IMAGE_TYPE"
  vcenter {
    address = "VCENTER_ADDRESS"
    datacenter = "DATA_CENTER"
    cluster = "VCENTER_CLUSTER"
    resource_pool = "RESOURCE_POOL"
    datastore = "DATASTORE"
    ca_cert_data = "CA_CERT_DATA"
  }
  network_config {
    service_address_cidr_blocks = ["10.96.232.0/24"]
    pod_address_cidr_blocks = ["192.168.0.0/16"]
    vcenter_network = "NETWORK"
    dhcp_ip_config {
      enabled = true
    }
    host_config {
      dns_servers = ["DNS_SERVERS"]
      ntp_servers = ["NTP_SERVERS"]
    }
    ha_control_plane_config {
      control_plane_ip_block {
        gateway = "GATEWAY"
        netmask = "NETMASK"
        ips {
          hostname = "CONTROL_PLANE_HOST_1"
          ip       = "CONTROL_PLANE_NODE_IP_1"
        }
        ips {
          hostname = "CONTROL_PLANE_HOST_2"
          ip       = "CONTROL_PLANE_NODE_IP_2"
        }
        ips {
          hostname = "CONTROL_PLANE_HOST_3"
          ip       = "CONTROL_PLANE_NODE_IP_3"
        }
      }
    }
  }
  control_plane_node {
     cpus = NUM_CPUS
     memory = MEMORY
     replicas = 3
  }
  load_balancer {
    vip_config {
      control_plane_vip = "CONTROL_PLANE_VIP"
    }
    metal_lb_config {
      enabled = true
    }
  }
}

Haz los cambios siguientes:

  • ADMIN_CLUSTER_NAME: el nombre del clúster de administrador. El nombre tiene una longitud máxima de 20 caracteres.

  • PROJECT_ID: el ID del proyecto. Google Cloud

  • REGION: la región en la que se ejecutan la API GKE On-Prem (gkeonprem.googleapis.com), el servicio de flota (gkehub.googleapis.com) y el servicio Connect (gkeconnect.googleapis.com). Google Cloud Especifica us-west1 u otra región admitida.

    El campo location corresponde a la marca --location del comando gkectl register bootstrap.

  • DESCRIPTION: una descripción del clúster de administrador.

  • VERSION: la versión de Google Distributed Cloud del clúster. La creación de clústeres con Terraform solo se admite en las versiones 1.28 y posteriores. La versión que especifiques aquí debe coincidir con la versión del paquete que especifiques en la marca --bundle-path del comando gkectl register bootstrap. Para ver una lista de las versiones, consulta Versiones de Google Distributed Cloud.

  • IMAGE_TYPE: el tipo de imagen del SO que se ejecutará en los nodos del clúster de administrador. Especifique una de las siguientes opciones: "ubuntu_containerd", "cos", "ubuntu_cgv2" o "cos_cgv2".

  • VCENTER_ADDRESS: la dirección del servidor de vCenter.

    • Archivo de configuración de estación de trabajo de administrador: usa el valor del campo vCenter.credentials.address.

    • El campo vcenter.address corresponde a la marca --vcenter-address del comando gkectl register bootstrap.

  • DATA_CENTER: el nombre de tu centro de datos de vCenter.

    • Archivo de configuración de estación de trabajo de administrador: usa el valor del campo vCenter.datacenter.

    • El campo vcenter.datacenter corresponde a la marca --vcenter-datacenter del comando gkectl register bootstrap.

  • VCENTER_CLUSTER: el nombre de tu clúster de vCenter.

    • Archivo de configuración de estación de trabajo de administrador: usa el valor del campo vCenter.cluster.

    • El campo vcenter.cluster corresponde a la marca --vcenter-cluster del comando gkectl register bootstrap.

  • RESOURCE_POOL: el nombre o la ruta de tu grupo de recursos de vCenter.

    • Archivo de configuración de estación de trabajo de administrador: usa el valor del campo vCenter.resourcePool.

    • El campo vcenter.resource_pool corresponde a la marca --vcenter-resource-pool del comando gkectl register bootstrap.

  • DATASTORE: el nombre de tu almacén de datos de vCenter. El valor que especifique debe ser un nombre, no una ruta. Si necesitas introducir una ruta, añade el siguiente campo: folder = "FOLDER".

    • Archivo de configuración de estación de trabajo de administrador: usa el valor del campo vCenter.datastore.

    • El campo vcenter.datastore corresponde a la marca --vcenter-datastore del comando gkectl register bootstrap.

    Si quieres usar una política de almacenamiento de VMs para los nodos del clúster, elimina el campo vcenter.datastore y añade vcenter.storage_policy_name. Además, añade la marca --vcenter-storage-policy al comando gkectl register bootstrap. Debe especificar un valor para vcenter.datastore o vcenter.storage_policy_name, pero no para ambos.

  • FOLDER: el nombre de la carpeta de vCenter en la que se encontrarán las VMs de tu clúster. Si no usas ninguna carpeta, elimina este campo.

    • Archivo de configuración de estación de trabajo de administrador: usa el valor del campo vCenter.folder.

    • El campo vcenter.folder se corresponde con la marca --vcenter-folder del comando gkectl register bootstrap.

  • CA_CERT_DATA: introduce el certificado de AC de vCenter en formato PEM. Para obtener los datos del certificado de CA, sigue estos pasos:

    1. Ejecuta el siguiente comando:

      cat CA_CERT_PATH_LOCAL |  tr '\n' '\\n'
      

      Sustituye CA_CERT_PATH_LOCAL por la ruta al certificado de AC raíz de tu vCenter Server. Si has usado gkeadm para crear tu estación de trabajo de administrador, puedes usar el valor del campo caCertPath del archivo de configuración de la estación de trabajo de administrador, que es la ruta de tu ordenador local. gkeadm copió el archivo de certificado de la AC en tu estación de trabajo de administrador. Debe especificar la ruta de la estación de trabajo de administrador en la marca --vcenter-ca-cert-path del comando gkectl register bootstrap.

    2. Copia el certificado que se ha generado con el comando anterior y pégalo en un editor de texto. Sustituye todas las instancias del carácter de barra invertida (\) por un carácter de salto de línea (\n).

    3. Copia el certificado modificado y pégalo en la variable de marcador de posición CA_CERT_DATA.

  • NETWORK: introduce el nombre de tu red de vCenter.

    • Archivo de configuración de estación de trabajo de administrador: usa el valor del campo vCenter.network.

    • El campo network_config.vcenter_network corresponde a la marca --vcenter-network del comando gkectl register bootstrap.

  • GATEWAY: la dirección IP de la pasarela predeterminada de la subred que tiene los nodos del clúster del plano de control.

  • NETMASK: la máscara de red de la subred que tiene los nodos del clúster del plano de control.

  • DNS_SERVERS: la dirección IP del servidor DNS.

  • NTP_SERVERS: la dirección IP del servidor de hora (NTP).

  • Introduce las direcciones IP y, opcionalmente, el nombre de host de los tres nodos del plano de control en la sección control_plane_ip_block.ips. Si no introduces ningún nombre de host, elimina los campos hostname de la configuración.

  • NUM_CPUS : número de vCPUs de cada nodo del plano de control del clúster de administrador. Debe ser de 4 como mínimo.

  • MEMORY: número de mebibytes de memoria de cada nodo del plano de control del clúster de administrador. Debe ser de 8192 como mínimo, pero recomendamos 16384.

  • CONTROL_PLANE_VIP: la dirección IP que has elegido para configurar en el balanceador de carga del servidor de la API de Kubernetes del clúster de administrador.

Verificar el archivo de configuración y el plan

En el directorio donde se encuentra main.tf, ejecuta los siguientes comandos:

  1. Inicializa Terraform:

    terraform init
    

    Terraform instala las bibliotecas necesarias, como el Google Cloud proveedor. Corrige los errores de maint.tf si es necesario.

  2. Crea el plan de Terraform:

    terraform plan -out tfplan
    

    Revisa la configuración y haz los cambios que necesites.

Antes de aplicar el plan, primero debes crear el clúster de arranque, tal como se describe en la sección siguiente.

Crear el clúster de arranque

Cuando ejecutas el comando gkectl register bootstrap, se te pide el nombre de usuario y la contraseña de la cuenta de vCenter. Asegúrate de tener las credenciales a mano. Si has usado gkeadm para crear la estación de trabajo de administrador, el nombre de usuario y la contraseña se encuentran en el archivo credential.yaml.

  1. Inicia sesión en tu estación de trabajo de administrador mediante SSH.

  2. Autentícate con Google Cloud CLI:

    gcloud auth login
    
  3. Ejecuta el siguiente comando para crear el clúster de arranque. Muchos de los valores de las marcas son los mismos que en los campos main.tf. Sin embargo, el comando requiere valores adicionales que debe especificar en las variables de marcador de posición proporcionadas.

    gkectl register bootstrap \
        --target-cluster-name=ADMIN_CLUSTER_NAME \
        --project-id=PROJECT_ID \
        --location=REGION \
        --vcenter-address=VCENTER_ADDRESS \
        --vcenter-datacenter=DATA_CENTER \
        --vcenter-cluster=VCENTER_CLUSTER \
        --vcenter-resource-pool=RESOURCE_POOL \
        --vcenter-datastore=DATASTORE \
        --vcenter-network=NETWORK \
        --vcenter-ca-cert-path=CA_CERT_PATH \
        --bundle-path=BUNDLE_PATH \
        --component-access-service-account-key-path=COMPONENT_ACCESS_SA_PATH \
        --register-service-account-key-path=CONNECT_REGISTER_SA_PATH \
        --stackdriver-service-account-key-path=LOG_MON_SA_PATH \
        --cloud-audit-logging-service-account-key-path=CLOUD_AUDIT_SA_PATH
    

    Sustituye lo siguiente por las rutas de la estación de trabajo de administrador:

    • CA_CERT_PATH: la ruta al certificado de CA raíz de tu servidor vCenter.
    • BUNDLE_PATH: la ruta al archivo del paquete. Si has usado gkeadm para crear la estación de trabajo de administrador, el archivo del paquete se encuentra en /var/lib/gke/bundles/. El nombre del archivo depende de la versión de Google Distributed Cloud. Por ejemplo, gke-onprem-vsphere-1.31.0-gke.889-full.tgz.
    • COMPONENT_ACCESS_SA_PATH: la ruta al archivo de claves de la cuenta de servicio de acceso a componentes.
    • CONNECT_REGISTER_SA_PATH: la ruta al archivo de claves de la cuenta de servicio connect-register.
    • LOG_MON_SA_PATH: la ruta al archivo de claves de la cuenta de servicio de registro y monitorización.
    • CLOUD_AUDIT_SA_PATH: la ruta a la cuenta de servicio de registro de auditoría. Si no has creado una cuenta de servicio de registro de auditoría, especifica la ruta al archivo de claves de la cuenta de servicio de registro y monitorización.

    Modifica el comando según sea necesario para las siguientes marcas:

    • Si has especificado una carpeta en main.tf, añade la siguiente marca: --vcenter-folder=FOLDER
    • Si has especificado una política de almacenamiento de VMs en main.tf, quita --vcenter-datastore y añade la siguiente marca: --vcenter-storage-policy-name=STORAGE_POLICY_NAME
    • Si la red en la que se encontrará tu estación de trabajo de administrador está detrás de un servidor proxy, añade las siguientes marcas: --proxy-url=PROXY_URL y --no-proxy=NO_PROXY. Sustituye PROXY_URL por la URL del servidor proxy y NO_PROXY por el valor de los dominios y las direcciones IP excluidos del proxy, separados por comas.

    Si añades un indicador, asegúrate de añadir la barra invertida de continuación de la línea de comandos (\).

  4. Cuando se te pida, introduce (o copia y pega) el nombre de usuario de vCenter. El nombre de usuario no se muestra en la pantalla.

  5. Cuando se te solicite, introduce (o copia y pega) la contraseña de vCenter. La contraseña no se muestra en la pantalla.

El comando ejecuta numerosas validaciones. Una vez que gkectl cree correctamente el clúster de arranque, verás un resultado similar al siguiente, que se ha acortado para facilitar la lectura:

Running workstation validations
- Validation Category: Workstation
    - [SUCCESS] Workstation OS
    - [SUCCESS] Workstation Hardware
    - [SUCCESS] Workstation Package
    - [SUCCESS] Workstation NTP
    - [SUCCESS] Workstation Docker
...
All validation results were SUCCESS.
Unpacking GKE on-prem bundle: /var/lib/gke/bundles/gke-onprem-vsphere-1.31.0-gke.889-full.tgz
...
Successfully created and registered the bootstrap cluster
...
Waiting for preflight checks to run or OnPremAdminCluster to be applied...... -

El proceso se sigue ejecutando hasta que se crea el clúster de administrador.

Si sales del comando gkectl register bootstrap antes de que se cree el clúster de administrador, se producirá un error en la creación del clúster de administrador y tendrás que eliminar el clúster de arranque con el siguiente comando:

gkectl delete bootstrap \
    --target-cluster-name=ADMIN_CLUSTER_NAME \
    --project-id=PROJECT_ID \
    --location=REGION \
     --register-service-account-key-path=CONNECT_REGISTER_SA_PATH

Crear el clúster de administrador

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

terraform apply "tfplan"

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

Consola

Descripción general del procedimiento

Antes de crear el clúster de administrador, debes ejecutar el comando gkectl register bootstrap en tu estación de trabajo de administrador. Este comando 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 el clúster de administrador. Cuando creas el clúster de administrador, los controladores del clúster de arranque aprovisionan nodos, ejecutan comprobaciones previas y registran el clúster de administrador en la flota. El clúster de arranque se elimina automáticamente después de que se haya creado correctamente el clúster de administrador.

A continuación, se indican los pasos generales para crear un clúster de administrador mediante la consola:

  1. En la consola, debes introducir la información que requiere gkectl register bootstrap. La consola muestra el comando gkectl register bootstrap con la información que has introducido. El comando que se muestra también incluye marcas de las rutas que tendrás que especificar antes de ejecutar el comando.

  2. En tu estación de trabajo de administrador, ejecuta gkectl register bootstrap para crear el clúster de arranque. Cuando el comando termine de crear el clúster de arranque, el resultado te indicará que completes la configuración del clúster de administrador. El proceso se sigue ejecutando hasta que se crea el clúster de administrador.

  3. Vuelve a la consola para terminar de introducir la información necesaria para crear el clúster. Durante la creación del clúster, el comando gkectl register bootstrap muestra información sobre el progreso y escribe registros en tu estación de trabajo de administrador. Cuando se crea el clúster de administrador, el clúster de arranque se elimina automáticamente.

Empezar a configurar el clúster

  1. En la consola, ve a la página Crear un clúster en VMware.

    Ir a Crear un clúster en VMware

  2. Selecciona el Google Cloud proyecto en el que quieras crear el clúster.

    Cuando crees el clúster de arranque en una sección posterior, el ID de proyecto seleccionado se mostrará en el comando gkectl register bootstrap en la marca --project-id.

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

  4. Haz clic en Siguiente: Instalar el entorno de bootstrap.

Instalar el entorno de arranque

En esta sección, debes introducir la información que requiere el comando gkectl register bootstrap. A medida que introduces valores en los campos de la interfaz de usuario, la consola copia los valores en las marcas correspondientes del comando gkectl register bootstrap que se muestra en la sección Entorno de Bootstrap desde la estación de trabajo del administrador, en la parte inferior de la página.

Aspectos básicos del entorno de arranque

  1. Introduce un nombre para el clúster de administrador. La consola usa el nombre del clúster como valor de la marca --target-cluster-name en el comando gkectl register bootstrap que se muestra en la parte inferior de la página. El nombre tiene una longitud máxima de 20 caracteres.

  2. En el campo Google Cloud Ubicación de la API, selecciona una Google Cloud región de la lista. Este ajuste especifica la región en la que se ejecutan las siguientes APIs y servicios:

    • API de GKE On-Prem (gkeonprem.googleapis.com)
    • Servicio de flota (gkehub.googleapis.com)
    • Conectar servicio (gkeconnect.googleapis.com)

    Este ajuste también controla la región en la que se almacenan los siguientes elementos:

    • Los metadatos del clúster que necesita la API de GKE On-Prem para gestionar 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 campo Google Cloud API Location corresponde a la marca --location del comando gkectl register bootstrap.

  3. En el campo Admin cluster version (Versión del clúster de administrador), introduce la versión que se usará para crear el clúster. La versión que selecciones aquí debe coincidir con la versión del paquete que especifiques en la marca --bundle-path del comando gkectl register bootstrap.

Configuración de vCenter

Si has usado gkeadm para crear tu estación de trabajo de administrador, abre el archivo de configuración de la estación de trabajo de administrador para poder copiar los valores de la sección vCenter en los campos de la consola. Ten en cuenta que el archivo de configuración del clúster de administrador generado también contiene esta información.

La mayoría de los campos de esta sección son inmutables. Consulta la sección vCenter del archivo de referencia de configuración del clúster de administrador para saber si un campo se puede modificar o no.

  1. En el campo Dirección, introduce la dirección del servidor de vCenter.

    • Archivo de configuración de estación de trabajo de administrador: usa el valor del campo vCenter.credentials.address.

    • El campo Address corresponde a la marca --vcenter-address del comando gkectl register bootstrap.

  2. En el campo Datacenter (Centro de datos), introduce el nombre de tu centro de datos de vCenter.

    • Archivo de configuración de estación de trabajo de administrador: usa el valor del campo vCenter.datacenter.

    • El campo Datacenter corresponde a la marca --vcenter-datacenter del comando gkectl register bootstrap.

  3. En el campo Nombre del clúster, introduce el nombre de tu clúster de vCenter.

    • Archivo de configuración de estación de trabajo de administrador: usa el valor del campo vCenter.cluster.

    • El campo Nombre del clúster corresponde a la marca --vcenter-cluster del comando gkectl register bootstrap.

  4. En el campo Grupo de recursos, introduce el nombre o la ruta de tu grupo de recursos de vCenter.

    • Archivo de configuración de estación de trabajo de administrador: usa el valor del campo vCenter.resourcePool.

    • El campo Grupo de recursos corresponde a la marca --vcenter-resource-pool del comando gkectl register bootstrap.

  5. Configura una opción de almacenamiento introduciendo una de las siguientes:

    • Campo Datastore (Almacén de datos): introduce el nombre de tu almacén de datos de vCenter. El valor que especifique debe ser un nombre, no una ruta. Si tienes que introducir una ruta, hazlo en el campo Carpeta.

      • Archivo de configuración de estación de trabajo de administrador: usa el valor del campo vCenter.datastore.

      • El campo Datastore se corresponde con la marca --vcenter-datastore del comando gkectl register bootstrap.

    • Campo Nombre de la política de almacenamiento: introduce el nombre de la política de almacenamiento de la VM de los nodos del clúster. Para obtener más información, consulta Configurar una política de almacenamiento.

      • Archivo de configuración de estación de trabajo de administrador: usa el valor del campo vCenter.storagePolicyName.

      • El campo Nombre de la política de almacenamiento corresponde a la marca --vcenter-storage-policy del comando gkectl register bootstrap.

    Debe introducir un valor en el campo Datastore o en el campo Storage Policy Name (Nombre de la política de almacenamiento), pero no en ambos.

  6. Opcionalmente, en el campo Folder (Carpeta), introduce el nombre de la carpeta de vCenter en la que se ubicarán las VMs de tu clúster.

    • Archivo de configuración de estación de trabajo de administrador: usa el valor del campo vCenter.folder.

    • El campo Folder corresponde a la marca --vcenter-folder del comando gkectl register bootstrap.

  7. En el campo Red, introduce el nombre de tu red de vCenter.

    • Archivo de configuración de estación de trabajo de administrador: usa el valor del campo vCenter.network.

    • El campo Network corresponde a la marca --vcenter-network del comando gkectl register bootstrap.

  8. En el campo Ruta del certificado de la AC, introduce la ruta del certificado de la AC raíz de tu servidor vCenter.

    • Si has usado gkeadm para crear tu estación de trabajo de administrador, gkeadm ha copiado el archivo de certificado de la AC que tenías localmente en tu estación de trabajo de administrador.

    • El campo Ruta del certificado de CA corresponde a --vcenter-ca-cert-path en el comando gkectl register bootstrap.

Obtener el certificado de la AC

Después de crear el clúster de arranque, deberá proporcionar el certificado de AC de vCenter en formato PEM en el campo Datos del certificado de AC de la página Información básica del clúster. Ejecuta el siguiente comando para mostrar el certificado:

cat CA_CERT_PATH

Sustituye CA_CERT_PATH por la ruta al certificado de AC raíz de tu vCenter Server. Si ejecutas este comando de forma local, usa la ruta de vCenter.caCertPath en el archivo de configuración de tu estación de trabajo de administrador.

Copia todo el certificado en un editor de texto para poder pegarlo en el campo Datos del certificado de AC de la página Información básica del clúster después de crear el clúster de arranque.

Entorno de arranque desde una estación de trabajo de administrador

Cuando ejecutas el comando gkectl register bootstrap, se te pide el nombre de usuario y la contraseña de la cuenta de vCenter. Asegúrate de tener las credenciales a mano. Si has usado gkeadm para crear la estación de trabajo de administrador, el nombre de usuario y la contraseña se encuentran en el archivo credential.yaml.

  1. Desplázate a la sección Entorno de arranque desde la estación de trabajo del administrador para ver el comando gkectl register bootstrap.

    Deja esta página abierta mientras vas a tu estación de trabajo de administrador para crear el clúster de arranque.

  2. Copia y pega el comando gkectl register bootstrap en un editor de texto para poder especificar los valores de las siguientes marcas:

        ./gkectl register bootstrap \
          ...
          --bundle-path=BUNDLE_PATH \
          ...
          --component-access-service-account-key-path=COMPONENT_ACCESS_SA_PATH \
          --register-service-account-key-path=CONNECT_REGISTER_SA_PATH \
          --stackdriver-service-account-key-path=LOG_MON_SA_PATH \
          --cloud-audit-logging-service-account-key-path=CLOUD_AUDIT_SA_PATH
    

    Sustituye lo siguiente por las rutas de la estación de trabajo de administrador:

    • BUNDLE_PATH: la ruta al archivo del paquete. Si has usado gkeadm para crear la estación de trabajo de administrador, el archivo del paquete se encuentra en /var/lib/gke/bundles/. El nombre del archivo depende de la versión de Google Distributed Cloud. Por ejemplo, gke-onprem-vsphere-1.31.0-gke.889-full.tgz.
    • COMPONENT_ACCESS_SA_PATH: la ruta al archivo de claves de la cuenta de servicio de acceso a componentes.
    • CONNECT_REGISTER_SA_PATH: la ruta al archivo de claves de la cuenta de servicio connect-register.
    • LOG_MON_SA_PATH: la ruta al archivo de claves de la cuenta de servicio de registro y monitorización.
    • CLOUD_AUDIT_SA_PATH: la ruta a la cuenta de servicio de registro de auditoría. Si no has creado una cuenta de servicio de registro de auditoría, especifica la ruta al archivo de claves de la cuenta de servicio de registro y monitorización.

    Además, si ha usado gkeadm para crear su estación de trabajo de administrador, gkectl se ha descargado en el directorio /usr/bin/. En este caso, elimina ./ del principio del comando, ya que gkectl no está en el directorio de trabajo actual.

  3. Usa SSH para conectarte a tu estación de trabajo de administrador.

  4. Copia el comando y pégalo en una ventana de terminal de tu estación de trabajo de administrador.

  5. Cuando se te pida, introduce (o copia y pega) el nombre de usuario de vCenter. El nombre de usuario no se muestra en la pantalla.

  6. Cuando se te solicite, introduce (o copia y pega) la contraseña de vCenter. La contraseña no se muestra en la pantalla.

El comando ejecuta numerosas validaciones. Una vez que gkectl cree correctamente el clúster de arranque, verás un resultado similar al siguiente, que se ha acortado para facilitar la lectura:

Running workstation validations
- Validation Category: Workstation
    - [SUCCESS] Workstation OS
    - [SUCCESS] Workstation Hardware
    - [SUCCESS] Workstation Package
    - [SUCCESS] Workstation NTP
    - [SUCCESS] Workstation Docker
...
All validation results were SUCCESS.
Unpacking GKE on-prem bundle: /var/lib/gke/bundles/gke-onprem-vsphere-1.31.0-gke.889-full.tgz
...
Successfully created and registered the bootstrap cluster
...
Waiting for preflight checks to run or OnPremAdminCluster to be applied...... -

El proceso se sigue ejecutando hasta que se crea el clúster de administrador.

Si sales del comando gkectl register bootstrap antes de que se cree el clúster de administrador, se producirá un error en la creación del clúster de administrador y tendrás que eliminar el clúster de arranque con el siguiente comando:

gkectl delete bootstrap \
    --target-cluster-name=ADMIN_CLUSTER_NAME \
    --project-id=PROJECT_ID \
    --location=REGION \
     --register-service-account-key-path=CONNECT_REGISTER_SA_PATH

Terminar de configurar el clúster de administradores

Vuelve a la consola y sigue estos pasos:

  1. En la página Install bootstrap environment (Instalar entorno de bootstrap), haz clic en Check Connection (Comprobar conexión).

    Si se realiza correctamente, la consola mostrará Conexión establecida.

    La conexión con el clúster de arranque debe establecerse antes de continuar. Si no se establece la conexión, comprueba los argumentos que has especificado en el comando gkectl register bootstrap:

    • Comprueba que el valor de --target-cluster-name coincida con el nombre del clúster de administrador que se muestra en la sección Pasos básicos del entorno de arranque.

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

    Si necesitas cambiar el nombre del clúster de arranque, el ID del proyecto u otros valores de las marcas, haz lo siguiente:

    1. Introduce Ctrl-C para salir de gkectl register bootstrap.
    2. Elimina el clúster de arranque:

      gkectl delete bootstrap \
        --target-cluster-name=ADMIN_CLUSTER_NAME \
        --project-id=PROJECT_ID \
        --location=REGION \
        --register-service-account-key-path=CONNECT_REGISTER_SA_PATH
      
    3. Vuelve a ejecutar el comando gkectl register bootstrap.

  2. Haz clic en Siguiente: conceptos básicos del clúster para empezar a configurar el clúster de administrador.

Información básica de los clústeres

  1. En el campo Datos del certificado de la AC, copie y pegue todo el certificado de la AC de vCenter en formato PEM, tal como se ha descrito anteriormente en la sección Obtener el certificado de la AC.

  2. En la sección Autorización, introduce las direcciones de correo de los usuarios a los que quieras asignar el rol de Kubernetes clusterrole/view de solo lectura. Verás que tu dirección de correo se añade automáticamente. Las políticas de control de acceso basado en roles (RBAC) que se aplican permiten a los usuarios ejecutar comandos de solo lectura a través de la pasarela de conexión.

  3. Haz clic en Siguiente plano de control.

Plano de control

  1. Revisa la configuración predeterminada en la sección Plano de control y cámbiala según sea necesario.

  2. En la sección IPs de nodos del plano de control, introduce las direcciones IP en los siguientes campos:

    • Pasarela: la dirección IP de la pasarela predeterminada de la subred que tiene los nodos del clúster.

    • Máscara de red: la máscara de red de la subred que tiene los nodos del clúster.

    • Direcciones IP: introduce la dirección IP y, opcionalmente, el nombre de host de los tres nodos del plano de control.

  3. Haz clic en Siguiente: Redes.

Redes

En esta sección, se especifica la información de red necesaria para crear el clúster de administrador.

  1. En la sección CIDRs de servicios y pods, acepta los valores predeterminados de los intervalos de direcciones IP de los servicios y los pods de Kubernetes o introduce otros intervalos de direcciones CIDR.

    • CIDR de servicio: el intervalo más pequeño posible es /24. Intervalo más amplio posible: /12.

    • CIDR de pod: el intervalo más pequeño posible es /18. El intervalo más grande posible es /8.

  2. En la sección Configuración de host, especifica los servidores NTP, los servidores DNS y, opcionalmente, los dominios de búsqueda de DNS que usan las VMs que son los nodos de tu clúster. Una vez creado el clúster, no podrá modificar estos valores.

  3. Haz clic en Siguiente: Balanceador de carga.

Balanceador de carga

En esta sección, se selecciona el tipo de balanceador de carga que se va a usar. Para obtener más información, consulta la información general sobre el balanceo de carga.

  1. En la lista Tipo de balanceador de carga, selecciona un balanceador de carga:

    • Incluido con MetalLB: el balanceador de carga MetalLB se incluye y requiere menos configuración que el balanceo de carga manual. Los componentes de MetalLB se ejecutan en los nodos del clúster, por lo que no tienes que crear VMs independientes para el balanceador de carga.

    • Manual: puedes usar el balanceador de carga que quieras, siempre que lo configures antes de crear el clúster. Con cualquier balanceador de carga que configures manualmente, debes configurar las asignaciones entre las IPs virtuales (VIPs), las direcciones de los nodos y los valores de nodePort.

  2. En el campo VIP del plano de control, introduce la VIP que se usará para el tráfico enviado al servidor de la API de Kubernetes.

  3. Haz clic en Verificar y crear.

    La consola muestra mensajes de estado a medida que verifica los ajustes y crea el clúster en tu centro de datos.

    Si hay algún problema con la configuración, la consola mostrará un mensaje de error que debería ser lo suficientemente claro para que puedas solucionar el problema de configuración e intentar crear el clúster de nuevo.

Los detalles sobre el proceso de creación del clúster se muestran en tu estación de trabajo de administrador. Si las comprobaciones preparatorias se completan correctamente, verás algo similar a 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 gkectl-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 gkectl-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.

Conectarse al clúster de administrador

El comando gkectl register bootstrap crea un archivo kubeconfig para el clúster de administradores en tu estación de trabajo de administrador. El directorio en el que se encuentra kubeconfig y el nombre de archivo se basan en el nombre del clúster de administrador de la siguiente manera:

gkectl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig

Debes restringir el acceso a este kubeconfig porque contiene credenciales de autenticación del clúster.

Además, puedes ejecutar comandos de solo lectura kubectl a través de la pasarela de conexión.

  1. Ejecuta el siguiente comando en un ordenador que tenga la CLI de gcloud para obtener una entrada kubeconfig que pueda acceder al clúster a través de la pasarela de conexión.

    gcloud container fleet memberships get-credentials ADMIN_CLUSTER_NAME \
        --project=PROJECT_ID
    

    El resultado debería ser 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.
    
  2. Ahora puedes ejecutar comandos de solo lectura kubectl a través de la pasarela de conexión:

    kubectl get pods -A
    

    Si necesitas privilegios de administrador completos para el clúster de administrador, consulta Configurar la pasarela de conexión.

Solución de problemas

Consulta Solucionar problemas de creación y actualización de clústeres.

Siguientes pasos

Crear un clúster de usuarios