En esta página, se describen los campos del archivo de configuración del clúster de usuario de clústeres de Anthos alojados en VMware (GKE On-Prem).
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 de clústeres de usuarios. Además, gkeadm
completó algunos de los campos por ti.
Si no usaste gkeadm
para crear tu estación de trabajo de administrador, puedes usar gkectl
a fin de generar una plantilla para el archivo de configuración de clústeres de usuarios.
Si deseas generar una plantilla para el archivo de configuración de clústeres de usuarios, haz lo siguiente:
gkectl create-config cluster --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 user-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.
name
String. El nombre que elijas para el clúster de usuario. Por ejemplo:
name: "my-user-cluster"
gkeOnPremVersion
String. La versión de clústeres de Anthos alojados en VMware de tu clúster de usuario. Por ejemplo:
gkeOnPremVersion: 1.6.0-gke.7
vCenter
Si deseas que todos los aspectos de tu entorno de vCenter sean los mismos que especificaste para tu clúster de administrador, quita esta sección o déjala comentada.
Si deseas que algunos aspectos de tu entorno de vCenter sean diferentes de los que especificaste para tu clúster de administrador, completa los campos relevantes en esta sección. Cualquier campo que configures aquí en la sección vCenter
anula los campos correspondientes en tu archivo de configuración del clúster de administrador.
vCenter.resourcePool
String. Es el nombre del grupo de recursos de vCenter para tu clúster de usuario. Si usas un grupo de recursos no predeterminado, proporciona el nombre de tu grupo de recursos de vCenter. Por ejemplo:
vCenter: resourcePool: "MY-USER-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.
Consulta Specifying the root resource pool for a standalone host (Especifica el grupo de recursos raíz de un host independiente).
vCenter.datastore
String. Es el nombre del almacén de datos de vCenter para tu clúster de usuario. Por ejemplo:
vCenter: datastore: "MY-USER-DATASTORE"
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/user-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 unzip
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 tu 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-directory/user-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"
enableDataplaneV2
Booleano. Si deseas habilitar Dataplane V2 (Beta), configúralo como true
.
De lo contrario, configúralo como false
. Por ejemplo:
enableDataplaneV2: true
network
Esta sección contiene información sobre tu red de clústeres de usuarios.
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, quita esta sección.
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
Arreglo 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
Arreglo 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 su 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 de acceso del archivo de bloque de IP de tu clúster. Por ejemplo:
network: ipMode: ipBlockFilePath: "/my-config-folder/user-cluster-ipblock.yaml"
network.serviceCIDR
y network.podCiDR
Strings. El clúster de usuarios debe tener un rango de direcciones IP a fin de usar con los servicios y un rango de direcciones IP para usar 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 de usuarios.
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, se puede especificar una ruta de acceso a la red, como /DATACENTER/network/NETWORK_NAME.
Por ejemplo:
network: vCenter: networkName: "MY-USER-CLUSTER-NETWORK"
loadBalancer
En esta sección, se conserva información sobre el balanceador de cargas para el clúster de usuarios.
loadBalancer.vips.controlPlaneVIP
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.ingressVIP
La dirección IP que elegiste configurar en el balanceador de cargas para el tráfico de entrada. Por ejemplo:
loadBalancer: vips: ingressVIP: "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 o déjala como comentario.
loadBalancer.manualLB.ingressHTTPNodePort
Número entero. El servicio de entrada en un clúster de usuarios se implementa como Servicios de Kubernetes de tipo LoadBalancer
.
El servicio tiene un ServicePort para HTTP. Debes elegir un valor nodePort
para los ServicePort de HTTP.
Establece este campo en el valor nodePort
. Por ejemplo:
loadBalancer: manualLB: ingressHTTPNodePort: 32527
loadBalancer.manualLB.ingressHTTPSNodePort
Número entero. El servicio de entrada en un clúster de usuario se implementa como un servicio de tipo LoadBalancer. El Servicio tiene un ServicePort para HTTPS. Debes elegir un valor nodePort
para el ServicePort de HTTPS.
Establece este campo en el valor nodePort
. Por ejemplo:
loadBalancer: manualLB: ingressHTTPSNodePort: 30139
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: controlPlaneNodePort: 30968
loadBalancer.manualLB.addonsNodePort
Quita este campo. No se usa en un clúster de usuario.
loadBalancer.f5BigIP
Si estableces loadbalancer.kind
como "f5BigIP"
, completa esta sección. De lo contrario, quita esta sección o déjala como comentario.
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. La ruta de un archivo de configuración de credenciales que contiene el nombre de usuario y la contraseña de una cuenta que los clústeres de Anthos alojados en VMware pueden usar para conectarse a tu balanceador de cargas BIG-IP de F5. Por ejemplo:
loadBalancer: f5BigIP: fileRef: path: ""my-config-folder/user-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 o déjalo como comentario. 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 o déjala como comentario.
loadBalancer.seesaw.ipBlockFilePath
String. Configura esto en la ruta del archivo de bloque de IP para tu VM de Seesaw. Por ejemplo:
loadbalancer: seesaw: ipBlockFilePath: "user-seesaw-ipblock.yaml"
loadBalancer.seesaw.vird
Número entero. Es el identificador del router virtual de tu VM de Seesaw o par de VM. 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. Un VIP de tu elección que anunciará la VM de Seesaw del plano de control. Por ejemplo:
loadBalancer: seesaw: masterIP: 172.16.20.21
loadBalancer.seesaw.cpus
Número entero. Es la cantidad de CPU para cada una de tus VM de Seesaw. Por ejemplo:
loadBalancer:. seesaw: cpus: 8
loadBalancer.seesaw.memoryMB
Número entero. Es la cantidad de megabytes de memoria para cada una de tus 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
masterNode
En esta sección, se conserva información sobre los nodos en el clúster de administrador que funcionan como nodos del plano de control en tu clúster de usuario.
masterNode.cpus
Número entero. La cantidad de CPU para cada nodo de clúster administrador que funcionan como planos de control para este clúster de usuario. Por ejemplo:
masterNode: cpus: 8
masterNode.memoryMB
Número entero. Los megabytes de memoria para cada nodo de clúster de administrador que funciona como un plano de control en este clúster de usuario. Por ejemplo:
masterNode: memoryMB: 8192
masterNode.replicas
Número entero. La cantidad de nodos del plano de control para este clúster de usuario. Establece este campo como 1 o 3. Por ejemplo:
masterNode: replicas: 3
nodePools
Arreglo de objetos, cada uno de los cuales describe un grupo de nodos.
nodePools[i].name
String. Un nombre que elijas para el grupo de nodos. Por ejemplo:
nodePools: - name: "my-node-pool"
nodePools[i].cpus
Número entero. Es la cantidad de CPU para cada nodo en el grupo. Por ejemplo:
nodePools" - name: "my-node-pool" cpus: 8
nodePools[i].memoryMB
Número entero. Son los megabytes de memoria para cada nodo en el grupo. Por ejemplo:
nodePools" - name: "my-node-pool" memoryMB: 8192
nodePools[i].replicas
Número entero. Es la cantidad de nodos del grupo. Por ejemplo:
nodePools: - name: "my-node-pool" replicas: 5
noodePools[i].labels
Asignación. Son las etiquetas para aplicar a cada nodo en el grupo. Por ejemplo:
nodePools: - name: "my-node-pool" labels: environment: "production" tier: "cache"
nodePools[i].taints
Arreglo de objetos, cada uno de los cuales describe un taint. Por ejemplo:
nodePools: - name: "my-node-pool" taints: - key: "staging" value: "true" effect: "NoSchedule"
nodePools[i].bootDiskSizeGB
Número entero. El tamaño del disco de arranque en gigabytes por cada nodo del grupo. Esta configuración está disponible a partir de la versión 1.5.0 de clústeres de Anthos alojados en VMware. Por ejemplo:
nodePools" - name: "my-node-pool" bootDiskSizeGB: 40
nodePools[i].vsphere.datastore
String. El nombre del almacén de datos de vCenter en el que se creará cada nodo del grupo. Por ejemplo:
nodePools: - name: "my-node-pool" vsphere: datastore: "my-datastore"
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
Los clústeres de Anthos alojados en VMware crean 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.
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
.
authentication
En esta sección, se conserva la información sobre cómo se autentican y autorizan los usuarios del clúster.
authentication.oidc
No uses esta sección. En su lugar, después de la creación del clúster, edita el recurso personalizado ClientConfig como se describe en Configura clústeres para Anthos Identity Service con OIDC.
authentication.sni
Si deseas proporcionar un certificado de entrega adicional para el servidor de la API de Kubernetes del clúster, completa esta sección. De lo contrario, quita esta sección o déjala como comentario.
authentication.sni.certPath
String. Es la ruta a un certificado de entrega para el servidor de API de Kubernetes. Por ejemplo:
authentication: sni: certPath: "my-cert-folder/example.com.crt"
authentication.sni.keyPath
String. Es la ruta de acceso al archivo de claves privadas del certificado. Por ejemplo:
authentication: sni: keyPath: "my-cert-folder/example.com.key"
authentication.ldap
Si deseas entregar información sobre tu proveedor de LDAP, completa esta sección. De lo contrario, quita esta sección.
authentication.ldap.name
String. El nombre de tu proveedor de LDAP. Por ejemplo:
authentication: ldap: name: "my-ldap-provider"
authentication.ldap.host
String. El nombre de host o la dirección IP de tu proveedor de LDAP Por ejemplo:
authentication: ldap: host" "203.0.113.20"
authentication.ldap.connectionType
String. Configúralo como "insecure"
para usar una conexión no segura con LDAP. Para usar una conexión segura, quita este campo.
La opción predeterminada es usar LDAP sobre TLS. Configura connectionType como "insecure"
para cambiar esto y usar una conexión no segura. Si configuras esta opción como "insecure"
, no es necesario proporcionar un valor para ldap.caPath
.
Ejemplo:
authentication: ldap: connectionType: "insecure"
authentication.ldap.caPath
String. La ruta de acceso del certificado raíz de tu proveedor de LDAP Por ejemplo:
authentication: ldap: caPath: "my-cert-folder/ldap-cert.pem"
authentication.ldap.user.baseDN
String. La ubicación de las entradas del usuario en el directorio de LDAP. Por ejemplo:
authentication: ldap: user: baseDN: "DC=example-domain,DC=com"
authentication.ldap.user.userAttribute
String: el nombre del atributo que precede al nombre de usuario en un DN. El valor predeterminado es "CN"
. Por ejemplo:
authentication: ldap: user: userAttribute: "CN"
authentication.ldap.user.memberAttribute
String. El nombre del atributo que registra la membresía de grupo de un usuario. El valor predeterminado es "memberOf"
. Por ejemplo:
authentication: ldap: user: memberAttribute: "memberOf"
stackdriver
En esta sección, se presenta información sobre el proyecto de Google Cloud y la cuenta de servicio que deseas usar para almacenar los registros y las 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 de tu clúster está controlada por una VPC, establece esto en este campo como 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"
stackdriver.disableVsphereResourceMetrics
Booleano. Configúralo como true
para inhabilitar la recopilación de métricas de vSphere.
De lo contrario, configúralo como false
. Por ejemplo:
stackdriver: disableVsphereResourceMetrics: true
gkeConnect
En esta sección, se conserva información sobre el proyecto de Google Cloud y las cuentas de servicio que deseas usar para conectar tu clúster a Google Cloud.
gkeConnect.projectID
String. Es el ID del proyecto de Cloud que deseas usar para conectar tu clúster a Google Cloud. Por ejemplo:
gkeConnect: projectID: "my-connect-project-123"
gkeConnect.registerServiceAccountKeyPath
String. Es la ruta del archivo de claves JSON para tu cuenta de servicio de registro de conexión. Por ejemplo:
gkeConnect: registerServiceAccountKeyPath: "my-key-folder/connect-register-key.json"
gkeConnect.agentServiceAccountKeyPath
String. Es la ruta de acceso del archivo de claves JSON para tu cuenta de servicio de agente de conexión. Por ejemplo:
gkeConnect: agentServiceAccountKeyPath: "my-key-folder/connect-agent-key.json"
cloudRun.enabled
Booleano. Configura esto como true
si deseas habilitar Cloud Run. De lo contrario, configúralo como false
. Por ejemplo:
cloudRun: enabled: true
usageMetering
Si deseas habilitar la medición de uso para tu clúster, completa esta sección. De lo contrario, quita esta sección o déjala como comentario.
usageMetering.bigQueryProjectID
String. Es el ID del proyecto de Google Cloud en el que deseas almacenar datos de medición de uso. Por ejemplo:
usageMetering: bigQueryProjectID: "my-bq-project"
usageMetering.bigQueryDatasetID
String. Es el ID del conjunto de datos de BigQuery en el que deseas almacenar los datos de medición de uso. Por ejemplo:
usageMetering: bigQueryDatasetID: "my-bq-dataset"
usageMetering.bigQueryServiceAccountKeyPath
String. Es la ruta del archivo de claves JSON para tu cuenta de servicio de BigQuery Por ejemplo:
usageMetering: bigQueryServiceAccountKeyPath: "my-key-folder/bq-key.json"
usageMetering.enableConsumptionMetering
Booleano. Configúralo como true
si deseas habilitar la medición basada en el consumo.
De lo contrario, configúralo como falso. Por ejemplo:
usageMetering: enableConsumptionMetering: true
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 o déjala como comentario.
cloudAuditLogging.projectID
String. Es el ID del proyecto de Google Cloud en el que deseas almacenar 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