Crea clústeres básicos

En este documento, se muestra cómo crear clústeres básicos para una pequeña instalación de prueba de concepto de clústeres de Anthos alojados en VMware (GKE On-Prem).

Estos son los pasos principales:

  1. Crea una estación de trabajo de administrador.

  2. Desde la estación de trabajo del administrador, crea un clúster de administrador.

  3. Desde la estación de trabajo de administrador, crea un clúster de usuario.

Antes de comenzar

Configura tus entornos de vSphere y Google Cloud como se describe en Configura una infraestructura mínima.

Recopila información

A fin de prepararte para completar un archivo de configuración de la estación de trabajo de administrador, recopila la siguiente información:

Acceder

La herramienta de línea de comandos de gkeadm usa la propiedad account de tu SDK para crear cuentas de servicio. Por lo tanto, es importante que establezcas la propiedad account de tu SDK antes de ejecutar gkeadm para crear una estación de trabajo de administrador.

Accede con cualquier Cuenta de Google. Esto establece la propiedad account de tu SDK:

gcloud auth login

Verifica que la propiedad account de tu SDK esté configurada correctamente:

gcloud config list

En el resultado, se muestra el valor de la propiedad account de tu SDK. Por ejemplo:

[core]
account = my-name@google.com
disable_usage_reporting = False
Your active configuration is: [default]

Otorga roles a tu cuenta del SDK

La Cuenta de Google que se configuró como tu propiedad account del SDK debe tener estas funciones de IAM para que gkeadm pueda crear y administrar cuentas de servicio por ti:

  • resourcemanager.projectIamAdmin
  • serviceusage.serviceUsageAdmin
  • iam.serviceAccountCreator
  • iam.serviceAccountKeyAdmin

Para otorgar funciones, debes tener ciertos permisos en tu proyecto de Cloud. Para obtener detalles, consulta Otorga, cambia y revoca el acceso a los recursos.

Si tienes los permisos necesarios, puedes otorgar las funciones tú mismo. De lo contrario, alguien de tu organización deberá otorgar las funciones por ti.

Para otorgar las funciones, sigue estos pasos:

Linux y macOS

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="user:ACCOUNT" \
    --role="roles/resourcemanager.projectIamAdmin"

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="user:ACCOUNT" \
    --role="roles/serviceusage.serviceUsageAdmin"

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="user:ACCOUNT" \
    --role="roles/iam.serviceAccountCreator"

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="user:ACCOUNT" \
    --role="roles/iam.serviceAccountKeyAdmin"

Windows

gcloud projects add-iam-policy-binding PROJECT_ID ^
    --member="user:ACCOUNT" ^
    --role="roles/resourcemanager.projectIamAdmin"

gcloud projects add-iam-policy-binding PROJECT_ID ^
    --member="user:ACCOUNT" ^
    --role="roles/serviceusage.serviceUsageAdmin"

gcloud projects add-iam-policy-binding PROJECT_ID ^
    --member="user:ACCOUNT" ^
    --role="roles/iam.serviceAccountCreator"

gcloud projects add-iam-policy-binding PROJECT_ID ^
    --member="user:ACCOUNT" ^
    --role="roles/iam.serviceAccountKeyAdmin"

Reemplaza lo siguiente:

  • PROJECT_ID: El ID de tu proyecto de Cloud.
  • ACCOUNT: el valor de tu propiedad account del SDK

Crea una estación de trabajo de administrador.

En los pasos de este documento, se usa la herramienta de línea de comandos de gkeadm, que está disponible para Linux de 64 bits, Windows 10, Windows Server 2019 y macOS 10.15 y versiones posteriores.

Descarga gkeadm en tu directorio actual.

Genera plantillas

./gkeadm create config

El comando anterior creó estos archivos en el directorio actual:

  • credential.yaml
  • admin-ws-config.yaml

Completa credential.yaml

