Crea clústeres básicos

Esta es la segunda parte de una guía en la que se explica una instalación pequeña de prueba de concepto de clústeres de Anthos alojados en VMware (GKE On-Prem). La primera es Configurar una infraestructura mínima, que muestra cómo planificar sus direcciones IP y configurar la infraestructura de vSphere y Google Cloud necesaria para su implementación. Este documento se basa en la configuración y la planificación que realizaste en la sección anterior y te muestra cómo crear una estación de trabajo de administrador, un clúster de administrador y un clúster de usuario en tu entorno de vSphere. Luego, puede implementar una aplicación.

Al igual que con la configuración de la infraestructura de esta instalación sencilla, es posible que los clústeres configurados mediante este documento no sean adecuados para tus casos de uso y necesidades de producción reales. Si desea obtener más información, instrucciones y prácticas recomendadas para las instalaciones de producción, consulte las Guías de instalación.

Antes de comenzar

Descripción general del procedimiento

Estos son los pasos principales que se deben realizar en esta configuración:

  1. Asegúrate de tener toda la información necesaria para configurar los clústeres de Anthos alojados en VMware, incluido tu nombre de usuario y contraseña de vCenter, y las direcciones IP que preparaste en la sección anterior.
  2. Accede a Google Cloud CLI con una cuenta que tenga los permisos necesarios para crear cuentas de servicio.
  3. Crea una estación de trabajo de administrador con los recursos y las herramientas que necesitas para crear clústeres de administrador y de usuario, incluidas las cuentas de servicio adicionales que necesitas para finalizar la configuración.
  4. Crea un clúster de administrador a fin de alojar el plano de control de Kubernetes para tus clústeres de administrador y de usuario, y para administrar y actualizar los clústeres de usuario.
  5. Crea un clúster de usuario que pueda ejecutar cargas de trabajo reales.

Recopila información

Antes de comenzar a completar los archivos de configuración de clústeres de Anthos alojados en VMware, asegúrate de tener toda la información necesaria que preparaste en Configura la infraestructura mínima. Necesitarás todos los siguientes valores para configurar los clústeres de Anthos alojados en VMware y completar esta configuración.

Detalles de vCenter

Direcciones IP

Asegúrate de tener todas las direcciones IP que elegiste en Planifica tus direcciones IP, incluidas las siguientes:

  • Una dirección IP para tu estación de trabajo de administrador.
  • Diez direcciones IP para los nodos del clúster de administrador y de usuario, incluidas las direcciones de dos nodos adicionales que se pueden usar durante las actualizaciones del clúster.
  • Una dirección IP virtual (VIP) para el servidor de la API de Kubernetes del clúster de administrador.
  • Una VIP para el servidor de la API de Kubernetes del clúster de usuario
  • Una VIP de Ingress para el clúster de usuario
  • Diez VIP de servicio para el clúster de usuario.
  • Un rango CIDR para los Pods y los objetos Service del clúster de usuario si necesitas usar rangos no predeterminados, como se describe en Evita la superposición.

También necesitas lo siguiente:

  • La dirección IP de un servidor DNS.
  • La dirección IP de un servidor NTP.
  • La dirección IP de la puerta de enlace predeterminada para la subred que tiene tu estación de trabajo de administrador y nodos del clúster.

Detalles de Google Cloud

Accede a Google Cloud CLI

La configuración de clústeres de Anthos alojados en VMware requiere varias cuentas de servicio con permisos diferentes. Si bien debes crear tu cuenta de servicio de acceso a los componentes de forma manual, la herramienta de línea de comandos de gkeadm puede crear y configurar las versiones predeterminadas de las cuentas restantes como parte de la creación de la estación de trabajo de administrador. Sin embargo, para hacerlo, debes acceder a Google Cloud CLI con una cuenta que tenga los permisos necesarios para crear y configurar cuentas de servicio, ya que gkeadm usa tu propiedad actual account de gcloud CLI cuando realizas esta configuración.

  1. Accede a gcloud CLI. Puedes usar cualquier Cuenta de Google, pero debe tener los permisos necesarios. Si seguiste la parte anterior de esta guía, es probable que ya hayas accedido con una cuenta adecuada para crear tu cuenta de servicio de acceso a los componentes.

    gcloud auth login
    
  2. Verifica que tu propiedad account de gcloud CLI esté configurada de forma correcta:

    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]
    

