Crear un clúster de administrador

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

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

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

En la versión 1.33 y versiones posteriores, todos los clústeres nuevos se crean como clústeres avanzados. Asegúrate de revisar las diferencias cuando ejecutes clústeres avanzados.

Antes de comenzar

  • Asegúrate de haber configurado tu estación de trabajo de administrador y de poder acceder a ella como se describe en Crea una estación de trabajo de administrador.

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

  • Revisa el documento de planificación de direcciones IP. Asegúrate de tener suficientes direcciones IP disponibles para los tres nodos del plano de control y una VIP del plano de control. Si planeas crear clústeres de usuario de kubeception, debes tener suficientes direcciones IP disponibles para los nodos del plano de control de esos clústeres de usuario.

  • Revisa la descripción general del balanceo de cargas y revisa la decisión sobre el tipo de balanceador de cargas que deseas usar. En el caso de los balanceadores de cargas manuales, debes configurarlos antes de crear el clúster de administrador.

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

  • Decide qué tipo de sistema operativo deseas ejecutar en los nodos del 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 entidades permitidas las APIs requeridas y la dirección de Artifact Registry.

  • En la versión 1.29 y versiones posteriores, las verificaciones previas del servidor están habilitadas de forma predeterminada. Las verificaciones previas a la solicitud del servidor requieren reglas de firewall adicionales. En Reglas de firewall para clústeres de administrador, busca "Verificaciones previas al vuelo" y asegúrate de que todas las reglas de firewall necesarias estén configuradas. Las comprobaciones previas del servidor se ejecutan en el clúster de arranque en lugar de forma local en la estación de trabajo de administrador.

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

En esta sección, se proporcionan los pasos para crear un clúster de administrador con gkectl, Terraform y la consola de Google Cloud . Para obtener información que te ayude a elegir una herramienta y conocer las limitaciones de algunas de ellas, consulta Elige una herramienta para administrar el ciclo de vida del clúster.

gkectl

Descripción general del procedimiento

Estos son los pasos principales que se deben seguir para crear un clúster de administrador:

  1. Completa los archivos de configuración.
    Especifica los detalles de tu clúster de administrador nuevo mediante la finalización y validación de un archivo de configuración del clúster de administrador, un archivo de configuración de credenciales y, posiblemente, un archivo de bloque de IP.
  2. Importa imágenes de SO a vSphere y, luego, envía imágenes de contenedores al registro privado.
    Ejecutar gkectl prepare.
  3. Crea un clúster de administrador.
    Usa gkectl para crear un clúster de administrador nuevo como se especifica en los archivos de configuración completos. Cuando Google Distributed Cloud crea un clúster de administrador, implementa un clúster de Kubernetes en Docker (similar) para alojar de forma temporal los controladores de Kubernetes necesarios para crear el clúster de administrador. Este clúster transitorio se denomina clúster de arranque. Los clústeres de usuario se crean y actualizan por su administrador sin usar un clúster de arranque.
  4. Verifica que el clúster de administrador esté en ejecución.
    Usa kubectl para ver los nodos del clúster.

Al final de este procedimiento, tendrás un clúster de administrador en ejecución que puedes usar para crear y administrar clústeres de usuarios.

Si usas los Controles del servicio de VPC, es posible que veas errores cuando ejecutes algunos comandos gkectl, como "Validation Category: GCP - [UNKNOWN] GCP service: [Stackdriver] could not get GCP services". Para evitar estos errores, agrega el parámetro --skip-validation-gcp a tus comandos.

Completa el archivo de configuración

  • Asegúrate de que tu estación de trabajo de administrador tenga la versión requerida de gkectl. Por lo general, usas la misma versión de gkectl que se usará cuando crees el clúster. Debes especificar la versión del clúster en el campo gkeOnPremVersion del archivo de configuración del clúster. Las siguientes reglas de versión se aplican durante la creación del clúster:

    • 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 de la versión 1.30 con la versión 1.29 de gkectl. Las versiones de parche no son importantes. Por ejemplo, puedes usar la versión gkectl 1.29.0-gke.1456 para crear un clúster con una versión del parche superior, como 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 creas 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 Descarga gkectl para obtener una versión compatible de gkectl.

Si usaste gkeadm para crear tu estación de trabajo de administrador, se generó un archivo de configuración llamado admin-cluster.yaml.

Si no usaste 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 sirve para crear tu clúster de administrador.

Familiarízate con el archivo de configuración mediante el análisis del documento del archivo de configuración del clúster de administrador. Se recomienda mantener este documento abierto en una pestaña o ventana separada, ya que harás referencia a él a medida que completes los siguientes pasos.

