Archivo de configuración del clúster de administrador

En esta página, se describen los campos en el archivo de configuración del clúster de administrador.

Genera una plantilla para tu archivo de configuración

Si usaste gkeadm a fin de crear tu estación de trabajo de administrador, gkeadm generó una plantilla para tu archivo de configuración del clúster de administrador. Además, gkeadm completó algunos de los campos por ti.

Si no usaste gkeadm a fin de crear tu estación de trabajo de administrador, puedes usar gkectl a fin de generar una plantilla para tu archivo de configuración del clúster de administrador.

Si deseas generar una plantilla para el archivo de configuración del clúster de administrador, haz lo siguiente:

gkectl create-config admin --config=OUTPUT_FILENAME

Reemplaza OUTPUT_FILENAME por la ruta de acceso que elijas para la plantilla generada. Si omites esta marca, gkectl asigna un nombre al archivo admin-cluster.yaml y lo coloca en el directorio actual.

Plantilla

Completa el archivo de configuración

En el archivo de configuración, ingresa los valores de los campos como se describe en las siguientes secciones.

bundlePath

String. Es la ruta de tu archivo de paquete de GKE On-Prem.

El archivo de paquete completo de GKE On-Prem contiene todos los componentes de una versión particular de GKE On-Prem. Cuando creas una estación de trabajo de administrador, se incluye un paquete completo en la siguiente ubicación.

/var/lib/gke/bundles/gke-onprem-vsphere-VERSION-full.tgz

Por ejemplo:

bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.5.2-gke.3-full.tgz"

vCenter

En esta sección, se incluye información sobre el entorno de vCenter.

vCenter.address

String. Es la dirección IP o el nombre de host de vCenter Server.

Antes de completar el campo address, descarga e inspecciona el certificado de entrega de vCenter Server. Ingresa el siguiente comando para descargar el certificado y guardarlo en un archivo llamado vcenter.pem.

true | openssl s_client -connect VCENTER_IP:443 -showcerts 2>/dev/null | sed -ne '/-BEGIN/,/-END/p' > vcenter.pem

Reemplaza VCENTER_IP por la dirección IP de tu servidor de vCenter.

Abre el archivo de certificado para ver el nombre común y el alternativo de la entidad:

openssl x509 -in vcenter.pem -text -noout

En el resultado, se muestra el nombre común (CN) de Subject. Este puede ser una dirección IP o un nombre de host. Por ejemplo:

Subject: ... CN = 203.0.113.100
Subject: ... CN = my-vcenter-server.my-domain.example

Puede que, en el resultado, también se incluyan uno o más nombres de DNS en Subject Alternative Name:

X509v3 Subject Alternative Name:
    DNS:vcenter.my-domain.example

Elige el nombre común de Subject o uno de los nombres de DNS en Subject Alternative Name para usarlo como el valor de vcenter.address en el archivo de configuración. Por ejemplo:

vCenter:
  address: "203.0.113.100"
vCenter:
  address: "my-vcenter-server.my-domain.example"

vCenter.datacenter

String. Es el nombre del centro de datos de vCenter. Por ejemplo:

vCenter:
  datacenter: "MY-DATACENTER"

vCenter.cluster

String. Es el nombre del clúster de vCenter. Por ejemplo:

vCenter:
  cluster: "MY-CLUSTER"

vCenter.resourcePool

String. Es el nombre del grupo de recursos de vCenter. Por ejemplo:

Si no usas un grupo de recursos predeterminado, proporciona el nombre del grupo de recursos de vCenter. Por ejemplo:

vCenter:
  resourcePool: "MY-POOL"

Si usas el grupo de recursos predeterminado, proporciona el siguiente valor:

vCenter:
  resourcePool: "VCENTER_CLUSTER/Resources"

Reemplaza VCENTER_CLUSTER por el nombre del clúster de vCenter.

vCenter.datastore

String. Es el nombre del almacén de datos de vCenter. Por ejemplo:

vCenter:
  datastore: "MY-DATASTORE"

Consulta Specifying the root resource pool for a standalone host (Especifica el grupo de recursos raíz de un host independiente).

vCenter.caCertPath

String. Cuando un cliente, como GKE On-Prem, envía una solicitud a vCenter Server, el servidor debe demostrar su identidad al cliente mediante la presentación de un certificado o un paquete de certificados. Para verificar el certificado o el paquete, GKE On-Prem debe tener el certificado raíz en la cadena de confianza.