Crea una estación de trabajo de administrador.

Antes de crear clústeres, debes configurar SSH en una estación de trabajo de administrador y, luego, establecer una conexión mediante SSH. La estación de trabajo de administrador es una VM independiente con las herramientas y los recursos que necesitas para crear clústeres de Anthos en tu entorno de vSphere. 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.

Genera plantillas

Ejecuta el siguiente comando para generar archivos de configuración de plantillas:

./gkeadm create config

Cuando ejecutes este comando, se generarán los siguientes archivos de configuración de plantillas en tu directorio actual:

  • credential.yaml, que debes usar para proporcionar login details a vCenter
  • admin-ws-config.yaml, que usas para proporcionar la configuración de la estación de trabajo de administrador

Completa tu archivo de credenciales

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"

Completa el archivo de configuración de la estación de trabajo de administrador

Abre admin-ws-config.yaml para edición. Cuando se complete, este archivo contiene toda la información que gkeadm necesita a fin de crear una estación de trabajo de administrador para esta instalación básica. Algunos de los campos ya están completados con los valores predeterminados o generados: no cambies estos valores para esta instalación simple.

Completa los campos restantes de la siguiente manera, con la información que recopilaste antes. A continuación, puedes ver un archivo de configuración de ejemplo completo si no estás seguro de cómo dar formato a cualquier campo o consulta la referencia del archivo de configuración de la estación de trabajo de administrador. 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.

Campo o sección Instructions
gcp.componentAccessServiceAccountKeyPath Es la ruta de acceso del archivo de claves JSON que creaste para tu cuenta de servicio de acceso a los componentes.
vCenter.credentials.address La dirección IP o el nombre de host de vCenter Server.
vCenter.datacenter Es el nombre del centro de datos de vCenter.
vCenter.datastore Es el nombre del almacén de datos de vCenter.
vCenter.cluster Es el nombre del clúster de vCenter.
vCenter.network Es el nombre de la red de vCenter en la que deseas crear la estación de trabajo de administrador.
vCenter.resourcePool Establece este campo en "CLUSTER_NAME/Resources" y reemplaza CLUSTER_NAME por el nombre de tu clúster de vSphere.
vCenter.caCertPath Es la ruta de acceso al certificado de CA raíz de tu servidor de vCenter.
proxyURL Si la máquina que usas para ejecutar gkeadm necesita usar un servidor proxy para acceder a Internet, configura este campo con la URL del servidor proxy.
adminWorkstation.ipAllocationMode Establece este campo en "static".
adminWorkstation.network.hostConfig.ip Es la dirección IP que elegiste antes para la estación de trabajo de administrador.
adminWorkstation.network.hostConfig.gateway La dirección IP de la puerta de enlace predeterminada para la subred que deseas usar en la estación de trabajo de administrador y los nodos del clúster.
adminWorkstation.network.hostConfig.netmask Es la máscara de red de la red que contiene tu estación de trabajo de administrador.
adminWorkstation.network.hostConfig.dns Direcciones IP para servidores DNS que puede usar la estación de trabajo de administrador.
adminWorkstation.proxyURL Si la red se encuentra detrás de un servidor proxy y quieres que la estación de trabajo de administrador y los clústeres usen el mismo servidor proxy, establece este campo en la URL del servidor proxy.

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 con el siguiente comando:

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

Ejecuta este comando:

  • Crea tu estación de trabajo de administrador.
  • Crea automáticamente las cuentas de servicio adicionales que necesites para la instalación
  • Crea archivos de configuración de plantilla para los clústeres de administrador y de usuario.

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.

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

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

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

Ver archivos generados

En la estación de trabajo de administrador, enumera los archivos en el directorio principal:

ls -1

El resultado debe incluir lo siguiente:

  • admin-cluster.yaml, un archivo de configuración de plantilla para crear el clúster de administrador.
  • user-cluster.yaml, un archivo de configuración de plantilla para crear el clúster de usuario.
  • Archivos de claves JSON para dos cuentas de servicio que gkeadm creó por ti: una cuenta de servicio de registro de conexión y una cuenta de servicio de supervisión de registros. Anota el nombre del archivo de claves JSON para tu cuenta de servicio del 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