En credential.yaml, completa tu nombre de usuario y contraseña de vCenter. Por ejemplo:

kind: CredentialFile
items:
- name: vCenter
  username: "my-account-name"
  password: "AadmpqGPqq!a"

Familiarízate con el archivo de configuración de la estación de trabajo de administrador

Analiza la documentación del archivo de configuración de la estación de trabajo de administrador para tener una idea general de lo que hay en el archivo. Es posible que desees mantener la página abierta en una pestaña o una ventana separada para que puedas consultarla a medida que completes los valores de los campos.

Completa admin-ws-config.yaml

Abre admin-ws-config.yaml para edición.

Los siguientes campos se completan con los valores predeterminados o generados:

vCenter:
  credentials:
    fileRef:
      credentials:
      entry:

adminWorkstation:
  name:
  cpus:
  memoryMB:
  diskGB:
  dataDiskName:
  dataDiskMB:

ntpServer:

Completa el campo gcp.componentAccessServiceAccountKeyPath.

Completa los siguientes campos en la sección vCenter.

credentials:
  address:
datacenter:
datastore:
cluster:
network:
caCertPath:

Configura vCenter.resourcePool como CLUSTER_NAME/Resources. Reemplaza CLUSTER_NAME por el nombre de tu clúster de vSphere.

Si es necesario, completa el campo proxyURL.

Si es necesario, completa el campo adminWorkstation.proxyURL.

Configura adminWorkstation.network.ipAllocationMode como "static".

Completa los siguientes campos en la sección adminWorkstation.network.hostConfig:

ip:
gateway:
netmask:
dns:

Ejemplo de archivo de configuración de la estación de trabajo de administrador

A continuación, se muestra un ejemplo de un archivo de configuración de la estación de trabajo de administrador completo:

gcp:
  componentAccessServiceAccountKeyPath: "/usr/local/google/home/me/keys/component-access-key.json"
vCenter:
  credentials:
    address: "vc01.example"
    fileRef:
      path: "credential.yaml"
      entry: "vCenter"
  datacenter: "vc01"
  datastore: "vc01-datastore-1"
  cluster: "vc01-workloads-1"
  network: "vc01-net-1"
  resourcePool: "vc01-workloads-1/Resources"
  caCertPath: "/usr/local/google/home/stevepe/certs/vc01-cert.pem"
proxyUrl: ""
adminWorkstation:
  name: gke-admin-ws-220304-014925
  cpus: 4
  memoryMB: 8192
  diskGB: 50
  dataDiskName: gke-on-prem-admin-workstation-data-disk/gke-admin-ws-220304-014925-data-disk.vmdk
  dataDiskMB: 512
  network:
    ipAllocationMode: "static"
    hostConfig:
      ip: "172.16.20.49"
      gateway: "172.16.20.1"
      netmask: "255.255.255.0"
      dns:
      - "203.0.113.1"
  proxyUrl: ""
  ntpServer: ntp.ubuntu.com

Crea tu estación de trabajo de administrador

Crea tu estación de trabajo de administrador y crea cuentas de servicio automáticamente:

./gkeadm create admin-workstation --auto-create-service-accounts

En el resultado, se proporciona información detallada sobre la creación de tu estación de trabajo de administrador y se proporciona un comando que puedes usar para obtener una conexión SSH a tu estación de trabajo de administrador:

...
Admin workstation is ready to use.
Admin workstation information saved to /usr/local/google/home/me/my-admin-workstation
This file is required for future upgrades
SSH into the admin workstation with the following command:
ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.20.49
********************************************************************

Si deseas obtener más información para crear una estación de trabajo de administrador, consulta Crea una estación de trabajo de administrador.

Ve los archivos en tu estación de trabajo de administrador

Usa el comando que se muestra en el resultado anterior para obtener una conexión SSH a tu estación de trabajo de administrador. Por ejemplo:

ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.20.49

Enumera los archivos en el directorio principal