name

Si deseas especificar un nombre para el clúster de administrador, completa el campo name.

bundlePath

El paquete es un archivo comprimido que contiene componentes del clúster. Se incluye en la estación de trabajo de administrador. Ya se completó este campo.

vCenter

Los campos ya están completados con los valores que ingresaste cuando creaste tu estación de trabajo de administrador.

enableAdvancedCluster

En la versión 1.31, si deseas habilitar la función de clúster avanzado, establece enableAdvancedCluster en true.

Ten 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:

    • Puedes habilitar el clúster avanzado en el momento de la creación del clúster solo para los clústeres nuevos de la versión 1.31.

    • Después de habilitar el clúster avanzado, no podrás actualizarlo a la versión 1.32. Solo habilita el clúster avanzado en un entorno de prueba.

  • En la versión 1.32, la función de clúster avanzado está en DG.

    • De forma predeterminada, los clústeres de administrador se crean como clústeres avanzados. Debes establecer enableAdvancedCluster de forma explícita en false si deseas crear un clúster no avanzado.

    • En el caso de 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 versiones posteriores, todos los clústeres se crean como clústeres avanzados. Si configuras enableAdvancedCluster como false, la creación del clúster fallará.

network

Completa la sección network.controlPlaneIPBlock y la sección network.hostConfig. También establece adminMaster.replicas en 3.

Los campos network.podCIDR y network.serviceCIDR tienen valores prepropagados que puedes dejar sin modificar, a menos que entren en conflicto con direcciones que ya se usan en tu red. Kubernetes usa estos rangos para asignar direcciones IP a Pods y objetos Service en tu clúster.

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

loadBalancer

Reserva una VIP para el servidor de la API de Kubernetes del clúster de administrador. Proporciona tu VIP como el valor de loadBalancer.vips.controlPlaneVIP.

Para obtener más información, consulta VIP en la subred del clúster de administrador.

Decide qué tipo de balanceo de cargas quieres usar. Las opciones son las siguientes:

  • Balanceo de cargas en paquetes de MetalLB. Configura loadBalancer.kind como "MetalLB".

  • Balanceo de cargas manual. Configura loadBalancer.kind como "ManualLB" y quita la sección manualLB.

Para obtener más información sobre las opciones de balanceo de cargas, consulta Descripción general del balanceo de cargas.

antiAffinityGroups

Configura antiAffinityGroups.enabled como true o false según tus preferencias.

Usa este campo a fin de especificar si deseas que clústeres de Google Distributed Cloud cree reglas de antiafinidad de Distributed Resource Scheduler (DRS) para los nodos del clúster de administrador, lo que hace que se repartan en al menos tres hosts físicos del centro de datos

adminMaster

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

Los clústeres de administrador deben tener tres nodos del plano de control. Establece el campo replicas en la sección adminMaster como 3.

proxy

Si la red que tendrá los nodos del clúster de administrador está detrás de un servidor proxy, completa la sección proxy.

privateRegistry

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

  • Artifact Registry

  • Tu propio registro privado de Docker.

    Si deseas usar tu propio registro privado, completa la sección privateRegistry.

Para obtener más información sobre el uso de un registro privado, incluidas las diferencias entre los clústeres normales y los avanzados, consulta Configura un registro de contenedores privado.

componentAccessServiceAccountKeyPath

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

Ya se completó este campo.

gkeConnect

Registra tu clúster de administrador en una flota de Google Cloud completando la seccióngkeConnect. Si incluyes las secciones stackdriver y cloudAuditLogging en el archivo de configuración, el ID en gkeConnect.projectID debe ser el mismo que el ID establecido en stackdriver.projectID y cloudAuditLogging.projectID. Si los IDs de proyecto no son los mismos, la creación del clúster fallará.

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

Si incluyes gkeConnect.location, la región que especifiques debe ser la misma que la región configurada en cloudAuditLogging.clusterLocation, stackdriver.clusterLocation y gkeOnPremAPI.location. Si las regiones no son las mismas, la creación del clúster fallará.

gkeOnPremAPI