Ahora que tienes una estación de trabajo de administrador configurada con vCenter y otros detalles, puedes usarla para crear un clúster de administrador en el entorno de vSphere. Antes de comenzar este paso, asegúrate de tener una conexión SSH a la estación de trabajo de administrador, como se describió anteriormente. Todos los siguientes comandos se ejecutan en la 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 planificaste antes 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.

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

Abre admin-cluster.yaml para edición. Cuando se complete, este archivo contiene toda la información que gkectl necesita a fin de crear un clúster de administrador para esta instalación básica. Algunos de los campos ya están completados con valores predeterminados, valores generados o valores que proporcionaste cuando configuraste la estación de trabajo de administrador, como los detalles de vCenter: no cambies estos valores para esta instalación simple.

Completa los campos restantes de la siguiente manera, con la información que recopilaste antes. A continuación, puedes ver un archivo de configuración de ejemplo completo si no estás seguro de cómo dar formato a cualquier campo o puedes consultar la referencia del archivo de configuración del clúster de administrador. 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.

Campo o sección Instructions
vCenter.dataDisk El nombre que quieres usar para el disco de máquina virtual (VMDK) que crea el instalador a fin de contener los datos del objeto de Kubernetes.
network.hostConfig.dnsServers Direcciones IP para servidores DNS que pueden usar las VMs del clúster.
network.hostConfig.ntpServers Direcciones IP para servidores de tiempo que pueden usar las VMs del clúster.
network.ipMode.type Establece este campo en "static".
network.ipMode.ipBlockFilePath Es la ruta de acceso al archivo de bloqueo de IP que creaste antes.
network.serviceCIDR y network.podCIDR Solo cambia estos valores si necesitas usar rangos no predeterminados, como se describe en Evita la superposición.
loadBalancer.vips.controlPlaneVIP La dirección IP virtual (VIP) que elegiste para el servidor de la API de Kubernetes del clúster de administrador.
loadbalancer.kind Establece este campo en "MetalLB".
antiAffinityGroups Establecer este campo en "false"
gkeConnect.projectID Configura este campo con el ID del proyecto de tu proyecto de Google.
gkeConnect.registerServiceAccountKeyPath Configura este campo según la clave JSON de tu cuenta de servicio del 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"
  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

Importa imágenes de SO a vSphere

Ejecuta gkectl prepare con el archivo de configuración completo para importar imágenes de SO del nodo a vSphere:

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

Cuando ejecutes este comando, se importan las imágenes a vSphere y se marcan como plantillas de VM, incluida la imagen del clúster de administrador.

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

Crea un clúster de usuario

Puedes crear un clúster de usuario para esta instalación sencilla en Google Cloud Console o desde la línea de comandos en la estación de trabajo de administrador. Actualmente, solo puedes usar la consola de Google Cloud para crear clústeres de usuario.

Consola