ls -1

El resultado incluye los archivos de claves JSON para dos cuentas de servicio que gkeadm creó para ti: una cuenta de servicio de registro de conexión y una de servicio de supervisión de registros. Toma nota del nombre de los archivos de claves JSON para tu cuenta de servicio de registro de conexión. La necesitarás más adelante cuando crees los clústeres. Por ejemplo:

admin-cluster.yaml
admin-ws-config.yaml
sa-key.json
connect-register-sa-2203040617.json
credential.yaml
log-mon-sa-2203040617.json
logs
vc01-cert.pem
user-cluster.yaml

Crear un clúster de administrador

Obtener una conexión SSH a tu estación de trabajo de administrador

Especifica direcciones IP estáticas para el clúster de administrador

A fin de especificar las direcciones IP estáticas que deseas usar para los nodos del clúster de administrador, crea un archivo de bloque de IP llamado admin-cluster-ipblock.yaml.

Necesitas cinco direcciones IP para los siguientes nodos en el clúster de administrador:

  • Tres nodos para ejecutar el plano de control y los complementos del clúster de administrador

  • Un nodo adicional que se usará de forma temporal durante las actualizaciones

  • Un nodo para ejecutar el plano de control del clúster de usuario que crearás más adelante

Este es un ejemplo de un archivo de bloque IP que tiene direcciones para cinco nodos:

blocks:
  - netmask: 255.255.255.0
    gateway: 172.16.20.1
    ips:
    - ip: 172.16.20.50
      hostname: admin-vm-1
    - ip: 172.16.20.51
      hostname: admin-vm-2
    - ip: 172.16.20.52
      hostname: admin-vm-3
    - ip: 172.16.20.53
      hostname: admin-vm-4
    - ip: 172.16.20.54
      hostname: admin-vm-5

El campo ips es un arreglo de direcciones IP y nombres de host. Estas son las direcciones IP y los nombres de host que los clústeres de Anthos alojados en VMware asignarán a los nodos del clúster de administrador.

En el archivo del bloque de IP, también debes especificar una máscara de subred y una puerta de enlace predeterminada para los nodos del clúster de administrador.

Familiarízate con el archivo de configuración del clúster de administrador

Analiza la documentación del archivo de configuración del clúster de administrador para tener una idea general de lo que hay en el archivo. Es posible que desees mantener la página abierta en una pestaña o una ventana separada para que puedas consultarla a medida que completes los valores de los campos.

Completa el archivo de configuración del clúster de administrador

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.

Abre admin-cluster.yaml para edición. Varios campos en el archivo de configuración del clúster de administrador ya están completados con los valores predeterminados, generados o que proporcionaste cuando creaste la estación de trabajo de administrador. No puedes modificar esos campos.

Completa el campo vCenter.dataDisk.

Completa los siguientes campos en la sección network.hostConfig:

dnsServers:
ntpServers:

Configura network.ipMode.type como "static".

Configura network.ipMode.ipBlockFilePath como "admin-cluster-ipblock.yaml"

Completa o conserva los valores predeterminados para network.serviceCIDR y network.podCIDR.

Completa los siguientes campos en la sección loadBalancer.vips:

controlPlaneVIP:
addonsVIP:

Configura loadBalancer.kind como "MetalLB".

Configura antiAffinityGroups.enabled como false.

Configura gkeConnect.projectID como el ID de tu proyecto de Cloud.

Configura gkeConnect.registerServiceAccountKeyPath como la ruta del archivo de claves JSON para tu cuenta de servicio de registro de conexión.

Ejemplo de un archivo de configuración del clúster de administrador

A continuación, se muestra un ejemplo de un archivo de configuración del clúster de administrador completo:

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: "my-cluster/Resources"
  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"
  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: false
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

Valida el archivo de configuración de clústeres de administrador

Verifica que el archivo de configuración de tu clúster de administrador sea válido y se pueda usar para crear el clúster:

