Crea un clúster de usuario (básico)

En esta página, se muestra cómo crear un clúster de usuario.

Los pasos en este tema se escribieron con la suposición de que usaste gkeadm para crear la estación de trabajo de administrador. Si no usaste gkeadm y seguiste los pasos en Crea una estación de trabajo de administrador con una dirección IP estática, debes realizar algunos ajustes a medida que avanzas en este tema. Mediante los pasos individuales, se explican los ajustes necesarios.

Si estás detrás de un proxy, todos los comandos de gkectl usan de forma automática el mismo proxy que estableciste en el archivo de configuración para las solicitudes de Internet de la estación de trabajo de administrador. Si la estación de trabajo de administrador no está ubicada detrás del mismo proxy, consulta las “Opciones de proxy manuales” en los temas avanzados de Crea una estación de trabajo de administrador: IP estática | DHCP.

Establece una conexión SSH a la estación de trabajo de administrador

Para establecer una conexión SSH a la estación, sigue las instrucciones en Obtén una conexión SSH a la estación de trabajo de administrador.

La cuenta de servicio incluida en la lista de anunciantes permitidos está activada en la estación de trabajo de administrador. Realiza todos los pasos restantes de este tema en la estación de trabajo de administrador.

Configura direcciones IP estáticas para el clúster de usuario

Para especificar las direcciones IP estáticas que deseas usar en el clúster de usuario, crea un archivo de configuración de host llamado user-hostconfig.yaml. Para este ejercicio, debes especificar tres direcciones IP que usará el clúster de usuario.

El siguiente es un ejemplo de un archivo de configuración de host con tres hosts:

hostconfig:
  dns: 172.16.255.1
  tod: 216.239.35.0
  otherdns:
  - 8.8.8.8
  - 8.8.4.4
  othertod:
  - ntp.ubuntu.com
  searchdomainsfordns:
  - "my.local.com"
blocks:
  - netmask: 255.255.252.0
    gateway: 172.16.23.254
    ips:
    - ip: 172.16.20.15
      hostname: user-host1
    - ip: 172.16.20.16
      hostname: user-host2
    - ip: 172.16.20.17
      hostname: user-host3

El campo ips es un arreglo de direcciones IP y nombres de host. Estas son las direcciones IP y los nombres de host que GKE On-Prem asignará a los nodos del clúster de usuario.

En el archivo de configuración del host, también debes especificar las direcciones de los servidores DNS, los servidores de tiempo y la puerta de enlace predeterminada que usarán los nodos del clúster de usuario.

El campo searchdomainsfordns es un arreglo de dominios de búsqueda de DNS que se usa en el clúster. Estos dominios se usan como parte de una lista de búsqueda de dominios.

Campos propagados en el archivo de configuración

Recuerda que cuando creaste la estación de trabajo de administrador, completaste un archivo de configuración llamado admin-ws-config.yaml. La herramienta de línea de comandos de gkeadm usó el archivo admin-ws-config.yaml para crear la estación de trabajo de administrador.

Cuando gkeadm creó la estación de trabajo de administrador, generó otro archivo de configuración llamado user-cluster.yaml. Este archivo de configuración, que se encuentra en la estación de trabajo de administrador, se usa para crear el clúster de usuario.

Los archivos admin-ws-config.yaml y user-cluster.yaml tienen varios campos en común. Los valores para esos campos en común ya están propagados en el archivo user-cluster.yaml.

Estos son los campos que ya se propagaron con los valores que proporcionaste cuando creaste la estación de trabajo de administrador:

stackdriver:
  projectID:
  serviceAccountKeyPath:
gkeConnect:
  projectID:
  registerServiceAccountKeyPath:
  agentServiceAccountKeyPath:

Completa el resto del archivo de configuración

A continuación, debes completar los campos restantes del archivo user-cluster.yaml.

name

String. El nombre que elijas para el clúster de usuario. Por ejemplo:

name: "my-user-cluster"

gkeOnPremVersion

String. La versión de GKE On-Prem para el clúster de usuario. Por ejemplo:

gkeOnPremVersion: "1.4.3-gke.3"

network.ipMode.type

String. Configura esto como "static".

network:
  ipMode:
    type: "static"

network.ipBlockFilePath

String. Debido a que usas direcciones IP estáticas, debes tener un archivo de configuración de host como se describe en Configura direcciones IP estáticas. Establece network.ipBlockFilePath en la ruta de acceso del archivo de configuración de host. Por ejemplo:

network:
  ipBlockFilePath: "/my-config-directory/admin-hostconfig.yaml"

network.serviceCIDR y network.podCiDR

Strings. El clúster de usuario debe tener un rango de direcciones IP que se usa con los Services y un rango de direcciones IP que se usa con los Pods. Estos rangos se especifican en los campos network.serviceCIDR y network.podCIDR. Estos campos se propagan con valores predeterminados. Si quieres, puedes cambiar los valores propagados por los valores que desees.

Los rangos de Services y Pods no deben superponerse. Tampoco deben superponerse en ningún clúster con las direcciones IP que se usan para los nodos.

Ejemplo:

network:
  ...
  serviceCIDR: "10.96.232.0/24"
  podCIDR: "192.168.0.0/16"

network.vCenter.networkName