En este enfoque, se usa un servicio de Google Cloud llamado la API de GKE On-Prem para crear y administrar clústeres en tu entorno de vSphere. Cuando creas un clúster de usuario desde la consola de Google Cloud, esta API se habilita automáticamente en el proyecto host de tu flota elegido. Puedes obtener más información sobre cómo funciona esto en Crea un clúster de usuario en la consola de Google Cloud. Este enfoque también significa que, como creador de clústeres, puedes acceder automáticamente al clúster nuevo en Google Cloud Console con tu identidad de Google, aunque deberás configurar la autenticación para cualquier otro usuario.

  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 Google Cloud en el que deseas crear el clúster. El proyecto seleccionado también será el proyecto host de 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 que creaste anteriormente en 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
    • Datos de registro, supervisión y auditoría para componentes del sistema.
  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. En esta instalación simple, tu clúster necesita una dirección para cada nodo y una dirección IP adicional que se puede usar en un nodo temporal durante la actualización del clúster de usuario.

  1. En la sección IP de nodo, especifique Estática como el Modo IP de su clúster.

  2. Use la siguiente información que planificó para los nodos del clúster de usuario y complete 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 de los nodos trabajadores en el 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. Deja los valores predeterminados en la sección CIDR del servicio y del Pod, a menos que necesites usar rangos no predeterminados, como se describe en Evita la superposición.

  4. Especifica la siguiente información en la sección Configuración del host:

    1. Ingresa las direcciones IP de los servidores DNS que puede usar tu clúster de usuario.
    2. Ingresa las direcciones IP de los servidores NTP.
  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. Se debe incluir en el grupo de direcciones que especificaste en la sección Grupos de direcciones.

  3. En la sección Grupos de direcciones, especifica un grupo de direcciones para el balanceador de cargas, incluida la VIP de Ingress. Estas son las VIP de servicio que planificaste antes.

    1. Haz clic en + Agregar dirección IP.
    2. Ingresa un Nombre para el grupo de direcciones.
    3. Ingresa el rango de direcciones IP en la notación CIDR (como 192.0.2.0/26) o en la notación de rangos (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 Automática.
    5. Cuando hayas terminado, haz clic en Listo.
  4. Haz clic en Continuar.

Plano de control

Usa los valores predeterminados que se proporcionan en esta sección. 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 debe tener 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.

Después de crear el clúster, accede de forma automática. Otros operadores deben seguir los pasos en Accede a un clúster desde la consola de Cloud para obtener acceso al clúster.

Si encuentras un error cuando verificas la configuración, la consola de Google Cloud mostrará un mensaje de error que debería ser suficientemente claro como para solucionar el problema de configuración y volver a intentar 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

Antes de comenzar este procedimiento, asegúrate de tener una conexión SSH a la estación de trabajo de administrador, como se describió anteriormente. Todos los siguientes comandos se ejecutan en la estación de trabajo de administrador.

Especifica IP estáticas para el clúster de usuario

A fin de especificar las direcciones IP estáticas que planificaste antes para los nodos del 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. Algunos de los campos ya están completados con valores predeterminados, valores generados o valores que proporcionaste cuando configuraste la estación de trabajo de administrador, como los detalles de vCenter: no cambies estos valores para esta instalación simple.

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

  2. Completa los campos restantes de la siguiente manera, con la información que recopilaste antes. A continuación, puedes ver un archivo de configuración de ejemplo completo si no estás seguro de cómo dar formato a cualquier campo o puedes consultar la referencia del archivo de configuración del clúster de usuario. Es posible que quieras mantener la página abierta en una pestaña o ventana separada para poder consultarla a medida que completas los valores de los campos.

Campo o sección Instructions
name El nombre que elijas para el clúster de usuario
network.hostConfig.dnsServers Direcciones IP para servidores DNS que pueden usar las VMs del clúster.
network.hostConfig.ntpServers Direcciones IP para servidores de tiempo que pueden usar las VMs del clúster.
network.ipMode.type Establece este campo en "static".
network.ipMode.ipBlockFilePath La ruta a user-cluster-ipblock.yaml.
network.serviceCIDR y network.podCIDR Solo cambia estos valores si necesitas usar rangos no predeterminados, como se describe en Evita la superposición.
loadBalancer.vips.controlPlaneVIP La dirección IP virtual (VIP) que elegiste para el servidor de la API de Kubernetes del clúster de usuario.
loadBalancer.vips.ingressVIP La dirección IP virtual que elegiste configurar en el balanceador de cargas para el proxy de entrada.
loadbalancer.kind Establece este campo en "MetalLB".
loadbalancer.metalLB.addressPools Especifica un grupo de direcciones para el balanceador de cargas; estas son las VIP de servicio que planificaste. Proporciona un name para el grupo de direcciones y el addresses que elijas. El grupo de direcciones debe incluir la VIP del proxy de entrada.
nodePools Usa los valores prepropagados proporcionados para un solo grupo de nodos y especifica el name que elegiste. Configura enableLoadBalancer como true para tu grupo de nodos. Esto es necesario para usar MetalLB porque se ejecuta en los nodos de su clúster.
antiAffinityGroups Establecer este campo en "false"
gkeConnect.projectID Configura este campo con el ID del proyecto de tu proyecto de Google.
gkeConnect.registerServiceAccountKeyPath Configura este campo según la clave JSON de tu cuenta de servicio del registro de conexión.

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

Localiza 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 el 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?

Ya completó esta instalación mínima de clústeres de Anthos alojados en VMware. A modo de seguimiento opcional, puedes implementar una aplicación para ver la instalación en acción.