gkectl check-config --config admin-cluster.yaml

Prepara tu entorno de vSphere.

Ejecuta gkectl prepare para inicializar el entorno de vSphere:

gkectl prepare --config admin-cluster.yaml --skip-validation-all

Crea el clúster de administrador:

Crea el clúster de administrador:

gkectl create admin --config admin-cluster.yaml

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

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.

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 kubeconfig

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

Crear un clúster de usuario

Puedes crear un clúster de usuario en la consola de Google Cloud o desde la línea de comandos en la estación de trabajo de administrador.

Consola

En esta sección, se muestra cómo crear un clúster de usuario configurado para la infraestructura mínima con MetalLB como balanceador de cargas.

Cuando creas un clúster de usuario, la consola de Google Cloud habilita de forma automática la API de GKE On-Prem en el proyecto de Google Cloud que seleccionas para la creación del clúster. La API de GKE On-Prem se ejecuta en la infraestructura de Google Cloud, y la consola de Google Cloud usa esta API para crear el clúster en tu centro de datos de vSphere. Para administrar tus clústeres, la API de GKE On-Prem debe almacenar los metadatos sobre el estado de tu clúster en la región de Google Cloud que especificas cuando creas el clúster. Estos metadatos permiten que la API de GKE On-Prem administre el ciclo de vida del clúster de usuario y no incluya datos específicos de la carga de trabajo.

  1. En la consola de Google Cloud, ve a la página Clústeres de Anthos.

    Ir a la página Clústeres de Anthos

  2. Selecciona el proyecto de Cloud en el que deseas crear el clúster. El proyecto seleccionado también se usa como el proyecto host de la flota. Este debe ser el mismo proyecto en el que está registrado el clúster de administrador. Después de crear el clúster de usuario, se registra de forma automática en la flota del proyecto seleccionado.

  3. Haz clic en Crear clúster.

  4. En el cuadro de diálogo, haz clic en Local.

  5. Junto a VMware vSphere, haz clic en Configurar.

  6. Revisa los requisitos previos y haz clic en Continuar.

Aspectos básicos del clúster

  1. Ingresa un Nombre para el clúster de usuarios.
  2. En Clúster de administrador, selecciona el clúster de administrador de la lista. Si no se muestra el clúster de administrador que deseas usar, consulta la sección de solución de problemas El clúster de administrador no se muestra en la lista desplegable aspectos básicos del clúster.

  3. En el campo Ubicación de la API de GCP, selecciona la región de Google Cloud de la lista. Además de controlar la región en la que se ejecuta la API de GKE On-Prem, esta configuración controla la región en la que se almacena lo siguiente:

    • Los metadatos del clúster de usuario 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
  4. Selecciona la versión de clústeres de Anthos alojados en VMware de tu clúster de usuario.

  5. Haz clic en Continuar para ir a la sección Herramientas de redes.

Redes