Establece vCenter.caCertPath en la ruta de acceso del certificado raíz. Por ejemplo:

vCenter:
  caCertPath: "/usr/local/google/home/me/certs/vcenter-ca-cert.pem"

Tu instalación de VMware tiene una autoridad certificada (CA) que emite un certificado para vCenter Server. El certificado raíz de la cadena de confianza es un certificado autofirmado que crea VMware.

Si no deseas usar la CA de VMware, que es la opción predeterminada, puedes configurar VMware para usar una autoridad certificada diferente.

Si vCenter Server usa un certificado que emitió la CA predeterminada de VMware, descarga el certificado de la siguiente manera:

curl -k "https://SERVER_ADDRESS/certs/download.zip" > download.zip

Reemplaza SERVER_ADDRESS por la dirección de tu servidor de vCenter.

Instala el comando unzip y descomprime el archivo del certificado:

sudo apt-get install unzip
unzip downloads.zip

Si el comando de descompresión no funciona la primera vez, vuelve a ingresarlo.

Busca el archivo de certificado en certs/lin.

vCenter.credentials.fileRef.path

String. Es la ruta de acceso de un archivo de configuración de credenciales que contiene el nombre de usuario y la contraseña de la cuenta de usuario de vCenter. La cuenta de usuario debe tener la función de administrador o privilegios equivalentes. Consulta los requisitos de vSphere. Por ejemplo:

vCenter:
  credentials:
    fileRef:
      path: "my-config-folder/admin-creds.yaml"

vCenter.credentials.fileRef.entry

String. Es el nombre del bloque de credenciales en el archivo de configuración de credenciales, que contiene el nombre de usuario y la contraseña de tu cuenta de usuario de vCenter. Por ejemplo:

vCenter:
  credentials:
    fileRef:
      entry: "vcenter-creds"

vCenter.dataDisk

String. GKE On-Prem crea un disco de máquina virtual (VMDK) para contener los datos del objeto de Kubernetes. 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"

network

En esta sección, se incluye información sobre la red de clústeres de administrador.

network.hostConfig

En esta sección, se incluye información sobre los servidores NTP, los servidores DNS y los dominios de búsqueda de DNS que usa tu clúster.

Si proporcionaste un valor para uno o ambos de los siguientes campos, completa esta sección. De lo contrario, quítala:

  • loadBalancer.seesaw.ipBlockFilePath
  • network.ipMode.ipBlockFilePath

network.hostConfig.dnsServers

Arreglo de strings. Son las direcciones de los servidores DNS para los hosts. Por ejemplo:

network:
  hostConfig:
    dnsServers:
    - "172.16.255.1"
    - "172.16.255.2"

network.hostConfig.ntpServers

Array de strings. Son las direcciones de los servidores de tiempo para los hosts. Por ejemplo:

network:
  hostConfig:
    ntpServers:
    - "216.239.35.0"

network.hostConfig.searchDomainsForDNS

Array de strings. Son dominios de búsqueda de DNS para los hosts. Estos dominios se usan como parte de una lista de búsqueda de dominios. Por ejemplo:

network:
  hostConfig:
    searchDomainsForDNS:
    - "my.local.com"

network.ipMode.type

String. Si deseas que los nodos del clúster obtengan la dirección IP de un servidor DHCP, configura esto como "dhcp". Si quieres que los nodos del clúster tengan direcciones IP estáticas seleccionadas de una lista que proporciones, configura esto como "static".

Por ejemplo:

network:
  ipMode:
    type: "static"

network.ipMode.ipBlockFilePath

Si estableces ipMode.type como "static", completa este campo.

Si configuras ipMode.type como "dhcp", quita este campo.

String. La ruta del archivo de bloque de IP para los nodos del clúster de administrador. Por ejemplo:

network:
  ipMode:
    ipBlockFilePath: "/my-config-folder/admin-cluster-ipblock.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.

Por 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

En esta sección, se incluye información sobre el balanceador de cargas para el clúster de administrador.

loadBalancer.vips.controlPlaneVIP

String. Es la dirección IP que decidiste configurar en el balanceador de cargas para el servidor de la API de Kubernetes del clúster de administrador. Por ejemplo:

loadBalancer:
  vips:
    controlplaneVIP: "203.0.113.3"

loadBalancer.vips.addonsVIP

String. Es la dirección IP que elegiste configurar en el balanceador de cargas para complementos. Por ejemplo:

loadBalancer:
  vips:
    addonsVIP: "203.0.113.4"

loadBalancer.kind

String. Configura esto como "Seesaw", "F5BigIP" o "ManualLB". Por ejemplo:

loadBalancer:
  kind: "Seesaw"

loadBalancer.manualLB

Si configuras loadbalancer.kind como "ManualLB", completa esta sección. De lo contrario, quita esta sección.

loadBalancer.manualLB.ingressHTTPNodePort

Quita este campo del archivo de configuración. No se usa en un clúster de administrador.

loadBalancer.manualLB.ingressHTTPSNodePort

Quita este campo del archivo de configuración. No se usa en un clúster de administrador.

loadBalancer.manualLB.controlPlaneNodePort

Número entero. El servidor de la API de Kubernetes en el clúster de administrador se implementa como un Service de tipo NodePort. Debes elegir un valor nodePort para el Service.

Establece este campo en el valor nodePort. Por ejemplo:

loadBalancer:
  manualLB:
    contolPLaneNodePort: 30968

loadBalancer.manualLB.addonsNodePort

Número entero. El servidor de complementos en el clúster de administrador se implementa como un Service de tipo NodePort. Debes elegir un valor nodePort para el Service.

Establece este campo en el valor nodePort. Por ejemplo:

loadBalancer:
  manualLB:
    addonsNodePort: 31405

loadBalancer.f5BigIP

Si configuras loadbalancer.kind como "f5BigIP", completa esta sección. De lo contrario, quita esta sección.

loadBalancer.f5BigIP.address

String. Es la dirección del balanceador de cargas BIG-IP de F5. Por ejemplo:

loadBalancer:
  f5BigIP:
    address: "203.0.113.2"

loadBalancer.f5BigIP.fileRef.path

String. Es la ruta de acceso de un archivo de configuración de credenciales que contiene el nombre de usuario y la contraseña de una cuenta que GKE On-Prem puede usar para conectarse al balanceador de cargas BIG-IP de F5. Por ejemplo:

loadBalancer:
  f5BigIP:
    fileRef:
      path: ""my-config-folder/admin-creds.yaml"

loadBalancer.f5BigIP.fileRef.entry

String. Es el nombre del bloque de credenciales del archivo de configuración de credenciales que contiene el nombre de usuario y la contraseña de la cuenta BIG-IP de F5. Por ejemplo:

loadBalancer:
  f5BigIP:
    fileRef:
      entry: "f5-creds"

loadBalancer.f5BigIP.partition

String. Es el nombre de una partición de BIG-IP que creaste para el clúster de administrador. Por ejemplo:

loadBalancer:
  f5BigIP:
    partition: "my-f5-admin-partition"

loadBalancer.f5BigIP.snatPoolName

String. Si usas SNAT, es el nombre del grupo de SNAT. Si no usas SNAT, quita este campo. Por ejemplo:

loadBalancer:
  f5BigIP:
    snatPoolName: "my-snat-pool"

loadBalancer.seesaw

Si configuras loadbalancer.kind como "Seesaw", completa esta sección. De lo contrario, quita esta sección.

loadBalancer.seesaw.ipBlockFilePath

String. Configura esto en la ruta de acceso del archivo de bloque de IP para tus VM de Seesaw. Por ejemplo:

loadBalancer:
  seesaw:
    ipBlockFilePath: "admin-seesaw-ipblock.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: 125

loadBalancer.seesaw.masterIP

String. Es la VIP del par de VM o VM de Seesaw. Por ejemplo:

loadBalancer:
  seesaw:
    masterIP: 172.16.20.21

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

String. Es el nombre de la red que contiene las VM de Seesaw. Por ejemplo:

loadBalancer:
  seesaw:
    vCenter:
      networkName: "my-seesaw-network"

loadBalancer.seesaw.enableHA

Booleano. Si deseas crear un balanceador de cargas de Seesaw con alta disponibilidad, configura esto como true. De lo contrario, configúralo como false. Por ejemplo:

loadBalancer:
  seesaw:
    enableHA: true

antiAffinityGroups.enabled

