Aprende a crear un clúster de administrador y de usuario con la configuración básica.
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.
Configura direcciones IP estáticas para tu 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
.
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 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ó la estación de trabajo de administrador, generó un segundo archivo de configuración llamado config.yaml
. Este archivo de configuración, que se encuentra en la estación de trabajo de administrador, se usa para crear clústeres de GKE On-Prem.
Los archivos admin-ws-config.yaml
y config.yaml
tienen varios campos en común. Los valores para esos campos en común ya están propagados en el archivo config.yaml
.
Estos son los campos que ya se propagaron con los valores que proporcionaste cuando creaste la estación de trabajo de administrador:
vcenter: credentials: address: username: password: datacenter: datastore: cluster: network: resourcepool: cacertpath: gkeconnect: projectid: registerserviceaccountkeypath: agentserviceaccountkeypath: stackdriver: projectid: serviceaccountkeypath: gcrkeypath:
Completa el resto del archivo de configuración de GKE On-Prem
A continuación, debes completar los campos restantes del archivo config.yaml
.
bundlepath
El archivo de paquete de GKE On-Prem contiene todos los componentes de una versión particular de GKE On-Prem. Establece el valor de bundlepath
como la ruta de acceso del archivo de paquete de la estación de trabajo de administrador.
bundlepath: /var/lib/gke/bundles/gke-onprem-vsphere-1.4.3-gke.3-full.tgz
vcenter.datadisk
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:vcenter: ... datadisk: "my-gke-on-prem-folder/my-disk.vmdk"
En la versión 1.1.1, un problema conocido requiere que proporciones el identificador único universal (UUID) de la carpeta en lugar de la ruta de acceso.
proxy
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.
Ejemplo:
proxy: url: "http://my-proxy.example.local:80" noproxy: "10.151.222.0/24, my-host.example.local,10.151.2.1"
admincluster.ipblockfilepath
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. Proporciona la ruta de acceso al archivo de configuración de host en el campo admincluster.ipblockfilepath
. Por ejemplo:
admincluster: ipblockfilepath: "/my-config-directory/admin-hostconfig.yaml"
admincluster.bigip.credentials
GKE On-Prem necesita conocer la dirección IP o el nombre de host, el nombre de usuario y la contraseña de tu balanceador de cargas BIG-IP de F5. Establece los valores en admincluster.bigip
para proporcionar esta información. Coloca un ancla, &bigip-credentials
, después de credentials
para que no tengas que repetir esta información en la sección usercluster
. Por ejemplo:
admincluster: ... bigip: credentials: &bigip-credentials address: "203.0.113.2" username: "my-admin-f5-name" password: "rJDlm^%7aOzw"
admincluster.bigip.partition
Antes creaste una partición de BIG-IP para el clúster de administrador. Establece admincluster.bigip.partition
en el nombre de la partición. Por ejemplo:
admincluster: ... bigip: partition: "my-admin-f5-partition"
admincluster.vips
Establece el valor de admincluster.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 ingressvip
como la dirección IP que elegiste configurar en el balanceador de cargas para el servicio de entrada del clúster de administrador. Por ejemplo:
admincluster: ... vips: controlplanevip: 203.0.113.3 ingressvip: 203.0.113.4
admincluster.serviceiprange
y admincluster.podiprange
El clúster de administrador debe tener un rango de direcciones IP que se usa con los Services y uno que se usa con los Pods. Estos rangos se especifican en los campos admincluster.serviceiprange
y admincluster.podiprange
. Estos campos se propagan cuando ejecutas gkectl create-config
. 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:
admincluster: ... serviceiprange: 10.96.232.0/24 podiprange: 192.168.0.0/16
usercluster.ipblockfilepath
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. Proporciona la ruta de acceso al archivo de configuración de host en el campo usercluster.ipblockfilepath
. Por ejemplo:
usercluster: ipblockfilepath: "/my-config-directory/user-hostconfig.yaml"
usercluster.bigip.credentials
Ingresa una referencia, *bigip-credentials
, después de usercluster.bigip.credentials
para usar los mismos valores de address
, username
y password
que especificaste en admincluster.bigip.credentials
. Por ejemplo:
usercluster: ... bigip: credentials: *bigip-credentials
usercluster.bigip.partition
Antes creaste una partición de BIG-IP para el clúster de usuario. Establece usercluster.bigip.partition
en el nombre de la partición. Por ejemplo:
usercluster: ... bigip: partition: "my-user-f5-partition" ...
usercluster.vips
Establece el valor de usercluster.vips.controlplanevip
como 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 ingressvip
como la dirección IP que elegiste configurar en el balanceador de cargas para el servicio de entrada del clúster de usuario. Por ejemplo:
usercluster: ... vips: controlplanevip: 203.0.113.6 ingressvip: 203.0.113.7
usercluster.serviceiprange
y usercluster.podiprange
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 usercluster.serviceiprange
y usercluster.podiprange
. Estos campos se propagan cuando ejecutas gkectl create-config
. Si lo prefieres, puedes cambiar los valores propagados a los valores que elijas.
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:
usercluster: ... serviceiprange: 10.96.233.0/24 podiprange: 172.16.0.0/12
Inhabilita las reglas de antiafinidad de DRS de VMware
GKE On-Prem crea de forma automática reglas de antiafinidad de Distributed Resource Scheduler (DRS) de VMware para los nodos del clúster de usuario, de modo que se distribuyen en al menos tres hosts físicos del centro de datos.
Para esta función, se requiere que el entorno de vSphere cumpla con las siguientes condiciones:
- DRS de VMware debe estar habilitado. Para DRS de VMware, se requiere la edición de licencia vSphere Enterprise Plus. Para aprender a habilitar DRS, consulta Enabling VMware DRS in a cluster (Habilita DRS de VMware en un clúster).
- La cuenta de usuario de vSphere proporcionada en el campo
vcenter
debe tener el permisoHost.Inventory.EditCluster
. - Debe haber al menos tres hosts físicos disponibles.
Recuerda que, si tienes una licencia de vSphere Standard, no puedes habilitar DRS de VMware.
Si no tienes habilitado DRS, o si no tienes un mínimo de tres hosts en los que se puedan programar las VM de vSphere, agrega usercluster.antiaffinitygroups.enabled: false
al archivo de configuración.
Por ejemplo:
usercluster: ... antiaffinitygroups: enabled: false
Para obtener más información, consulta las notas de la versión 1.1.0-gke.6.
lbmode
Establece lbmode
en "Integrated"
. Por ejemplo:
lbmode: "Integrated"
stackdriver.clusterlocation
Establece stackdriver.clusterlocation
en una región de Google Cloud en la que desees almacenar 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.
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 --config config.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 config.yaml --skip-validation-all
Crea clústeres de administrador y de usuario
Crea el clúster de administrador y de usuario mediante la ejecución del comando
gkectl create cluster
.gkectl create cluster --config config.yaml --skip-validation-all
El comando
gkectl create cluster
crea archivoskubeconfig
llamados[CLUSTER_NAME]-kubeconfig
en el directorio actual, en los que [CLUSTER_NAME] es el nombre que estableciste paracluster
. Por ejemplo:MY-CLUSTER-kubeconfig
En la documentación de GKE On-Prem, se usan los siguientes marcadores de posición para hacer referencia a estos archivos
kubeconfig
:- Clúster de administrador: [ADMIN_CLUSTER_KUBECONFIG]
- Clúster de usuario: [USER_CLUSTER_KUBECONFIG]
Verifica que el clúster esté creado y en ejecución:
Para verificar el clúster de administrador, ejecuta el siguiente comando:
kubectl get nodes --kubeconfig [ADMIN_CLUSTER_KUBECONFIG]
En el resultado, se muestran los nodos del clúster de administrador.
Para verificar el clúster de usuario, ejecuta el siguiente comando:
kubectl get nodes --kubeconfig [USER_CLUSTER_KUBECONFIG]
En el resultado, se muestran los nodos del clúster de usuario. Por ejemplo:
NAME STATUS ROLES AGE VERSION xxxxxx-1234-ipam-15008527 Ready <none> 12m v1.14.7-gke.24 xxxxxx-1234-ipam-1500852a Ready <none> 12m v1.14.7-gke.24 xxxxxx-1234-ipam-15008536 Ready <none> 12m v1.14.7-gke.24
Continúa con la siguiente sección para obtener información sobre cómo implementar una aplicación en el clúster de usuario.