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

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

En los pasos de este tema, se supone que usaste gkeadm para crear tu estación de trabajo de administrador. Si no usaste gkeadm y seguiste el tema avanzado Crea una estación de trabajo de administrador con una dirección IP estática, es posible que debas realizar ajustes como se explica en cada paso. Para una estación de trabajo de administrador DHCP, debes usar la guía de instalación de DHCP correspondiente.

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 administrador

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

El siguiente es un ejemplo de un archivo de configuración de host con cinco 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.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

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

En el archivo de configuración de 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 administrador.

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 tu archivo de configuración de GKE On-Prem

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ó tu estación de trabajo de administrador, generó otro archivo de configuración llamado admin-cluster.yaml. Este archivo de configuración, que se encuentra en tu estación de trabajo de administrador, se usa para crear tu clúster de administrador.

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

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

bundlePath:
vCenter:
  credentials:
    address:
    username:
    password:
  datastore:
  resourcePool:
  caCertPath:
  datacenter:
  cluster:
loadbalancer
  seesaw:
    cpus:
    memoryMB:
    enableHA:
gcrKeyPath:
stackdriver:
  projectID:
  serviceAccountKeyPath:

Deja todos los valores propagados sin modificar.

Cómo completar el resto del archivo de configuración de GKE On-Prem

A continuación, debes completar los campos restantes en tu archivo admin-cluster.yaml.

vCenter.dataDisk

String. GKE On-Prem crea un disco de máquina virtual (VMDK) para contener los datos del objeto de Kubernetes del clúster de administrador. El instalador crea el VMDK por ti, pero debes proporcionar un nombre para él en el campo vCenter.dataDisk. Por ejemplo:

vCenter:
  ...
  dataDisk: "my-disk.vmdk"
Almacén de datos de vSAN: Crea una carpeta para el VMDK

Si usas un almacén de datos de vSAN, debes colocar el VMDK en una carpeta. Debes crear la carpeta de forma manual con anticipación. Para crear la carpeta, puedes usar govc:

govc datastore.mkdir -namespace=true my-gke-on-prem-folder

Luego, establece vCenter.dataDisk en la ruta de acceso del VMDK e incluye la carpeta. Por ejemplo:

vDenter:
...
dataDisk: "my-gke-on-prem-folder/my-disk.vmdk"

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 administrador debe tener un rango de direcciones IP que se use con los Services y uno que se use 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 administrador. Establece el valor de loadBalancer.vips.addonsVIP en la dirección IP que elegiste configurar en el balanceador de cargas para los complementos. Por ejemplo:

loadBalancer:
  ...
  vips:
    controlplaneVIP: "203.0.113.3"
    addonsVIP: "203.0.113.4"

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: "admin-seesaw-hostconfig.yaml"

loadBalancer.seesaw.vird

String. 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: 125

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

String. Una dirección IP, según tu elección, que la VM de Seesaw anunciará. Por ejemplo:

loadBalancer:
  seesaw:
    masterIP: "172.16.20.21"

loadBalancer.seesaw.enableHA

Booleano. Configura esto como false. Por ejemplo:

loadBalancer:.
  seesaw:
    enableHA: false

proxy

Strings. Si la red está detrás de un servidor proxy, debes especificar la dirección del proxy y las direcciones que no deben pasar por el servidor proxy.

Establece proxy.url para especificar la dirección HTTP del servidor proxy. Debes incluir el número de puerto incluso si es el mismo que el puerto predeterminado del esquema. Los clústeres de GKE On-Prem usan el servidor proxy que especificas aquí. Además, la estación de trabajo de administrador está configurada de forma automática para usar este mismo servidor proxy, a menos que establezcas la variable de entorno HTTPS_PROXY en la estación de trabajo de administrador.

Establece proxy.noProxy para definir una lista de direcciones IP, rangos de direcciones IP, nombres de host y nombres de dominio que no deben pasar por el servidor proxy. Cuando GKE On-Prem envía una solicitud a una de estas direcciones, hosts o dominios, esa solicitud se envía directamente. Por ejemplo:

proxy:
  url: "http://my-proxy.example.local:80"
  noProxy: "10.151.222.0/24, my-host.example.local,10.151.2.1"

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. Por ejemplo:

stackdriver:
  clusterLocation: "us-central1"

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 manualLB 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 --config admin-cluster.yaml

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.

Ejecuta gkectl prepare

Ejecuta gkectl prepare para inicializar el entorno de vSphere:

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

Crea tu balanceador de cargas

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

gkectl create loadbalancer --config [CONFIG_FILE]

En el ejemplo anterior, [CONFIG_FILE] es la ruta de tu archivo de configuración.

Crea el clúster de administrador

Crea el clúster de administrador:

gkectl create admin --config [CONFIG_FILE]

En el ejemplo anterior, [CONFIG_FILE] es la ruta de tu archivo de configuración.