Si la API de GKE On-Prem está habilitada en tu proyecto deGoogle Cloud , todos los clústeres del proyecto se inscriben 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 región especificada en cloudAuditLogging.clusterLocation, gkeConnect.location y stackdriver.clusterLocation. Si las regiones no son las mismas, la creación del clúster fallará.

  • Si deseas inscribir todos los clústeres del proyecto en la API de GKE On-Prem, asegúrate de seguir los pasos que se indican en Antes de comenzar para activar y usar la API de GKE On-Prem en el proyecto.

  • Si no deseas inscribir el clúster en la API de GKE On-Prem, incluye esta sección y configura gkeOnPremAPI.enabled como false. Si no deseas inscribir ningún clúster en el proyecto, inhabilita gkeonprem.googleapis.com (el nombre del servicio para la API de GKE On-Prem) en el proyecto. Para obtener instrucciones, consulta Inhabilita servicios.

stackdriver

Si deseas habilitar Cloud Logging y Cloud Monitoring para tu clúster, completa la sección stackdriver.

Esta sección es obligatoria de forma predeterminada. Es decir, si no completas 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 de acceso en cloudAuditLogging.serviceAccountKeyPath y stackdriver.serviceAccountKeyPath.

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

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

Si los IDs de proyecto y las regiones no son los mismos, la creación del clúster fallará.

cloudAuditLogging

Si deseas integrar los registros de auditoría del servidor de la API de Kubernetes del clúster a los registros de auditoría de Cloud, completa la sección cloudAuditLogging.

Ten en cuenta los siguientes requisitos:

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

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

  • La región Google Cloud establecida en cloudAuditLogging.clusterLocation debe ser la misma que la región establecida 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 establecer la misma región en gkeOnPremAPI.location.

Si los IDs de proyecto y las regiones no son los mismos, la creación del clúster fallará.

clusterBackup

Si deseas habilitar la copia de seguridad del clúster de administrador, configura clusterBackup.datastore en el almacén de datos de vSphere en el que deseas guardar las copias de seguridad del clúster.

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

autoRepair

Si deseas habilitar la reparación automática de nodos para el clúster de administrador, configura autoRepair.enabled como true.

secretsEncryption

Si deseas habilitar la encriptación de secretos siempre activa, completa la sección secretsEncryption.

Si habilitas el clúster avanzado, establece secretsEncryption.enabled en false. No se admite la encriptación de Secrets siempre activa.

osImageType

Decide qué tipo de imagen de SO deseas usar para los nodos del clúster de administrador y completa la sección osImageType según corresponda.

Si habilitas el clúster avanzado, establece osImageType en ubuntu_cgroupv2 o ubuntu_containerd.

Ejemplo de archivos de configuración completados

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

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"

Valida tu archivo de configuración

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

gkectl check-config --config ADMIN_CLUSTER_CONFIG

Reemplaza ADMIN_CLUSTER_CONFIG por la ruta de acceso del archivo de configuración del clúster de administrador.

Si el comando muestra algún mensaje de error, soluciona los problemas y vuelve a validar el archivo.

Si deseas omitir las validaciones que llevan más tiempo, pasa la marca --fast. Para omitir validaciones individuales, usa las marcas --skip-validation-xxx. Para obtener más información sobre el comando check-config, consulta Ejecuta verificaciones previas.

Obtén imágenes de SO

Ejecuta gkectl prepare para inicializar el entorno de vSphere:

gkectl prepare --config ADMIN_CLUSTER_CONFIG

El comando gkectl prepare realiza las siguientes tareas de preparación:

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

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

  • De manera opcional, valida las certificaciones de compilación de las imágenes de contenedor a fin de verificar que las imágenes hayan sido compiladas y firmadas por Google y que estén listas para la implementación.

Crea el clúster de administrador:

Crea el clúster de administrador:

gkectl create admin --config ADMIN_CLUSTER_CONFIG

Si usas los Controles del servicio de VPC, es posible que veas errores cuando ejecutes algunos comandos gkectl, como "Validation Category: GCP - [UNKNOWN] GCP service: [Stackdriver] could not get GCP services". Para evitar estos errores, agrega el parámetro --skip-validation-gcp a tus comandos.

Reanuda la creación del clúster de administrador después de una falla

Si la creación del clúster de administrador falla o se cancela, puedes volver a ejecutar el comando create:

gkectl create admin --config ADMIN_CLUSTER_CONFIG

Ubica 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

En el resultado, se muestra el nombre del clúster. Por ejemplo:

NAME
gke-admin-tqk8x

Si lo deseas, puedes cambiar el nombre y la ubicación de tu archivo kubeconfig.

Administra el archivo checkpoint.yaml

Esta sección solo se aplica a los clústeres de administrador sin HA. El archivo checkpoint.yaml no se usa para crear clústeres de administrador con 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 del 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 mayor o igual que 245 caracteres, debido al límite de vSphere en la longitud del nombre de archivo, el nombre es DATA_DISK_NAME.yaml.