String. Es el nombre de la red de vSphere para los nodos del clúster.

Si el nombre contiene un carácter especial, debes usar una secuencia de escape.

Caracteres especiales Secuencia de escape
Barra (/) %2f
Barra inversa (\) %5c
Signo de porcentaje (%) %25

Si el nombre de la red no es único, es posible especificar una ruta de acceso a la red, como /DATACENTER/network/NETWORK_NAME.

Por ejemplo:

network:
  vCenter:
    networkName: "MY-CLUSTER-NETWORK"

loadBalancer.vips

Strings. Establece el valor de loadBalancer.vips.controlPlaneVIP en la dirección IP que elegiste configurar en el balanceador de cargas para el servidor de la API de Kubernetes del clúster de usuario. Establece el valor de loadBalancer.vips.ingressVIP en la dirección IP que elegiste configurar en el balanceador de cargas para el servicio de entrada en el clúster de usuario. Por ejemplo:

loadBalancer:
  ...
  vips:
    controlplaneVIP: "203.0.113.5"
    ingressVIP: "203.0.113.6"

loadBalancer.kind

String. Configura esto como "Seesaw". Por ejemplo:

loadBalancer:
  kind: "Seesaw"

loadBalancer.seesaw.ipBlockFilePath

String. Establece esto en la ruta de acceso del archivo hostconfig para las VM de Seesaw. Por ejemplo:

loadbalancer:
  ...
  seesaw:
    ipBlockFilePath: "user-seesaw-hostconfig.yaml"

loadBalancer.seesaw.vird

Número entero. Es el identificador del router virtual de la VM de Seesaw. Este identificador debe ser único en una VLAN. El rango válido es de 1 a 255. Por ejemplo:

loadBalancer:
  seesaw:
    vrid: 126

loadBalancer.seesaw.masterIP

String. La dirección IP del plano de control para la VM de Seesaw. Por ejemplo:

loadBalancer:
  seesaw:
    masterIP: "203.0.113.7"

loadBalancer.seesaw.cpus

Número entero. Es la cantidad de CPU para la VM de Seesaw. Por ejemplo:

loadBalancer:
  seesaw:
    cpus: 8

loadBalancer.seesaw.memoryMB

Número entero. Es la cantidad de megabytes de memoria para la VM de Seesaw. Por ejemplo:

loadBalancer:.
  seesaw:
    memoryMB: 8192

loadBalancer.seesaw.enableHA

Booleano. Configura esto como false. Por ejemplo:

loadBalancer:.
  seesaw:
    enableHA: false

nodePools.name

String. El nombre que elijas para un grupo de nodos. Por ejemplo:

nodePools:
- name: "my-user-pool"

nodePools.replicas

Número entero. La cantidad de VM en el grupo de nodos. Configura esto como 3.

nodePools:
- name: "my-user-pool"
  replicas: 3

stackdriver.clusterLocation

String. Es la región de Google Cloud en la que deseas almacenar los registros. Te recomendamos que elijas una región cercana a tu centro de datos local.

stackdriver.enablevpc

Establece stackdriver.enablevpc en true si tienes la red del clúster bajo el control de una VPC. Esto garantiza que toda la telemetría fluya a través de las direcciones IP restringidas de Google.

stackdriver.enableVPC

Booleano. Establece stackdriver.enableVPC en true si tienes la red del clúster bajo el control de una VPC. Esto garantiza que toda la telemetría fluya a través de las direcciones IP restringidas de Google. De lo contrario, establécelo en false. Por ejemplo:

stackdriver:
  enableVPC: false

Campos adicionales en el archivo de configuración

El archivo de configuración de GKE On-Prem tiene varios campos además de los que se muestran en este tema. Por ejemplo, puedes usar el campo manuallbspec para configurar GKE On-Prem a fin de que se ejecute en modo de balanceo de cargas manual.

Para obtener una descripción completa de los campos del archivo de configuración, consulta Instala mediante DHCP e Instala mediante direcciones IP estáticas.

Valida el archivo de configuración

Después de modificar el archivo de configuración, ejecuta gkectl check-config a fin de verificar que el archivo sea válido y se pueda usar para la instalación:

gkectl check-config --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --config [CONFIG_FILE]

Donde:

  • [ADMIN_CLUSTER_KUBECONFIG] es la ruta de acceso del archivo kubeconfig del clúster de administrador.

  • [CONFIG_FILE] es la ruta de acceso del archivo de configuración del clúster de usuario.

Si el comando muestra algún mensaje de FAILURE, 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.

Crea un balanceador de cargas

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

gkectl create loadbalancer --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --config [CONFIG_FILE]

Donde:

  • [ADMIN_CLUSTER_KUBECONFIG] es la ruta de acceso del archivo kubeconfig del clúster de administrador.

  • [CONFIG_FILE] es la ruta de acceso del archivo de configuración del clúster de usuario.

Crea el clúster de usuario

Para crearlo, haz lo siguiente:

gkectl create cluster --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --config [CONFIG_FILE]

Donde:

  • [ADMIN_CLUSTER_KUBECONFIG] es la ruta de acceso del archivo kubeconfig del clúster de administrador.

  • [CONFIG_FILE] es la ruta de acceso del archivo de configuración del clúster de usuario.