En esta sección, debes especificar las direcciones IP para los nodos, los Pods y los objetos Service del clúster. Un clúster de usuario debe tener una dirección IP por cada nodo y una dirección IP adicional que se usará para un nodo temporal durante la actualización del clúster de usuario. Para obtener más información, consulta ¿Cuántas direcciones IP necesita un clúster de usuario?

  1. En la sección IP de nodo, selecciona el modo de IP para el clúster de usuario. Selecciona una de las siguientes opciones:

    • DHCP: Elige DHCP si deseas que los nodos del clúster obtengan la dirección IP de un servidor DHCP.

    • Estático: Elige Estático si deseas proporcionar direcciones IP estáticas para los nodos del clúster.

  2. Si seleccionaste DHCP, continúa con el siguiente paso para especificar los CIDR de Pods y Services. En Modo de IP estática, proporciona la siguiente información:

    1. Ingresa la dirección IP de la Puerta de enlace para el clúster de usuario.
    2. Ingresa la Máscara de subred para los nodos del clúster de usuario.

    3. En la sección Direcciones IP, ingresa las direcciones IP y, de forma opcional, los nombres de host para los nodos del clúster de usuario. Puedes ingresar una dirección IP v4 individual (como 192.0.2.1) o un bloque CIDR de direcciones IPv4 (como 192.0.2.0/24).

      • Si ingresas un bloque CIDR, no ingreses un nombre de host.
      • Si ingresas una dirección IP individual, puedes ingresar un nombre de host de forma opcional. Si no ingresas un nombre de host, los clústeres de Anthos alojados en VMware usan el nombre de la VM de vSphere como el nombre de host.
    4. Haz clic en + Agregar dirección IP según sea necesario para ingresar más direcciones IP.

  3. En la sección CIDR de Service y Pod, la consola de Google Cloud proporciona los siguientes rangos de direcciones para tu servicio y pod de Kubernetes:

    • CIDR de Service: 10.96.0.0./20
    • CIDR de Pod: 192.168.0.0/16

    Si prefieres ingresar tus propios rangos de direcciones, consulta Direcciones IP para pods y Service a fin de obtener prácticas recomendadas.

  4. Si seleccionaste Static IP mode, especifica la siguiente información en la sección Configuración de host:

    1. Ingresa las direcciones IP de los servidores DNS.
    2. Ingresa las direcciones IP de los servidores NTP.
    3. También puedes ingresar los dominios de búsqueda de DNS.
  5. Haz clic en Continuar para ir a la sección Balanceador de cargas.

Balanceador de cargas

Configura MetalLB como el balanceador de cargas.

  1. En Tipo de balanceador de cargas, deja seleccionada la opción MetalLB.

  2. En la sección IP virtuales, ingresa lo siguiente:

    • VIP del plano de control: La dirección IP de destino que se usará para el tráfico enviado al servidor de la API de Kubernetes del clúster de usuario. Esta dirección IP debe estar en el mismo dominio L2 que los nodos del clúster de administrador. No agregues esta dirección en la sección Grupos de direcciones.

    • VIP de Ingress: La dirección IP que se configurará en el balanceador de cargas para el proxy de Ingress. Debes agregar esto a un grupo de direcciones en la sección Grupos de direcciones.

  3. En la sección Grupos de direcciones, especifica un grupo de direcciones para la VIP de entrada.

    1. Haz clic en + Agregar dirección IP.
    2. Ingresa un Nombre para el grupo de nodos.
    3. Ingresa un rango de direcciones IP en notación CIDR (como 192.0.2.0/26) o notación de rango (como 192.0.2.64-192.0.2.72). Las direcciones IP en cada grupo no pueden superponerse y deben estar en la misma subred que los nodos del clúster.
    4. En Asignación de direcciones IP, selecciona una de las siguientes opciones:

      • Automática: Elige esta opción si quieres que el controlador de MetalLB asigne de forma automática direcciones IP del grupo de direcciones a servicios de tipo LoadBalancer.
      • Manual: Elige esta opción si tienes la intención de usar direcciones del grupo a fin de especificar manualmente direcciones para servicios de tipo LoadBalancer.
    5. Haz clic en Evita las direcciones IP con errores si deseas que el controlador de MetalLB no use direcciones del grupo que terminan en .0 o .255. Esto evita el problema de los dispositivos consumidores con errores que descartan por error el tráfico enviado a esas direcciones IP especiales.

    6. Repite la acción según sea necesario. Cuando hayas terminado, haz clic en Listo.

  4. Haz clic en Continuar.

Plano de control

  1. Revisa los valores predeterminados configurados para los nodos en el clúster de administrador que ejecutan los componentes del plano de control del clúster de usuario. Los valores predeterminados son suficientes para la infraestructura mínima, pero puedes ajustarlos según sea necesario.

  2. Haz clic en Continuar.