Este archivo contiene las credenciales y el estado del clúster de administrador, y se usa para actualizaciones futuras. No borres este archivo, a menos que sigas el proceso para borrar un clúster de administrador.

Si habilitaste la encriptación de VM en tu instancia de vCenter Server, debes tener el privilegio de acceso directo a operaciones criptográficas antes de crear o actualizar tu clúster de administrador. De lo contrario, no se subirá el punto de control. Si no puedes obtener este privilegio, puedes inhabilitar la carga del archivo de punto de control con la marca oculta --disable-checkpoint cuando ejecutes un comando relevante.

El archivo checkpoint.yaml se actualiza automáticamente cuando ejecutas el comando gkectl upgrade admin o cuando ejecutas un comando gkectl update que afecta el clúster de administrador.

Verifica que el clúster de administrador esté en ejecución

Verifica que el clúster de administrador esté en ejecución:

kubectl get nodes --kubeconfig ADMIN_CLUSTER_KUBECONFIG

Reemplaza ADMIN_CLUSTER_KUBECONFIG por la ruta de acceso del archivo kubeconfig del clúster de administrador.

En el resultado, se muestran 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   ...

Crea una copia de seguridad de tus archivos

Te recomendamos que crees una copia de seguridad del archivo kubeconfig del clúster de administrador. Es decir, copia el archivo kubeconfig de tu estación de trabajo de administrador a otra ubicación. Luego, si pierdes el acceso a la estación de trabajo de administrador o si el archivo kubeconfig de tu estación de trabajo de administrador se borra accidentalmente, seguirás teniendo acceso al clúster de administrador.

También te recomendamos que crees una copia de seguridad de la clave SSH privada de tu clúster de administrador. Luego, si pierdes el acceso al clúster de administrador, podrás usar SSH para conectarte a los nodos del clúster de administrador. Esto te permitirá solucionar e investigar cualquier problema de conectividad con el clúster de administrador.

Extrae la clave SSH del clúster de administrador a 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 de tu elección.

Políticas de RBAC

Cuando completas la sección gkeConnect en el archivo de configuración de tu clúster de administrador, el clúster se registra en tu flota durante la creación o la actualización. Para habilitar la funcionalidad de administració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 está registrado el clúster. El agente de Connect establece una conexión con la cuenta de servicio para controlar las solicitudes al servidor de la API de Kubernetes del clúster. Esto habilita el acceso a las funciones de administración de cargas de trabajo y clústeres en 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 solicitudes del agente de Connect. Para garantizar esto, las siguientes políticas de control de acceso basado en roles (RBAC) se configuran en la cuenta de servicio:

  • Una política de robo 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 permitidas en otros recursos de Kubernetes.

La cuenta de servicio y las políticas de RBAC son necesarias para que puedas administrar el ciclo de vida de los 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 la estación de trabajo de administrador. Este comando implementa un clúster de Kubernetes en Docker (kind) en la estación de trabajo del administrador. Este clúster de arranque aloja los controladores de Kubernetes necesarios para crear el clúster de administrador. Cuando crees el clúster de administrador, los controladores del clúster de arranque aprovisionarán nodos, ejecutarán verificaciones previas y registrarán el clúster de administrador en la flota. El clúster de arranque se borra automáticamente después de que se crea correctamente el clúster de administrador.

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

  1. Completa 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 de bootstrap.
    Ejecuta gkectl register bootstrap para crear el clúster de arranque. Cuando el comando termina de crear el clúster de arranque, el resultado te indica que debes completar la configuración del clúster de administrador. El proceso continúa ejecutándose hasta que se crea el clúster de administrador.
  3. Crea un clúster de administrador.
    En otra ventana de la terminal o en otra computadora que tenga acceso a la API de GKE On-Prem, ejecuta los comandos terraform para crear un clúster de administrador nuevo como se especifica en el archivo de configuración main.tf completo.

Completa el archivo de configuración

En el siguiente ejemplo, se muestra cómo crear un clúster de administrador con alta disponibilidad (HA) con tres nodos del plano de control con MetalLB. En la versión 1.28 y versiones posteriores, los clústeres de administración nuevos deben tener alta disponibilidad. Debido a este requisito, debes establecer 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 el uso de un registro privado para imágenes del sistema, consulta Configura un registro de contenedores privado.

Completa las variables de marcador de posición en el siguiente ejemplo y, luego, cópialo y pégalo en main.tf. Si usaste 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 que puedas copiar 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
    }
  }
}

