Crear un clúster de administrador

En este documento, se muestra cómo crear un clúster de administrador para GKE on VMware. El clúster de administrador ejecuta el plano de control de Kubernetes para el clúster de administrador y los clústeres de usuario asociados. Debes crear un clúster de administrador antes de crear cualquier clúster de usuario para ejecutar tus cargas de trabajo.

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

Descripción general del procedimiento

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

  1. Conéctate a la estación de trabajo de administrador.
    Esta VM tiene las herramientas necesarias para crear clústeres nuevos.
  2. 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.
  3. Importa imágenes de SO a vSphere y, luego, envía imágenes de contenedores al registro privado.
    Ejecuta gkectl prepare.
  4. Crea un balanceador de cargas de Seesaw (opcional).
    Si decidiste usar el balanceador de cargas de Seesaw, ejecuta gkectl create loadbalancer.
  5. 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. El onprem-admin-cluster-controller en el clúster de arranque temporal administra la creación del clúster de administrador.
  6. 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.

Antes de comenzar

  • Asegúrate de haber creado una estación de trabajo de administrador.

  • Revisa el documento de planificación de direcciones IP. Asegúrate de tener suficientes direcciones IP disponibles y revisa la decisión sobre cómo deseas que los nodos del clúster obtengan sus direcciones IP: DHCP o estáticas. Si decides usar direcciones IP estáticas, debes completar un archivo de bloque de IP que contenga las direcciones elegidas.

  • Revisa la descripción general del balanceo de cargas y revisa la decisión sobre el tipo de balanceador de cargas que deseas usar. Para ciertos balanceadores de cargas, debes configurar el balanceador de cargas antes de crear tu clúster de administrador.

  • Revisa la sección privateRegistry y decide si deseas usar un registro público o privado para los componentes de GKE on VMware.

  • Mira el campo osImageType y decide qué tipo de sistema operativo deseas ejecutar en los nodos del clúster de administrador.

1. Conéctate a la estación de trabajo de administrador

Sigue las instrucciones para obtener una conexión SSH a la estación de trabajo de administrador. La estación de trabajo de administrador tiene las herramientas que necesitas para crear el clúster de administrador. La estación de trabajo de administrador también tiene activada la cuenta de servicio de acceso a los componentes.

Sigue todos los pasos restantes de este tema en tu estación de trabajo de administrador en el directorio principal.

2. Completa el archivo de configuración

Cuando gkeadm creó la estación de trabajo de administrador, generó un segundo archivo de configuración llamado admin-cluster.yaml. 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

La mayoría de los campos ya están completados con los valores que ingresaste cuando creaste tu estación de trabajo de administrador. La excepción es el campo dataDisk, que debes completar ahora.

network

Decide cómo quieres que los nodos del clúster obtengan sus direcciones IP. Las opciones son las siguientes:

  • Desde un servidor DHCP que configures con anticipación. Configura network.ipMode.type como "dhcp".

  • De una lista de direcciones IP estáticas que proporciones. Configura network.ipMode.type como "static" y crea un archivo de bloques de IP que proporcione las direcciones IP estáticas. Para ver un ejemplo de un archivo de bloque de IP, consulta Ejemplo de archivos de configuración completos.

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

  • Si decidiste usar direcciones IP estáticas para los nodos del clúster, se requieren el campo network.ipMode.ipBlockFilePath y la sección network.hostconfig. La sección network.hostconfig contiene información sobre los servidores NTP, los servidores DNS y los dominios de búsqueda de DNS que usan los nodos del clúster.

  • Si usas un clúster de administrador de alta disponibilidad o el balanceador de cargas de Seesaw, la sección network.hostconfig es obligatoria, sin importar el uso de DHCP o las IP estáticas para los nodos del clúster.

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

Sin importar si dependes de un servidor DHCP o especificas una lista de direcciones IP estáticas, debes tener suficientes direcciones IP disponibles para los nodos del clúster de administrador. Esto incluye los nodos en el clúster de administrador que ejecutan los planos de control para cualquier clúster de usuario asociado. Para obtener una explicación de cuántas direcciones IP necesitas, consulta Planifica las direcciones IP.

Clúster de administrador de alta disponibilidad (vista previa)

Si deseas crear un clúster de administrador de alta disponibilidad (HA), completa las secciones network.controlPlaneIPBlock y network.hostConfig. También establece adminMaster.replicas en 3.

Un clúster de administrador de alta disponibilidad tiene tres nodos que ejecutan componentes del plano de control.

Los clústeres de administrador de alta disponibilidad tienen los siguientes requisitos y limitaciones:

  • Un clúster de usuario administrado por un clúster de administrador de alta disponibilidad debe habilitar Controlplane V2.

  • Los clústeres de administrador de alta disponibilidad no admiten copia de seguridad y restablecimiento.

  • No puedes usar el balanceador de cargas de Seesaw para un clúster de administrador con alta disponibilidad. Tampoco puedes usar el balanceador de cargas de Seesaw para un clúster de usuario administrado por un clúster de administrador con alta disponibilidad.

  • Los clústeres de administrador de alta disponibilidad no admiten la rotación de la AC del clúster de administrador.

  • Los clústeres de administrador de alta disponibilidad no son compatibles con gkectl get-config.