Funciones

  1. Anula la selección Habilitar grupos antiafinidad. Cuando configuraste la infraestructura mínima, solo creaste un host ESXi, por lo que no debes habilitar grupos de antiafinidad.

  2. Haz clic en Continuar.

Grupos de nodos

Tu clúster se creará con al menos un grupo de nodos. Un grupo de nodos es una plantilla para los conjuntos de nodos creados en este clúster. Para obtener más información, consulta Crea y administra grupos de nodos.

Revisa los valores predeterminados configurados para el grupo de nodos. Los valores predeterminados son suficientes para la infraestructura mínima, pero puedes ajustarlos según sea necesario.

Verificación y finalización

Haz clic en Verificar y completar para crear el clúster de usuario. La creación del clúster de usuario toma 10 minutos o más. La consola de Google Cloud muestra mensajes de estado a medida que verifica la configuración y crea el clúster en tu centro de datos.

El operador que crea el clúster de usuario en la consola de Google Cloud accede de forma automática al clúster después de su creación. Otros operadores deben seguir los pasos en Accede a un clúster desde la consola de Cloud para obtener acceso al clúster.

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

Para obtener más información sobre posibles errores y cómo solucionarlos, consulta Soluciona problemas de la creación de clústeres de usuarios en la consola de Google Cloud.

Crea el archivo kubeconfig del clúster de usuario

Para acceder al clúster de usuario en tu centro de datos desde la línea de comandos, debes obtener un archivo kubeconfig del clúster de administrador. Después de que en la consola de Google Cloud se indique que el estado del clúster de usuario está en buen estado, ejecuta el siguiente comando en la estación de trabajo de administrador a fin de guardar un archivo kubeconfig nuevo para el clúster de usuario de forma local. Reemplaza lo siguiente:

  • CLUSTER_NAME: Es el nombre del clúster de usuario recién creado.
  • ADMIN_CLUSTER_KUBECONFIG: Es la ruta de acceso al archivo kubeconfig del clúster de administrador.
  • USER_CLUSTER_KUBECONFIG: Es el nombre del archivo kubeconfig del clúster de usuario que genera el comando
kubectl get secret admin \
--kubeconfig ADMIN_CLUSTER_KUBECONFIG \
-n CLUSTER_NAME \
-o=jsonpath='{.data.admin\.conf}' | base64 -d > USER_CLUSTER_KUBECONFIG

Después de guardar el archivo, puedes comenzar a acceder al clúster de usuarios mediante kubectl, como se muestra en el siguiente ejemplo:

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get namespaces

Línea de comandos

  1. Obtener una conexión SSH a tu estación de trabajo de administrador

  2. Especifica direcciones IP estáticas para tu clúster de usuario

    Para especificar las direcciones IP estáticas que deseas usar en tu clúster de usuario, crea un archivo de bloque de IP llamado user-cluster-ipblock.yaml. Necesitas tres direcciones IP para los nodos del clúster de usuario y una dirección adicional que se usará de forma temporal durante las actualizaciones. Este es un ejemplo de un archivo de bloque de IP con cuatro direcciones:

    blocks:
      - netmask: 255.255.255.0
        gateway: 172.16.20.1
        ips:
        - ip: 172.16.20.55
          hostname: user-vm-1
        - ip: 172.16.20.56
          hostname: user-vm-2
        - ip: 172.16.20.57
          hostname: user-vm-3
        - ip: 172.16.20.58
          hostname: user-vm-4
    

Completa el archivo de configuración del clúster de usuario