Reemplaza lo siguiente:

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

  • PROJECT_ID: El ID del proyecto de Google Cloud .

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

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

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

  • VERSION: Es la versión de Google Distributed Cloud para el clúster. La creación de un clúster 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 obtener una lista de las versiones, consulta Versiones de Google Distributed Cloud.

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

  • VCENTER_ADDRESS: La dirección de vCenter Server.

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

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

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

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

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

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

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

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

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

    • Archivo de configuración de la 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 en el comando gkectl register bootstrap.

  • DATASTORE: Es el nombre de tu almacén de datos de vCenter. El valor que especifiques debe ser un nombre, no una ruta. Si necesitas ingresar una ruta, agrega el siguiente campo: folder = "FOLDER"

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

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

    Si deseas usar una política de almacenamiento de VM para los nodos del clúster, quita el campo vcenter.datastore y agrega vcenter.storage_policy_name en su lugar. Además, agrega la marca --vcenter-storage-policy al comando gkectl register bootstrap. Debes especificar un valor para vcenter.datastore o vcenter.storage_policy_name, pero no para ambos.

  • FOLDER: Es el nombre de la carpeta de vCenter en la que se ubicarán las VMs del clúster. Si no usas una carpeta, quita este campo.

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

    • El campo vcenter.folder corresponde a la marca --vcenter-folder en el comando gkectl register bootstrap.

  • CA_CERT_DATA: Ingresa el certificado de la CA de vCenter en formato PEM. Para obtener los datos del certificado de la AC, haz lo siguiente:

    1. Ejecuta el siguiente comando:

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

      Reemplaza CA_CERT_PATH_LOCAL por la ruta de acceso al certificado de CA raíz de tu servidor de vCenter. Si usaste gkeadm para crear tu estación de trabajo de administrador, puedes usar el valor del campo caCertPath en el archivo de configuración de la estación de trabajo de administrador, que es la ruta de acceso en tu computadora local. gkeadm copió el archivo de certificado de CA en tu estación de trabajo de administrador. Debes especificar la ruta de acceso 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 generó con el comando anterior y pégalo en un editor de texto. Reemplaza 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: Ingresa el nombre de tu red de vCenter.

    • Archivo de configuración de la 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 en el comando gkectl register bootstrap.

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

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

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

  • NTP_SERVERS: La dirección IP del servidor de tiempo (NTP).

  • Ingresa las direcciones IP y, de forma opcional, el nombre de host para los tres nodos del plano de control en la sección control_plane_ip_block.ips. Si no ingresas un nombre de host, quita los campos hostname de la configuración.

  • NUM_CPUS : Es la cantidad de CPU virtuales para cada nodo del plano de control en el clúster de administrador. Debe ser un mínimo de 4.

  • MEMORY: Es la cantidad de mebibytes de memoria para cada nodo del plano de control en el clúster de administrador. Debe ser de 8,192 como mínimo, pero recomendamos 16,384.

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

Opcional: Configura un registro privado

De forma predeterminada, durante la creación o actualización del clúster, Google Distributed Cloud extrae imágenes del sistema de gcr.io/gke-on-prem-release con la cuenta de servicio de acceso a componentes. De forma opcional, puedes proporcionar tu propio servidor de registro de contenedores para que las imágenes del sistema se extraigan de tu servidor de registro privado.

Para configurar un registro privado, haz lo siguiente:

  1. Agrega lo siguiente al archivo de configuración:

      private_registry_config {
        address = "ADDRESS"
        ca_cert = "CA_CERT"
      }
    

    Reemplaza lo siguiente:

    • ADDRESS: La dirección IP o el FQDN (nombre de dominio completamente calificado) de la máquina que ejecuta tu registro privado.

    • CA_CERT: Es la clave pública del certificado de la CA para el registro privado.

  2. Si tu red está detrás de un servidor proxy, agrega lo siguiente al archivo de configuración:

    proxy {
      url: "PROXY_SERVER_ADDRESS"
      no_proxy: "BYPASS_LIST"
    }
    

    Reemplaza lo siguiente:

    • PROXY_SERVER_ADDRESS: La dirección HTTP de tu servidor proxy. Debes incluir el número de puerto incluso si es el mismo que el puerto predeterminado del esquema.

    • BYPASS_LIST: Es una lista separada por comas de direcciones IP, rangos de direcciones IP, nombres de host y nombres de dominio que no deben pasar por el servidor proxy.

    Ejemplo:

    url: "http://my-proxy.example.local:80"
    no_proxy: "192.0.2.0/24,my-host.example.local,198.51.100.0"
    

    Cuando Google Distributed Cloud envía una solicitud a una de estas direcciones, hosts o dominios, la solicitud omite el servidor proxy y se envía directamente al destino.