loadBalancer

Reserva una VIP para el servidor de la API de Kubernetes del clúster de administrador. Reserva otra VIP para el servidor de complementos. Proporciona tus VIP como valores para loadBalancer.vips.controlPlaneVIP y loadBalancer.vips.addonsVIP.

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 en paquetes de Seesaw. Configura loadBalancer.kind como "Seesaw" y completa la sección loadBalancer.seesaw.

  • Balanceo de cargas integrado en F5 BIG-IP. Configura loadBalancer.kind como "F5BigIP" y completa la sección f5BigIP.

  • Balanceo de cargas manual. Configura loadBalancer.kind como "ManualLB" y completa 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 para especificar si deseas que GKE on VMware cree reglas de antiafinidad de Distributed Resource Scheduler (DRS) de VMware para los nodos del clúster de administrador, de modo que se distribuyan 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.

Vista previa: Si deseas crear un clúster de administrador de alta disponibilidad, establece el campo replicas en la sección adminMaster como 3. De lo contrario, configúralo como 1.

addonNode

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

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 deseas conservar las imágenes de contenedor para los componentes de GKE on VMware. Las opciones son las siguientes:

  • Container Registry

  • Tu propio registro privado de Docker.

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

componentAccessServiceAccountKeyPath

GKE en VMware usa la cuenta de servicio de acceso a los componentes para descargar los componentes del clúster desde Container 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ón gkeConnect.

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.

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.

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.

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.

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.

Ejemplo de archivos de configuración completados

Este es un ejemplo de un archivo de bloque de IP completo y un archivo de configuración de clúster de administrador completo. La configuración habilita algunas funciones, pero no todas las disponibles.

vc-01-ipblock.yaml

blocks:
  - netmask: 255.255.252.0
    gateway: 172.16.23.254
    ips:
    - ip: 172.16.20.10
      hostname: admin-host1
    - ip: 172.16.20.11
      hostname: admin-host2
    - ip: 172.16.20.12
      hostname: admin-host3
    - ip: 172.16.20.13
      hostname: admin-host4
    - ip: 172.16.20.14
      hostname: admin-host5
    - ip: 172.16.20.15
      hostname: admin-host6
    - ip: 172.16.20.16
      hostname: admin-host7
    - ip: 172.16.20.17
      hostname: admin-host8

vc-01-admin-cluster.yaml

apiVersion: v1
kind: AdminCluster
name: "gke-admin-01"
bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.11.0-gke.543-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"
  dataDisk: "vc01-admin-disk.vmdk"
network:
  hostConfig:
    dnsServers:
    - "203.0.113.1"
    - "198.51.100.1"
    ntpServers:
    - "216.239.35.4"
  ipMode:
    type: "static"
    ipBlockFilePath: "vc-01-ipblock.yaml"
  serviceCIDR: "10.96.232.0/24"
  podCIDR: "192.168.0.0/16"
  vCenter:
    networkName: "vc01-net-1"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.20.59"
    addonsVIP: "172.16.20.60"
  kind: "MetalLB"
antiAffinityGroups:
  enabled: true
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.

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

4. (Opcional) Crea un balanceador de cargas de Seesaw

Recuerda que tienes varias opciones de balanceo de cargas para el clúster de administrador: Metal LB, Seesaw, F5 BIG-IP o manual.

Si decidiste usar el balanceador de cargas de Seesaw, realiza el paso en esta sección. De lo contrario, puedes omitir esta sección.

Crea y configura la VM para tu balanceador de cargas de Seesaw:

gkectl create loadbalancer --config ADMIN_CLUSTER_CONFIG

5. Crea el clúster de administrador

Crea el clúster de administrador:

gkectl create admin --config ADMIN_CLUSTER_CONFIG

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 del 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 lo deseas, puedes cambiar el nombre y la ubicación de tu archivo kubeconfig.

Administra el archivo checkpoint.yaml

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 Cryptographic operations.Direct Access antes de crear o actualizar el 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.

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

gke-admin-master-hdn4z            Ready    control-plane,master ...
gke-admin-node-7f46cc8c47-g7w2c   Ready ...
gke-admin-node-7f46cc8c47-kwlrs   Ready ...

7. 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 la 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 en la estación de trabajo de administrador se borra por accidente, aún tendrás acceso al clúster de administrador.

También te recomendamos que crees una copia de seguridad de la clave SSH privada del clúster de administrador. Luego, si pierdes el acceso al clúster de administrador, aún puedes usar SSH para conectarte a los nodos del clúster de administrador. Esto te permitirá investigar y solucionar problemas relacionados con la conectividad al 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.

Soluciona problemas

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

¿Qué sigue?

Crear un clúster de usuario