Cuando gkeadm creó la estación de trabajo de administrador, generó un segundo archivo de configuración llamado user-cluster.yaml. Este archivo de configuración sirve para crear tu clúster de usuario.

  1. Familiarízate con el archivo de configuración del clúster de usuario

    Analiza la documentación del archivo de configuración del clúster de usuario para tener una idea general de lo que hay en el archivo. Es posible que desees mantener la página abierta en una pestaña o una ventana separada para que puedas consultarla a medida que completes los valores de los campos.

  2. Abre user-cluster.yaml para edición.

    Varios campos en el archivo de configuración del clúster de administrador ya están completados con los valores predeterminados, generados o que proporcionaste cuando creaste la estación de trabajo de administrador. No puedes modificar esos campos.

  3. Establece name como un nombre que elijas para el clúster de usuario.

Completa los campos en la sección de red

  1. Ingresa las direcciones IP para los siguientes campos en la sección network.hostConfig:

    dnsServers:
    ntpServers:
    
  2. Configura network.ipMode.type como "static".

  3. Configura network.ipMode.ipBlockFilePath como "user-cluster-ipblock.yaml"

  4. Completa o conserva los valores predeterminados para network.serviceCIDR y network.podCIDR.

Completa campos en la sección del balanceador de cargas

  1. Completa los siguientes campos en la sección loadBalancer.vips:

    controlPlaneVIP:
    ingressVIP:
    
  2. Configura loadBalancer.kind como "MetalLB".

  3. Completa la sección loadBalancer.metalLB. Para obtener más información, consulta Balanceo de cargas en paquetes con MetalLB.

  4. Para al menos uno de tus grupos de nodos, configura enableLoadBalancer como true. Para obtener más información, consulta Balanceo de cargas en paquetes con MetalLB.

  5. Configura antiAffinityGroups.enabled como false.

Ejemplo de un archivo de configuración del clúster de usuario

A continuación, se muestra un ejemplo de un archivo de configuración de clúster de usuario completo:

apiVersion: v1
kind: UserCluster
name: "my-user-cluster"
gkeOnPremVersion: "1.11.0-gke.543"
network:
hostConfig:
  dnsServers:
  - "203.0.113.1"
  - "198.51.100.1"
  ntpServers:
  - "216.239.35.4"
ipMode:
  type: "static"
serviceCIDR: "10.96.0.0/20"
podCIDR: "192.168.0.0/16"
loadBalancer:
vips:
  controlPlaneVIP: "172.16.20.61"
  ingressVIP: "172.16.20.62"
kind: "MetalLB"
metalLB:
  addressPools:
  - name: "uc-address-pool"
    addresses:
    - "172.16.20.63-172.16.20.72"
nodePools:
- name: "uc-node-pool"
cpus: 4
memoryMB: 8192
replicas: 3
enableLoadBalancer: true
antiAffinityGroups:
enabled: false
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
autoRepair:
enabled: true

Valida la configuración y crea el clúster

  1. Verifica que el archivo de configuración de tu clúster de usuario sea válido y se pueda usar para crear el clúster:

    gkectl check-config --kubeconfig kubeconfig --config user-cluster.yaml
    
  2. Crea el clúster de usuario:

    gkectl create cluster --kubeconfig kubeconfig --config user-cluster.yaml
    

    La creación de clústeres tarda alrededor de 30 minutos.

Ubica el archivo kubeconfig del clúster de usuario

El comando gkectl create cluster crea un archivo kubeconfig llamado USER_CLUSTER_NAME-kubeconfig en el directorio actual. Necesitarás este archivo kubeconfig más adelante para interactuar con tu clúster de usuario.

Verifica que tu clúster de usuario esté en ejecución

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

kubectl get nodes --kubeconfig USER_CLUSTER_KUBECONFIG

Reemplaza USER_CLUSTER_KUBECONFIG por la ruta de acceso de tu archivo kubeconfig.

En el resultado, se muestran los nodos del clúster de usuario. Por ejemplo:

my-user-cluster-node-pool-69-d46d77885-7b7tx   Ready ...
my-user-cluster-node-pool-69-d46d77885-lsvzk   Ready ...
my-user-cluster-node-pool-69-d46d77885-sswjk   Ready ...

¿Qué sigue?

Implementa una aplicación