Para obtener más información sobre el uso de un registro privado, incluidas las diferencias entre los clústeres normales y los avanzados, consulta Configura un registro de contenedores privado.

Verifica el archivo de configuración y el plan

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

  1. Inicializa Terraform mediante este comando:

    terraform init
    

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

  2. Crea el plan de Terraform:

    terraform plan -out tfplan
    

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

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

Crea el clúster de arranque

Cuando ejecutas el comando gkectl register bootstrap, se te solicita el nombre de usuario y la contraseña de la cuenta de vCenter. Asegúrate de tener las credenciales disponibles. Si usaste 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. Accede a tu estación de trabajo de administrador con SSH.

  2. Autentica 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, ten en cuenta que el comando toma valores adicionales que debes 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
    

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

    • CA_CERT_PATH: Es la ruta de acceso al certificado de CA raíz de tu servidor de vCenter.
    • BUNDLE_PATH: Es la ruta de acceso al archivo del paquete. Si usaste gkeadm para crear la estación de trabajo de administrador, el archivo de 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: Es la ruta de acceso al archivo de claves de la cuenta de servicio de acceso a componentes.
    • CONNECT_REGISTER_SA_PATH: Es la ruta de acceso al archivo de claves de la cuenta de servicio de connect-register.
    • LOG_MON_SA_PATH: Es la ruta de acceso al archivo de claves de la cuenta de servicio de supervisión y registro.
    • CLOUD_AUDIT_SA_PATH: Es la ruta de acceso a la cuenta de servicio de registro de auditoría. Si no creaste una cuenta de servicio de registro de auditoría, especifica la ruta de acceso al archivo de claves de la cuenta de servicio de supervisión de registros.

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

    • Si especificaste una carpeta en main.tf, agrega la siguiente marca: --vcenter-folder=FOLDER
    • Si especificaste una política de almacenamiento de VM en main.tf, quita --vcenter-datastore y agrega la siguiente marca: --vcenter-storage-policy-name=STORAGE_POLICY_NAME
    • Si tu estación de trabajo de administrador estará en una red detrás de un servidor proxy, agrega las siguientes marcas:

      • --proxy-url=PROXY_URL
      • --no-proxy=NO_PROXY

      Reemplaza lo siguiente:

      • PROXY_URL: Es la URL del servidor proxy.
      • NO_PROXY: Es el valor de los dominios y las direcciones IP excluidos del proxy, separados por comas.

    Si agregas una marca, asegúrate de agregar el carácter de barra inversa (\) de continuación de la línea de comandos.

  4. Cuando se te solicite, ingresa (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, ingresa (o copia y pega) la contraseña de vCenter. La contraseña no se muestra en la pantalla.

El comando ejecuta numerosas validaciones. Después de que gkectl cree correctamente el clúster de arranque, verás un resultado similar al siguiente, que se trunca 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 continúa ejecutándose 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, la creación fallará y deberás borrar el clúster de inicio 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

Crea 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 de Google Cloud en la página Clústeres de GKE.

Console

Descripción general del procedimiento

Antes de crear el clúster de administrador, debes ejecutar el comando gkectl register bootstrap en la estación de trabajo de administrador. Este comando implementa un clúster de Kubernetes en Docker (kind) en la estación de trabajo del administrador. Este clúster de arranque aloja los controladores de Kubernetes necesarios para crear el clúster de administrador. Cuando crees el clúster de administrador, los controladores del clúster de arranque aprovisionarán nodos, ejecutarán verificaciones previas y registrarán el clúster de administrador en la flota. El clúster de arranque se borra automáticamente después de que se crea correctamente el clúster de administrador.

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

  1. En la consola, ingresas la información que requiere gkectl register bootstrap. La consola muestra el comando gkectl register bootstrap con la información que ingresaste. El comando que se muestra también incluye marcas para las rutas que deberás 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 finalice la creación del clúster de arranque, el resultado te indicará que finalices la configuración del clúster de administrador. El proceso continúa ejecutándose hasta que se crea el clúster de administrador.

  3. Volverás a la consola para terminar de ingresar la información necesaria para crear el clúster. Durante la creación del clúster, el comando gkectl register bootstrap genera información de 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 borra automáticamente.

Comienza a configurar el clúster

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

    Ir a Crea un clúster en VMware

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

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

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

  4. Haz clic en Siguiente: Instala el entorno de arranque.

Instala el entorno de arranque

En esta sección, ingresarás la información que requiere el comando gkectl register bootstrap. A medida que ingresas valores en los campos de la IU, la consola los copia en las marcas correspondientes del comando gkectl register bootstrap que se muestra en la sección Entorno de arranque desde la estación de trabajo de administrador en la parte inferior de la página.

Conceptos básicos del entorno de arranque

  1. Ingresa un Nombre para el clúster de administrador. La consola usa el nombre del clúster como el 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 parámetro de configuración 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)
    • Servicio de Connect (gkeconnect.googleapis.com)

    Este parámetro de configuración también controla la región en la que se almacena lo siguiente:

    • Los metadatos del clúster que la API de GKE On-Prem necesita para administrar el ciclo de vida del clúster
    • Los datos de Cloud Logging y Cloud Monitoring de los componentes del sistema
    • El registro de auditoría de administrador creado por los registros de auditoría de Cloud

    El campo Google Cloud API Location corresponde a la marca --location en el comando gkectl register bootstrap.

  3. En el campo Versión del clúster de administrador, ingresa 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 usaste 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 que puedas copiar valores de la sección vCenter a 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 en la referencia del archivo de configuración del clúster de administrador si necesitas saber si un campo es mutable o inmutable.

  1. En el campo Dirección, ingresa la dirección de vCenter Server.

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

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

  2. En el campo Centro de datos, ingresa el nombre de tu centro de datos de vCenter.

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

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

  3. En el campo Cluster Name, ingresa el nombre de tu clúster de vCenter.

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

    • El campo Cluster Name corresponde a la marca --vcenter-cluster en el comando gkectl register bootstrap.

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

    • Archivo de configuración de la 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 en el comando gkectl register bootstrap.

  5. Configura una opción de almacenamiento. Para ello, ingresa una de las siguientes opciones:

    • Campo Almacén de datos: Ingresa el nombre de tu almacén de datos de vCenter. El valor que especifiques debe ser un nombre, no una ruta. Si necesitas ingresar una ruta, hazlo en el campo Carpeta.

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

      • El campo Datastore corresponde a la marca --vcenter-datastore en el comando gkectl register bootstrap.

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

      • Archivo de configuración de la 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 en el comando gkectl register bootstrap.

    Debes ingresar un valor en el campo Datastore o en el campo Nombre de la política de almacenamiento, pero no en ambos.

  6. De manera opcional, en el campo Carpeta, ingresa el nombre de la carpeta de vCenter en la que se ubicarán las VMs del clúster.

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

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

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

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

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

  8. En el campo Ruta de acceso al certificado de CA, ingresa la ruta de acceso al certificado de CA raíz de tu servidor de vCenter.

    • Si usaste gkeadm para crear tu estación de trabajo de administrador, gkeadm copió el archivo de certificado de CA que tenías de forma local en tu estación de trabajo de administrador.

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