Booleano. Configúralo como true para habilitar la creación de reglas de DRS. De lo contrario, configúralo como false. Por ejemplo:

antiAffinityGroups:
  enabled: true

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 administrador, de modo que se distribuyan 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.

  • La cuenta de usuario de vSphere debe tener el privilegio Host.Inventory.Modify cluster.

  • 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 DRS habilitado o no tienes al menos tres hosts en los que se puedan programar las VM de vSphere, configura antiAffinityGroups.enabled como false.

proxy

Si la red está detrás de un servidor proxy, completa esta sección. De lo contrario, quita esta sección.

proxy.url

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

proxy:
  url: "http://my-proxy.example.local:80"

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.

Si especificas proxy.url, también debes especificar proxy.noProxy.

proxy.noProxy

String. Es una lista separada por comas 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, la solicitud se envía directamente. Por ejemplo:

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

privateRegistry

Si tienes un registro de Docker privado, completa esta sección. De lo contrario, quita esta sección.

privateRegistry.address

String. Es la dirección IP de la máquina que ejecuta el registro de Docker privado. Por ejemplo:

privateRegistry:
  address: "203.0.113.10"

privateRegistry.credentials.fileRef.path

String. Es la ruta de acceso de un archivo de configuración de credenciales que contiene el nombre de usuario y la contraseña de una cuenta que GKE On-Prem puede usar para acceder a tu registro de Docker privado. Por ejemplo:

privateRegistry:
  credentials:
    fileRef:
      path: "my-config-folder/admin-creds.yaml"

privateRegistry.credentials.fileRef.entry

String. Es el nombre del bloque de credenciales del archivo de configuración de credenciales que contiene el nombre de usuario y la contraseña de la cuenta del registro de Docker privado.

privateRegistry:
  credentials:
    fileRef:
      entry: "private-registry-creds"

privateRegistry.caCertPath

String. Cuando Docker extrae una imagen del registro privado, el registro debe demostrar su identidad mediante la presentación de un certificado. El certificado del registro está firmado por una autoridad certificada (CA). Docker usa el certificado de la CA para validar el certificado del registro.

Establece el campo en la ruta de acceso del certificado de la CA. Por ejemplo:

privateRegistry:
  caCertPath: "my-cert-folder/registry-ca.crt"

gcrKeyPath

String. Es la ruta de acceso del archivo de claves JSON para la cuenta de servicio que deseas usar a fin de descargar componentes de GKE On-Prem. Por ejemplo:

gcrKeyPath: "my-key-folder/access-key.json"

stackdriver

En esta sección, se incluye información sobre el proyecto y la cuenta de servicio que deseas usar para almacenar registros y métricas.

stackdriver.projectID

String. Es el ID del proyecto de Google Cloud en el que deseas ver los registros. Por ejemplo:

stackdriver:
  projectID: "my-logs-project"

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. Si la red del clúster está controlada por una VPC, establece este campo en true. Esto garantiza que toda la telemetría fluya a través de las direcciones IP restringidas de Google. De lo contrario, establece este campo en false. Por ejemplo:

stackdriver:
  enableVPC: false

stackdriver.serviceAccountKeyPath

String. Es la ruta del archivo de claves JSON para la cuenta de servicio de supervisión y registro. Por ejemplo:

stackdriver:
  serviceAccountKeyPath: "my-key-folder/log-mon-key.json"

cloudAuditLogging

Si deseas integrar los registros de auditoría del servidor de la API de Kubernetes del clúster a los registros de auditoría de Cloud, completa esta sección. De lo contrario, quita esta sección.

cloudAuditLogging.projectid

String. Es el ID del proyecto de Google Cloud en el que deseas ver los registros de auditoría. Por ejemplo:

cloudAuditLogging:
  projectid: "my-audit-project"

cloudAuditLogging.clusterlocation

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

cloudAuditLogging:
  clusterlocation: "us-central1"

cloudAuditLogging.serviceaccountkeypath

String. Es la ruta de acceso del archivo de claves JSON para la cuenta de servicio de registro y auditoría. Por ejemplo:

cloudAuditLogging:
  serviceaccountkeypath: "my-key-folder/audit-log-key.json"

autoRepair.enabled

Booleano. Configúralo como true para habilitar la reparación automática de nodos. De lo contrario, configúralo como false. Por ejemplo:

autoRepair:
  enabled: true