Obtén el certificado de la CA

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

cat CA_CERT_PATH

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

Copia todo el certificado en un editor de texto para que puedas pegarlo en el campo Datos del certificado de CA de la página Conceptos básicos del clúster después de que se cree el clúster de arranque.

Inicia el entorno desde la estación de trabajo de administrador

Cuando ejecutas el comando gkectl register bootstrap, se te solicita el nombre de usuario y la contraseña de la cuenta de vCenter. Asegúrate de tener las credenciales disponibles. Si usaste 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 hasta la sección Inicia el entorno desde la estación de trabajo de administrador para mostrar 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 que puedas especificar valores para 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
    

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

    • BUNDLE_PATH: Es la ruta de acceso al archivo del paquete. Si usaste gkeadm para crear la estación de trabajo de administrador, el archivo de 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: Es la ruta de acceso al archivo de claves de la cuenta de servicio de acceso a componentes.
    • CONNECT_REGISTER_SA_PATH: Es la ruta de acceso al archivo de claves de la cuenta de servicio de connect-register.
    • LOG_MON_SA_PATH: Es la ruta de acceso al archivo de claves de la cuenta de servicio de supervisión y registro.
    • CLOUD_AUDIT_SA_PATH: Es la ruta de acceso a la cuenta de servicio de registro de auditoría. Si no creaste una cuenta de servicio de registro de auditoría, especifica la ruta de acceso al archivo de claves de la cuenta de servicio de supervisión de registros.

    Además, si usaste gkeadm para crear tu estación de trabajo de administrador, gkectl se descargó en el directorio /usr/bin/. En este caso, quita ./ del comienzo 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 la terminal de tu estación de trabajo de administrador.

  5. Cuando se te solicite, ingresa (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, ingresa (o copia y pega) la contraseña de vCenter. La contraseña no se muestra en la pantalla.

El comando ejecuta numerosas validaciones. Después de que gkectl cree correctamente el clúster de arranque, verás un resultado similar al siguiente, que se trunca 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 continúa ejecutándose 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, la creación fallará y deberás borrar el clúster de inicio 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

Termina de configurar el clúster de administrador

Regresa a la consola y sigue estos pasos:

  1. En la página Instaar el entorno de arranque, haz clic en Revisar conexión.

    Si se realiza de forma correcta, la consola mostrará Se estableció la conexión.

    Debes establecer la conexión con el clúster de arranque antes de continuar. Si no se establece la conexión, verifica los argumentos que especificaste para el comando gkectl register bootstrap:

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

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

    Si necesitas cambiar el nombre del clúster de inicialización, el ID del proyecto o cualquier otro valor de la marca, haz lo siguiente:

    1. Ingresa Ctrl-C para salir de gkectl register bootstrap.
    2. Borra 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 comenzar a configurar el clúster de administrador.

Aspectos básicos del clúster

  1. En el campo Datos del certificado de CA, copia y pega el certificado de la CA de vCenter completo en formato PEM, como se describió anteriormente en la sección Obtén el certificado de CA.

  2. En la sección Autorización, ingresa las direcciones de correo electrónico de los usuarios a los que deseas otorgar el rol de Kubernetes clusterrole/view de solo lectura. Observa que tu dirección de correo electrónico se agrega 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 puerta de enlace de Connect.

  3. Haz clic en Next Control Plane.

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 Control plane node IPs, ingresa las direcciones IP en los siguientes campos:

    • Puerta de enlace: Es la dirección IP de la puerta de enlace predeterminada para la subred que tiene los nodos del clúster.

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

    • Direcciones IP: Ingresa la dirección IP y, de forma opcional, el nombre de host para los tres nodos del plano de control.

  3. Haz clic en Siguiente: Herramientas de redes.

Redes

En esta sección, especificarás la información de redes necesaria para crear el clúster de administrador.

  1. En la sección CIDR de servicios y Pods, acepta los valores predeterminados para los rangos de direcciones IP del Pod y del Service de Kubernetes, o bien ingresa rangos de direcciones CIDR diferentes.

    • CIDR de servicio: El rango más pequeño posible es /24. El rango más grande posible es /12.

    • CIDR de Pod: El rango más pequeño posible es /18. El rango más grande posible es /8.

  2. En la sección Configuración del host, especifica los servidores NTP, los servidores DNS y, de manera opcional, los dominios de búsqueda de DNS que usan las VMs que son los nodos del clúster. Después de que se crea el clúster, no puedes modificar estos valores.

  3. Haz clic en Siguiente: Balanceador de cargas.

Balanceador de cargas

En esta sección, seleccionarás el tipo de balanceador de cargas que se usará. Para obtener más información, consulta Descripción general del balanceo de cargas.

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

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

    • Manual: Puedes usar cualquier balanceador de cargas que elijas, siempre y cuando lo configures antes de crear el clúster. Con cualquier balanceador de cargas que configures de forma manual, debes configurar las asignaciones entre las IPs virtuales (VIP), las direcciones de nodos y los valores de nodePort.

  2. En el campo VIP del plano de control, ingresa 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 la configuración y crea el clúster en tu centro de datos.

    Si hay un problema con la configuración, la consola mostrará un mensaje de error que debe ser lo suficientemente claro como para solucionar el problema de configuración y volver a crear el clúster.

Los detalles sobre el proceso de creación del clúster se muestran en tu estación de trabajo de administrador. Si las verificaciones previas se aprueban, 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.

Conéctate al clúster de administrador

El comando gkectl register bootstrap crea un archivo kubeconfig para el clúster de administrador en tu estación de trabajo de administrador. El directorio en el que se encuentra kubeconfig y el nombre del 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 para el clúster.

Además, puedes ejecutar comandos kubectl de solo lectura a través de la puerta de enlace de Connect.

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

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

    El resultado es similar a este:

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

    kubectl get pods -A
    

    Si necesitas privilegios administrativos completos para el clúster de administrador, consulta Configura la puerta de enlace de Connect.

Soluciona problemas

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

¿Qué sigue?

Crear un clúster de usuario