Archivo de configuración de clúster de usuarios 1.28

En esta página se describen los campos del archivo de configuración de clúster de usuario de Google Distributed Cloud.

Generar una plantilla para el archivo de configuración

Si has usado gkeadm para crear tu estación de trabajo de administrador, gkeadm habrá generado una plantilla para el archivo de configuración de tu clúster de usuarios. Además, gkeadm ha rellenado algunos campos por ti.

Si no has usado gkeadm para crear tu estación de trabajo de administrador, puedes usar gkectl para generar una plantilla para el archivo de configuración de tu clúster de usuarios.

Para generar una plantilla para el archivo de configuración de tu clúster de usuarios, sigue estos pasos:

gkectl create-config cluster --config=OUTPUT_FILENAME --gke-on-prem-version=VERSION

Haz los cambios siguientes:

OUTPUT_FILENAME: la ruta que quieras para la plantilla generada. Si omite esta marca, gkectl asigna el nombre user-cluster.yaml al archivo y lo coloca en el directorio actual.

VERSION: el número de versión que quieras. Por ejemplo: gkectl create-config cluster --gke-on-prem-version=1.10.0-gke.8.

Plantilla

Campos obligatorios y valores predeterminados

Si un campo está marcado como Obligatorio, el archivo de configuración completado debe tener un valor en ese campo.

Algunos campos son obligatorios en determinadas circunstancias. Por ejemplo, loadBalancer.metalLB.addressPools es obligatorio si loadBalancer.kind es igual a MetalLB.

Si se asigna un valor Predeterminado a un campo, el clúster usará ese valor si no introduces nada en el campo. Puedes anular un valor predeterminado introduciendo un valor.

Si un campo no está marcado como obligatorio y no se le asigna ningún valor predeterminado, será opcional. Puedes rellenarlo si te resulta útil, pero no es obligatorio.

Rellenar el archivo de configuración

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

name

Obligatorio
String

El nombre que quieras para tu clúster de usuarios. El nombre debe cumplir los siguientes requisitos:

  • Contener un máximo de 40 caracteres
  • Contener únicamente caracteres alfanuméricos en minúscula o un guion (-)
  • Empezar por un carácter alfabético
  • terminar con un carácter alfanumérico

Ejemplo:

name: "my-user-cluster"

gkeOnPremVersion

Obligatorio
Mutable
String

La versión de Google Distributed Cloud de tu clúster de usuario.

Ejemplo:

gkeOnPremVersion: "1.14.0-gke.1"

preparedSecrets.namespace

Si quieres usar credenciales preparadas, rellena este campo. De lo contrario, quita este campo o déjalo comentado.

Opcional
Inmutable
Cadena
Valores posibles: una cadena que empieza por "gke-onprem-secrets-"

Nombre de un espacio de nombres de Kubernetes en el clúster de administración donde se almacenan los secretos preparados para este clúster de usuario.

Ejemplo:

preparedSecrets:
  namespace: "gke-onprem-secrets-alice"

enableControlplaneV2

Inmutable
Booleano
Valor predefinido: true
Valor predeterminado: true

Para habilitar Controlplane V2, asigna el valor true a enableControlplaneV2 o elimina el ajuste del archivo de configuración de tu clúster de usuario. De lo contrario, asigna el valor false. Con Controlplane V2, el plano de control de un clúster de usuarios se ejecuta en uno o varios nodos del propio clúster de usuarios. Si Controlplane V2 no está habilitado, el plano de control del clúster de usuario se ejecuta en el clúster de administrador.

Te recomendamos que habilites Controlplane V2.

Ejemplo:

enableControlplaneV2: true

vCenter

Esta sección contiene información sobre tu entorno de vSphere y tu conexión con vCenter Server.

Si quieres que un campo de esta sección sea el mismo que el que has especificado para tu clúster de administrador, quita el campo o déjalo comentado.

Si quieres que un campo sea diferente del que has especificado para tu clúster de administrador, rellénalo aquí. Los campos que rellenes en la sección vCenter anularán los campos correspondientes del archivo de configuración del clúster de administrador.

vCenter.address

Opcional
Inmutable
Cadena
Valor predeterminado: heredar del clúster de administración

La dirección IP o el nombre de host de la instancia de vCenter Server que quieras usar para este clúster de usuario.

Para obtener más información, consulta Buscar la dirección del servidor vCenter.

Si especifica un valor diferente de la instancia de vCenter Server que usa el clúster de administrador, debe habilitar Controlplane V2 y proporcionar valores para network.vCenter.networkName y todos los campos obligatorios de la sección vCenter.

Ejemplos:

vCenter:
  address: "203.0.113.101"
vCenter:
  address: "my-vcenter-server-2.my-domain.example"

vCenter.datacenter

Opcional
Inmutable
Cadena
Valor predeterminado: heredar del clúster de administración

Ruta relativa de un centro de datos de vSphere.

Si especifica un valor en este campo, también debe especificar lo siguiente:

  • vCenter.networkName
  • vCenter.datastore o vCenter.storagePolicyName
  • vCenter.cluster o vCenter.resourcePool

El valor que especifiques será relativo a la carpeta raíz llamada /.

Si su centro de datos está en la carpeta raíz, el valor es el nombre del centro de datos.

Ejemplo:

vCenter:
  datacenter: "my-uc-data-center"

De lo contrario, el valor es una ruta relativa que incluye una o varias carpetas junto con el nombre del centro de datos.

Ejemplo:

vCenter:
  datacenter: "data-centers/data-center-2"

vCenter.cluster

Opcional
Inmutable
Cadena
Valor predeterminado: heredar del clúster de administración

Ruta relativa de un clúster de vSphere que representa los hosts ESXi en los que se ejecutarán las VMs de tu clúster de usuario. Este clúster de vSphere representa un subconjunto de los hosts ESXi físicos de tu centro de datos de vCenter.

Si especifica un valor en este campo, también debe especificar lo siguiente:

  • vCenter.networkName
  • vCenter.datacenter
  • vCenter.datastore o vCenter.storagePolicyName

El valor que especifiques será relativo a /.../DATA_CENTER/vm/.

Si tu clúster de vSphere está en la carpeta /.../DATA_CENTER/vm/, el valor es el nombre del clúster de vSphere.

Ejemplo:

vCenter:
  cluster: "my-uc-vsphere-cluster"

De lo contrario, el valor es una ruta relativa que incluye una o varias carpetas junto con el nombre del clúster de vSphere.

Ejemplo:

vCenter:
  cluster: "clusters/vsphere-cluster-2"

vCenter.resourcePool

Opcional
Inmutable
Cadena
Valor predeterminado: heredar del clúster de administración

Un grupo de recursos de vCenter para las VMs de tu clúster de usuarios.

Si quieres usar el grupo de recursos predeterminado, asigna el valor VSPHERE_CLUSTER/Resources a este campo.

Ejemplo:

vCenter:
  resourcePool: "my-uc-vsphere-cluster/Resources"

El valor que especifiques será relativo a /.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/.

Si tu grupo de recursos es un elemento secundario directo de /.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/ , el valor es el nombre del grupo de recursos.

Ejemplo:

vCenter:
  resourcePool: "my-uc-resource-pool"

De lo contrario, el valor es una ruta relativa que tiene dos o más grupos de recursos.

Ejemplo:

vCenter:
  resourcePool: "uc-resource-pool-1/uc-resource-pool-2"

vCenter.datastore

Opcional
Inmutable
Cadena
Valor predeterminado: heredar del clúster de administración

El nombre de un almacén de datos de vSphere de tu clúster de usuarios.

El valor que especifique debe ser un nombre, no una ruta. No incluyas ninguna carpeta en el valor.

Ejemplo:

vCenter:
  datastore: "my-datastore"

Si especifica un valor para este campo, no especifique ningún valor para vCenter.storagePolicyName. El campo vCenter.datastore es inmutable, excepto cuando se le asigna una cadena vacía al migrar un almacén de datos a la gestión basada en políticas de almacenamiento (SPBM).

vCenter.storagePolicyName

Opcional
Inmutable
Cadena

Nombre de una política de almacenamiento de VM para los nodos del clúster.

También puedes especificar una política de almacenamiento de VM para los nodos de un grupo de nodos concreto. Sin embargo, la política especificada aquí se aplica a cualquier grupo de nodos que no tenga su propia política.

Para obtener más información, consulta Configurar una política de almacenamiento.

Si especifica un valor para este campo, no especifique ningún valor para vCenter.datastore.

vCenter.caCertPath

Opcional
Mutable
String
Valor predeterminado: heredar del clúster de administrador

Ruta del certificado de la AC de tu servidor vCenter. Para obtener más información, consulta Obtener el certificado de CA de vCenter.

Ejemplo:

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

Para obtener información sobre cómo actualizar este campo, consulta Actualizar referencias de certificados de vCenter.

vCenter.credentials.fileRef.path

Opcional
Mutable
String
Valor predeterminado: heredar del clúster de administrador

Si proporciona un valor para preparedSecrets.namespace, no proporcione ningún valor para este campo. En su lugar, proporcione un valor para vCenter.credentials.secretRef.version.

Ruta 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 el rol de administrador o privilegios equivalentes. Consulta los requisitos de vSphere.

Puedes usar gkectl update credentials para actualizar este campo en un clúster. Para obtener más información, consulta el artículo sobre cómo rotar las claves de cuentas de servicio.

Para obtener información sobre cómo actualizar las credenciales de vCenter, consulta Actualizar las credenciales del clúster.

Ejemplo:

vCenter:
  credentials:
    fileRef:
      path: "my-config-directory/my-credentials-2.yaml"

vCenter.credentials.fileRef.entry

Opcional
Mutable
String
Valor predeterminado: heredar del clúster de administrador

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

Ejemplo:

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

vCenter.credentials.secretRef.version

Obligatorio si has proporcionado un valor para preparedSecrets.namespace
String
Valores posibles: una cadena de números enteros o "latest"
Valor predeterminado: "latest"

Si proporcionas un valor para preparedSecrets.namespace, rellena este campo. De lo contrario, quita este campo o déjalo comentado.

Versión de un secreto preparado en el clúster de administración que contiene el nombre de usuario y la contraseña de la instancia de vCenter Server que quieres usar en este clúster de usuario.

Ejemplo:

vCenter:
  credentials:
    secretRef:
      version: "1"

vCenter.folder

Opcional
Inmutable
Cadena
Valor predeterminado: heredar del clúster de administración

Ruta relativa de una carpeta de vSphere que ya has creado. Esta carpeta contendrá las VMs de tu clúster de usuarios.

Si no especificas ningún valor, las VMs de tu clúster de usuarios se colocarán en /.../DATA_CENTER/vm/.

Si especificas un valor, será relativo a /.../DATA_CENTER/vm/.

El valor puede ser el nombre de una carpeta.

Ejemplo:

vCenter:
  folder: "my-uc-folder"

También puede ser una ruta relativa que incluya más de una carpeta.

Ejemplo:

vCenter:
  folder: "folders/folder-2"

componentAccessServiceAccountKeyPath

Opcional
Mutable
String
Valor predeterminado: heredar del clúster de administrador

Ruta del archivo de clave JSON de tu cuenta de servicio de acceso a componentes.

Ejemplo:

componentAccessServiceAccountKeyPath: "my-key-folder/uc-access-key.json"

componentAccessServiceAccountKey.secretRef.version

Opcional
Mutable
Cadena
Valores posibles: una cadena de números enteros o "latest"
Valor predeterminado: "latest"

La versión de un secreto preparado en el clúster de administración que contiene una clave JSON para tu cuenta de servicio de acceso a componentes.

Ejemplo:

componentAccessServiceAccountKey:
  secretRef:
    version: "1"

privateRegistry

Rellena esta sección si tu clúster de administrador usa un registro de contenedores privado y quieres que tu clúster de usuario use otro registro privado u otros ajustes. Si quieres usar otra dirección de registro privado, tu clúster debe tener habilitado Controlplane V2. Los nuevos ajustes se aplican durante la creación y la actualización del clúster.

Si quieres usar los mismos ajustes que el clúster de administrador, elimina esta sección o déjala comentada.

privateRegistry.address

Obligatorio para el registro privado
Inmutable
Cadena
Valor predeterminado: heredar del clúster de administrador

La dirección IP o el nombre de dominio completo (FQDN) del equipo que ejecuta tu registro Docker privado.

Ejemplos:

privateRegistry:
  address: "203.0.113.10"
privateRegistry:
  address: "fqdn.example.com"

privateRegistry.credentials.fileRef.path

Obligatorio para el registro privado
Mutable
String
Valor predeterminado: heredar del clúster de administrador

Si tienes previsto usar un secreto preparado para el registro privado, no proporciones ningún valor en este campo. En su lugar, proporcione un valor para privateRegistry.credentials.secretRef.version.

Ruta de un archivo de configuración de credenciales que contiene el nombre de usuario y la contraseña de una cuenta que Google Distributed Cloud puede usar para acceder a tu registro de Docker privado.

Ejemplo:

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

privateRegistry.credentials.fileRef.entry

Obligatorio para el registro privado
Mutable
String
Valor predeterminado: heredar del clúster de administrador

El nombre del bloque de credenciales en tu archivo de configuración de credenciales, que contiene el nombre de usuario y la contraseña de tu cuenta de registro de Docker privado.

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

privateRegistry.credentials.secretRef.version

Obligatorio si quiere usar un secreto preparado para un registro privado.
String
Valores posibles: una cadena de números enteros o "latest"
Valor predeterminado: "latest"

Si proporcionas un valor para preparedSecrets.namespace y quieres usar un secreto preparado para el registro privado, rellena este campo. De lo contrario, elimina este campo o déjalo comentado.

Versión de un secreto preparado en el clúster de administración que contiene el nombre de usuario y la contraseña de la instancia de vCenter Server que quieres usar en este clúster de usuario.

Ejemplo:

privateRegistry:
  credentials:
    secretRef:
      version: "1"

privateRegistry.caCertPath

Obligatorio para el registro privado
Mutable
String
Valor predeterminado: heredar del clúster de administrador

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

Asigna a este campo la ruta del certificado de la CA.

Ejemplo:

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

network

Esta sección contiene información sobre la red de tu clúster de usuarios.

network.hostConfig

Esta sección contiene información sobre los servidores NTP, los servidores DNS y los dominios de búsqueda de DNS que usan las VMs que son los nodos de tu clúster. Si usas el balanceador de carga Seesaw, esta información también se aplica a tus VMs de Seesaw.

Esta sección es obligatoria si se cumple una o varias de las siguientes condiciones:

  • network.ipMode.type está configurado como static
  • enableControlplaneV2 se ha definido como true o se ha permitido que se defina como true de forma predeterminada.
  • loadBalancer.kind está configurado como "Seesaw"

network.hostConfig.dnsServers

Obligatorio.
Inmutable.
Array de cadenas.
El número máximo de elementos de la matriz es tres.

Las direcciones de los servidores DNS de las máquinas virtuales.

Ejemplo:

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

network.hostConfig.ntpServers

Obligatorio
Inmutable
Array de cadenas

Las direcciones de los servidores de tiempo que deben usar las VMs.

Ejemplo:

network:
  hostConfig:
    ntpServers:
    - "216.239.35.0"

network.hostConfig.searchDomainsForDNS

Opcional
Inmutable
Array de cadenas

Dominios de búsqueda de DNS que deben usar los hosts. Estos dominios se usan como parte de una lista de búsqueda de dominios.

Ejemplo:

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

network.ipMode.type

Obligatorio
Inmutable
Cadena
Valor predefinido: "dhcp"
Valor predeterminado: "dhcp"

Si quieres que los nodos del clúster obtengan su dirección IP de un servidor DHCP, define este valor como "dhcp". Si quieres que los nodos de tu clúster tengan direcciones IP estáticas elegidas de una lista que proporciones, define este valor como "static".

Ejemplo:

network:
  ipMode:
    type: "static"

network.ipMode.ipBlockFilePath

Obligatorio si network.ipMode.type = static
Inmutable
Cadena

Ruta del archivo de bloque de IPs de tu clúster.

Ejemplo:

network:
  ipMode:
    ipBlockFilePath: "/my-config-folder/user-cluster-ipblock.yaml"

network.serviceCIDR

Obligatorio
Inmutable
Cadena
Valor predefinido: "10.96.0.0/20"

Intervalo de direcciones IP, en formato CIDR, que se usará para los servicios de tu clúster. Debe ser al menos un intervalo /24.

Ejemplo:

network:
  serviceCIDR: "10.96.0.0/20"

network.podCIDR

Obligatorio
Inmutable
Cadena
Predefinido: "192.168.0.0/16"
Valor predeterminado: "192.168.0.0/16"

Intervalo de direcciones IP, en formato CIDR, que se usará para los pods de tu clúster. Debe ser al menos un intervalo /18.

Ejemplo:

network:
  podCIDR: "192.168.0.0/16"

El intervalo de servicios no debe solaparse con el de pods.

Los intervalos de servicios y pods no deben solaparse con ninguna dirección fuera del clúster a la que quieras acceder desde dentro del clúster.

Por ejemplo, supongamos que tu intervalo de servicio es 10.96.232.0/24 y tu intervalo de pods es 192.168.0.0/16. El tráfico enviado desde un pod a una dirección de cualquiera de esos intervalos se tratará como tráfico dentro del clúster y no llegará a ningún destino fuera del clúster.

En concreto, los intervalos de servicios y pods no deben solaparse con lo siguiente:

  • Direcciones IP de los nodos de cualquier clúster

  • Direcciones IP que utilizan las máquinas del balanceador de carga

  • IPs virtuales usadas por los nodos del plano de control y los balanceadores de carga

  • Dirección IP de los servidores de vCenter, los servidores DNS y los servidores NTP

Te recomendamos que los intervalos de servicio y de pods se encuentren en el espacio de direcciones RFC 1918.

Este es uno de los motivos por los que se recomienda usar direcciones RFC 1918. Supongamos que el intervalo de tu pod o servicio contiene direcciones IP externas. El tráfico enviado desde un pod a una de esas direcciones externas se tratará como tráfico dentro del clúster y no llegará al destino externo.

network.vCenter.networkName

Obligatorio si vCenter.address es diferente de la dirección de vCenter que estás usando en el clúster de administrador.
Inmutable
Cadena

Nombre de la red de vSphere de los nodos del clúster de usuarios.

Ejemplo:

network:
  vCenter:
    networkName: "my-network"

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

Caracteres especiales Secuencia de escape
Barra inclinada (/) %2f
Barra inversa (\) %5c
Símbolo de porcentaje (%) %25

Si el nombre de la red no es único en su centro de datos, puede especificar una ruta completa.

Ejemplo:

network:
  vCenter:
    networkName: "/my-uc-datacenter/network/my-network"

network.additionalNodeInterfaces

Si has definido multipleNetworkInterfaces como true, rellena esta sección. De lo contrario, elimina esta sección o déjala comentada.

Inmutable

Una matriz de objetos, cada uno de los cuales describe una interfaz de red que se puede usar en todos o algunos de los nodos del clúster.

network.additionalNodeInterfaces[i].networkName

Obligatorio si multipleNetworkInterfaces = true
Inmutable
Cadena

Nombre de la red de vSphere a la que se conectará esta interfaz de nodo adicional.

Ejemplo:

network:
  additionalNodeInterfaces:
  - networkName: "my-node-interface-1"

network.additionalNodeInterfaces[i].type

Obligatorio si multipleNetworkInterfaces = true
Inmutable
Cadena

Ejemplo:

network:
  additionalNodeInterfaces:
  - name: "my-node-interface-1"
    type: "static"

network.additionalNodeInterfaces[i].ipBlockFilePath

Obligatorio si network.additionalNodeInterfaces[i].type = static
Inmutable
Cadena

Ruta de un archivo de bloque de IPs que contiene las direcciones IP que se van a usar en esta interfaz de red en los nodos que tengan esta interfaz de red.

Ejemplo:

network:
  additionalNodeInterfaces:
  - name: "my-node-interface-1"
    type: "static"
    ipBlockFilePath: "my-ipblock-file-1"

network.controlPlaneIPBlock

Si has definido enableControlplaneV2 como true, rellena esta sección. De lo contrario, elimina esta sección o déjala comentada.

network.controlPlaneIPBlock.netmask

Obligatorio si enableControlplaneV2 = true
Inmutable
Cadena

Ejemplo:

network:
  controlPlaneIPBlock:
    netmask: "255.255.255.0"

network.controlPlaneIPBlock.gateway

Obligatorio si enableControlplaneV2 = true
Inmutable
Cadena

Ejemplo:

network:
  controlPlaneIPBlock:
    gateway: "172.16.21.1"

network.controlPlaneIPBlock.ips

Obligatorio si enableControlplaneV2 = true
Inmutable
Matriz de objetos, cada uno de los cuales tiene una dirección IP y un nombre de host opcional.

En el caso de los clústeres de usuarios de alta disponibilidad, la matriz tiene tres elementos. En el caso de un clúster de usuarios que no sea de alta disponibilidad, la matriz tiene un elemento.

Ejemplo:

network:
  controlPlaneIPBlock:
    ips:
    - ip: "172.16.21.6"
      hostname: "cp-vm-1"
    - ip: "172.16.21.7"
      hostname: "cp-vm-2"
    - ip: "172.16.21.8"
      hostname: "cp-vm-3"

loadBalancer

Esta sección contiene información sobre el balanceador de carga de tu clúster de usuario.

loadBalancer.vips.controlPlaneVIP

Obligatorio
Inmutable
Cadena

La dirección IP que has elegido para configurar en el balanceador de carga para el servidor de la API de Kubernetes del clúster de usuario.

Ejemplo:

loadBalancer:
  vips:
    controlplaneVIP: "203.0.113.3"

loadBalancer.vips.ingressVIP

Obligatorio
Inmutable
Cadena

La dirección IP que has elegido para configurar en el balanceador de carga del proxy de entrada.

Ejemplo:

loadBalancer:
  vips:
    ingressVIP: "203.0.113.4"

loadBalancer.kind

Obligatorio
Inmutable
Cadena
Predefinido: "MetalLB"

Elige "ManualLB", "F5BigIP", "Seesaw" o "MetalLB".

Para habilitar funciones nuevas y avanzadas, te recomendamos que uses "ManualLB" si tienes un balanceador de carga de terceros (como F5 BIG-IP o Citrix) o "MetalLB" si usas nuestra solución agrupada.

Ejemplo:

loadBalancer:
  kind: "MetalLB"

loadBalancer.manualLB

Si has definido loadbalancer.kind como "manualLB", rellena esta sección. De lo contrario, elimina esta sección o déjala comentada.

loadBalancer.manualLB.ingressHTTPNodePort

Obligatorio si loadBalancer.kind = ManualLB
Inmutable
Número entero
Valor predefinido: 30243

El proxy de entrada de un clúster de usuario se expone mediante un servicio de Kubernetes de tipo LoadBalancer. El servicio tiene un ServicePort para HTTP. Debes elegir un valor de nodePort para el ServicePort HTTP.

Asigne el valor nodePort a este campo.

Ejemplo:

loadBalancer:
  manualLB:
    ingressHTTPNodePort: 32527

loadBalancer.manualLB.ingressHTTPSNodePort

Obligatorio si loadBalancer.kind = ManualLB
Inmutable
Número entero
Valor predefinido: 30879

El proxy de entrada de un clúster de usuario se expone mediante un servicio de tipo LoadBalancer. El servicio tiene un ServicePort para HTTPS. Debes elegir un valor de nodePort para el puerto de servicio HTTPS.

Asigne el valor nodePort a este campo. Ejemplo:

loadBalancer:
  manualLB:
    ingressHTTPSNodePort: 30139

loadBalancer.manualLB.controlPlaneNodePort

Obligatorio si loadBalancer.kind = ManualLB y enableControlplaneV2 = false
Inmutable
Entero
Valor predefinido: 30562

El servidor de la API de Kubernetes de un clúster de usuario se ejecuta en el clúster de administrador y se expone mediante un servicio de tipo LoadBalancer. Debes elegir un nodePort valor para el servicio.

Asigne el valor nodePort a este campo.

Ejemplo:

loadBalancer:
  manualLB:
    controlPlaneNodePort: 30968

loadBalancer.manualLB.konnectivityServerNodePort

Obligatorio si loadBalancer.kind = ManualLB y enableControlplaneV2 = false
Inmutable
Entero
Valor predefinido: 30563

El servidor de la API de Kubernetes de un clúster de usuario que usa kubeception se ejecuta en el clúster de administrador y se expone mediante un servicio de tipo LoadBalancer. El servidor de Konnectivity reutiliza este servicio con un valor de nodePort diferente. Debes elegir un valor de nodePort para el servidor de Konnectivity.

Asigna a este campo el valor nodePort del servidor Konnectivity.

Ejemplo:

loadBalancer:
  manualLB:
    konnectivityServerNodePort: 30969

loadBalancer.f5BigIP

Si has definido loadbalancer.kind como "f5BigIP", rellena esta sección. De lo contrario, elimina esta sección o déjala comentada.

Para habilitar funciones nuevas y avanzadas, le recomendamos que configure el balanceo de carga manual en su balanceador de carga F5 BIG-IP. Para habilitar el balanceo de carga manual, asigna el valor loadbalancer.kind a "ManualLB" y rellena la sección loadBalancer.manualLB. Para obtener más información, consulta el artículo sobre cómo habilitar el modo manual del balanceo de carga.

loadBalancer.f5BigIP.address

Obligatorio si loadBalancer.kind = "f5BigIP"
Cadena

La dirección de tu balanceador de carga F5 BIG-IP.

Ejemplo:

loadBalancer:
  f5BigIP:
      address: "203.0.113.2"

loadBalancer.f5BigIP.credentials.fileRef.path

Obligatorio si loadBalancer.kind = "f5BigIP"
Cadena

Ruta de un archivo de credenciales que contiene el nombre de usuario y la contraseña de una cuenta que Google Distributed Cloud puede usar para conectarse a tu balanceador de carga F5 BIG-IP.

La cuenta de usuario debe tener un rol de usuario con los permisos suficientes para configurar y gestionar el balanceador de carga. Es suficiente con el rol de administrador o el de administrador de recursos.

Para obtener información sobre cómo actualizar tus credenciales de F5 BIG-IP, consulta Actualizar credenciales del clúster.

Ejemplo:

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

loadBalancer.f5BigIP.credentials.fileRef.entry

Obligatorio si loadBalancer.kind = "f5BigIP"
Cadena

El nombre del bloque de credenciales de tu archivo de configuración de credenciales, que contiene el nombre de usuario y la contraseña de tu cuenta de F5 BIG-IP.

Ejemplo:

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

loadBalancer.f5BigIP.partition

Obligatorio si loadBalancer.kind = "f5BigIP"
Cadena

Nombre de una partición de BIG-IP que hayas creado para tu clúster de usuarios.

Ejemplo:

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

loadBalancer.f5BigIP.snatPoolName

Obligatorio si loadBalancer.kind = "f5BigIP" y usas SNAT
String

El nombre de tu grupo de SNAT.

Ejemplo:

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

loadBalancer.seesaw

Si has definido loadbalancer.kind como "Seesaw", rellena esta sección. De lo contrario, elimina esta sección o déjala comentada.

Ten en cuenta las siguientes limitaciones del balanceador de carga SeeSaw:

Para usar estas funciones, te recomendamos que configures el balanceador de carga MetalLB. Para habilitar el balanceador de carga MetalLB, define loadbalancer.kind como"MetalLB" y rellena la sección loadBalancer.metalLB. Para obtener más información, consulta Balanceo de carga agrupado con MetalLB.

loadBalancer.seesaw.ipBlockFilePath

Obligatorio si loadBalancer.kind = Seesaw
Inmutable
Cadena

Ruta del archivo de bloque de IPs de tus VMs de Seesaw.

Ejemplo:

loadBalancer:
  seesaw:
    ipBlockFilePath: "config-folder/user-seesaw-ipblock.yaml"

loadBalancer.seesaw.vrid

Obligatorio si loadBalancer.kind = Seesaw
Inmutable
Número entero
Valores posibles: del 1 al 255
Valor predefinido: 0

El identificador de router virtual de tu VM de Seesaw. Este identificador, que es un número entero que elijas, debe ser único en una VLAN.

Ejemplo:

loadBalancer:
  seesaw:
    vrid: 125

loadBalancer.seesaw.masterIP

Obligatorio si loadBalancer.kind = Seesaw
Inmutable
Cadena

La dirección IP virtual configurada en tu VM de Seesaw principal.

Ejemplo:

loadBalancer:
  seesaw:
    masterIP: 172.16.20.21

loadBalancer.seesaw.cpus

Obligatorio si loadBalancer.kind = Seesaw
Mutable
Integer
Prepopulated: 4

El número de CPUs de cada una de tus VMs de Seesaw.

Ejemplo:

loadBalancer:
  seesaw:
    cpus: 8

loadBalancer.seesaw.memoryMB

Obligatorio si loadBalancer.kind = Seesaw
Mutable
Integer
Prepopulated: 3072

El número de mebibytes de memoria de cada una de tus VMs de Seesaw.

Ejemplo:

loadBalancer:
  seesaw:
    memoryMB: 8192

Nota: Este campo especifica el número de mebibytes de memoria, no el número de megabytes. Un mebibyte equivale a 2^20 = 1.048.576 bytes. Un megabyte equivale a 10^6 = 1.000.000 bytes.

loadBalancer.seesaw.vCenter.networkName

Opcional
Inmutable
Cadena
Valor predeterminado: igual que los nodos del clúster

El nombre de la red de vCenter que contiene tus VMs de Seesaw.

Ejemplo:

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

loadBalancer.seesaw.enableHA

Opcional
Inmutable
Relevante si loadBalancer.kind = Seesaw
Booleano
Valor predefinido: false
Valor predeterminado: false

Si quieres crear un balanceador de carga de Seesaw de alta disponibilidad, define este valor como true. De lo contrario, asigna el valor false. Un balanceador de carga de Seesaw de alta disponibilidad usa un par(principal y de copia de seguridad) de VMs.

Ejemplo:

loadBalancer:
  seesaw:
    enableHA: true

loadBalancer.seesaw.disableVRRPMAC

Opcional
Inmutable
Relevante si loadBalancer.kind = Seesaw
Booleano
Valor predefinido: true
Valor predeterminado: true

Si le asignas el valor true, el balanceador de carga de Seesaw no usará el aprendizaje de MAC para la conmutación por error. En su lugar, usa ARP gratuito. Si lo define como false, el balanceador de carga de Seesaw usará el aprendizaje de MAC. Te recomendamos que le asignes el valor true. Si usas vSphere 7 o una versión posterior y tienes un balanceador de carga de alta disponibilidad de Seesaw, debes definir este valor en true.

Ejemplo:

loadBalancer:
  seesaw:
    disableVRRPMAC: true

loadBalancer.metalLB

Si has definido loadbalancer.kind como "MetalLB", rellena esta sección. De lo contrario, elimina esta sección o déjala comentada.

Para obtener más información, consulta Balanceo de carga agrupado con MetalLB.

loadBalancer.metalLB.addressPools

Obligatorio si loadBalancer.kind = 'MetalLB`
Mutable

Matriz de objetos, cada uno de los cuales contiene información sobre un grupo de direcciones que va a usar el balanceador de carga de MetalLB.

loadBalancer.metalLB.addressPools[i].name

Obligatorio si loadBalancer.kind = MetalLB
Mutable
String

El nombre que quieras para el grupo de direcciones.

Ejemplo:

loadBalancer:
  metalLB:
    addressPools:
    - name: "my-address-pool-1"
loadBalancer.metalLB.addressPools[i].addresses

Obligatorio si loadBalancer.kind = MetalLB
Mutable

Matriz de cadenas, cada una de las cuales es un intervalo de direcciones. Cada intervalo debe estar en formato CIDR o en formato de intervalo con guiones.

Ejemplo:

loadBalancer:
  metalLB:
    addressPools:
    - name: "my-address-pool-1"
      addresses:
      - "192.0.2.0/26"
      - "192.0.2.64-192.0.2.72"
loadBalancer.metalLB.addressPools[i].avoidBuggyIPs

Opcional
Relevante si loadBalancer.kind = MetalLB
Mutable
Boolean
Prepopulated: false
Default: false

Si le asignas el valor true, el controlador de MetalLB no asignará direcciones IP que terminen en .0 o .255 a los servicios. De esta forma, se evita el problema de que los dispositivos de consumo con errores descarten por error el tráfico enviado a esas direcciones IP especiales.

Ejemplo:

loadBalancer:
  metalLB:
    addressPools:
    - name: "my-address-pool-1"
      - "192.0.2.0/26"
      - "192.0.2.64-192.0.2.72"
      avoidBuggyIPs: true
loadBalancer.metalLB.addressPools[i].manualAssign

Opcional
Relevante si loadBalancer.kind = MetalLB
Mutable
Boolean
Prepopulated: false
Default: false

Si no quieres que el controlador de MetalLB asigne automáticamente direcciones IP de este grupo a los servicios, define este valor como true. Después, un desarrollador puede crear un servicio de tipo LoadBalancer y especificar manualmente una de las direcciones del grupo.

De lo contrario, asigna el valor false.

Ejemplo:

loadBalancer:
  metalLB:
    addressPools:
    - name: "my-address-pool-1"
      manualAssign: true

enableDataplaneV2

Inmutable
Booleano
Rellenado previamente: true
Valor predeterminado: false

Si quieres habilitar Dataplane V2 o usar Controlplane V2, asigna el valor true. De lo contrario, asigna el valor false.

Te recomendamos que habilites Dataplane V2.

Ejemplo:

enableDataplaneV2: true

Consulta los pasos para solucionar problemas en Solución de problemas de Dataplane V2.

dataplaneV2.forwardMode

Opcional
Inmutable
Cadena
Valores posibles: "snat", "dsr"
Valor predefinido: "snat"
Valor predeterminado: "snat"

Modo de reenvío de un clúster que tiene habilitado Dataplane V2.

En el modo de traducción de direcciones de red de origen (SNAT), un paquete se traduce con SNAT cuando se reenvía desde un nodo de balanceador de carga a un pod de backend. El pod no puede ver la dirección IP de origen original y el paquete de retorno debe pasar por el nodo del balanceador de carga.

En el modo de retorno directo del servidor (DSR), un paquete conserva su dirección IP de origen original cuando se reenvía desde un nodo de balanceador de carga a un pod de backend. El Pod puede ver la dirección IP de origen original y el paquete de retorno va directamente al cliente sin pasar por el nodo del balanceador de carga.

Ejemplo:

dataplaneV2:
  forwardMode: "dsr"

Nota: Si actualiza este campo, puede que se produzca un problema conocido en función de las versiones del clúster. Aplica la solución mencionada si tu versión del clúster se ve afectada.

multipleNetworkInterfaces

Opcional
Inmutable
Booleano
Valor predeterminado: false
Valor predeterminado: false

Si quieres habilitar varias interfaces de red para pods, asigna el valor true a este campo. De lo contrario, asigna el valor false.

Para obtener más información, consulta el artículo sobre cómo configurar varias interfaces de red para pods.

Ejemplo:

multipleNetworkInterfaces: true

advancedNetworking

Opcional
Inmutable
Booleano
Valor predefinido: false
Valor predeterminado: false

Si tienes previsto crear una pasarela de NAT de salida, define este valor como true. De lo contrario, asigna el valor false.

Si asignas el valor true a este campo, también debes asignar el valor true a enableDataplaneV2.

Ejemplo:

advancedNetworking: true

disableBundledIngress

Asigna el valor true si quieres inhabilitar el acceso agrupado del clúster. De lo contrario, asigna el valor false.

Opcional
Booleano
Mutable
Prepopulated: false
Default: false

Ejemplo:

disableBundledIngress: true

storage.vSphereCSIDisabled

Si quiere inhabilitar la implementación de componentes de CSI de vSphere, defina este valor en true. De lo contrario, asigna el valor false.

Opcional
Mutable
Boolean
Prepopulated: false
Default: false

Ejemplo:

storage:
  vSphereCSIDisabled: false

masterNode

Esta sección contiene información sobre los nodos que sirven como nodos de plano de control de este clúster de usuarios.

masterNode.cpus

Opcional
Mutable
Integer
Prepopulated: 4
Default: 4

Número de CPUs de cada nodo que actúa como plano de control de este clúster de usuarios.

Ejemplo:

masterNode:
  cpus: 8

masterNode.memoryMB

Opcional
Mutable
Entero
Predefinido: 8192
Valor predeterminado: 8192

Mebibytes de memoria de cada nodo que actúa como plano de control de este clúster de usuarios. Debe ser un múltiplo de 4.

Ejemplo:

masterNode:
  memoryMB: 8192

Nota: Este campo especifica el número de mebibytes de memoria, no el número de megabytes. Un mebibyte equivale a 2^20 = 1.048.576 bytes. Un megabyte equivale a 10^6 = 1.000.000 bytes.

masterNode.replicas

Opcional
Inmutable
Número entero
Valores posibles: 1 o 3
Valor predefinido: 1
Valor predeterminado: 1

Número de nodos del plano de control de este clúster de usuarios. Este número no se puede cambiar una vez que hayas creado el clúster. Si quieres actualizar el número de réplicas más adelante, debes volver a crear el clúster de usuarios.

Ejemplo:

masterNode:
  replicas: 3

masterNode.autoResize.enabled

Opcional
Mutable
Boolean
Prepopulated: false
Default: false

Asigna el valor true para habilitar el cambio de tamaño automático de los nodos del plano de control del clúster de usuarios. De lo contrario, asigna el valor false.

Para obtener más información, consulta Habilitar el cambio de tamaño de los nodos de plano de control de un clúster de usuarios.

Ejemplo:

masterNode:
  autoResize:
    enabled: true

masterNode.vsphere.datastore

Opcional
Inmutable
Cadena
Valor predeterminado: el valor de vCenter.datastore

El almacén de datos en el que se crearán los nodos del plano de control de este clúster de usuarios.

El valor que especifique debe ser un nombre, no una ruta. No incluyas ninguna carpeta en el valor.

Ejemplo:

masterNode:
  vSphere:
    datastore: "control-plane-datastore"

Si especifica un valor para este campo, no especifique ningún valor para masterNode.vsphere.storagePolicyName. El campo masterNode.vsphere.datastore es inmutable, excepto cuando se le asigna una cadena vacía al migrar un almacén de datos a la gestión basada en políticas de almacenamiento (SPBM).

masterNode.vsphere.storagePolicyName

Opcional
Inmutable
Cadena
Valor predeterminado: el valor de vCenter.storagePolicyName

Nombre de una política de almacenamiento de VM para los nodos del plano de control.

Para obtener más información, consulta Configurar una política de almacenamiento.

Ejemplo:

masterNode:
  vSphere:
    storagePolicyName: "control-plane-storage-policy"

Si especifica un valor para este campo, no especifique ningún valor para masterNode.vsphere.datastore.

nodePools

Obligatorio
Mutable
Matriz de objetos, cada uno de los cuales describe un grupo de nodos.

Para obtener más información, consulta Crear y gestionar grupos de nodos.

nodePools[i].name

Obligatorio
Inmutable
Cadena

El nombre que elijas para el grupo de nodos. El nombre debe cumplir los siguientes requisitos:

  • Contener un máximo de 40 caracteres
  • Contener únicamente caracteres alfanuméricos en minúscula o un guion (-)
  • Empezar por un carácter alfabético
  • terminar con un carácter alfanumérico

Ejemplo:

nodePools:
- name: "my-node-pool-1"

nodePools[i].gkeOnPremVersion

Cuando actualizas un clúster de usuario, puedes especificar que determinados grupos de nodos se mantengan en la versión anterior.

Si quieres que este grupo de nodos siga usando la versión anterior, asigna a este campo el valor de la versión anterior. De lo contrario, quita este campo o asigna la cadena vacía. Para obtener más información, consulta Actualizar un clúster de usuarios.

Opcional
Mutable
String
Valor predeterminado: el clúster gkeOnPremVersion

Ejemplo:

nodePools:
- name: "my-node-pool"
  gkeOnPremVersion: "1.13.0-gke.16"

nodePools[i].cpus

Obligatorio
Mutable
Número entero
Predefinido: 4

El número de vCPUs de cada nodo del grupo.

Ejemplo:

nodePools"
- name: "my-node-pool"
  cpus: 8

nodePools[i].memoryMB

Obligatorio
Mutable
Integer
Prepopulated: 8192

Mebibytes de memoria de cada nodo del grupo. Debe ser un múltiplo de 4.

Ejemplo:

nodePools"
- name: "my-node-pool"
  memoryMB: 8192

Nota: Este campo especifica el número de mebibytes de memoria, no el número de megabytes. Un mebibyte equivale a 2^20 = 1.048.576 bytes. Un megabyte equivale a 10^6 = 1.000.000 bytes.

nodePools[i].replicas

Obligatorio
Mutable
Entero
Valor predefinido: 3
Valores posibles: el número total de nodos no contaminados de todos los grupos de nodos del clúster debe ser al menos 3.

El número de nodos del grupo.

Ejemplo:

nodePools:
- name: "my-node-pool"
  replicas: 5

nodePools[i].bootDiskSizeGB

Opcional
Mutable
Integer
Prepopulated: 40
Default: 40

Tamaño del disco de arranque en gibibytes de cada nodo del grupo.

Ejemplo:

nodePools
- name: "my-node-pool"
  bootDiskSizeGB: 40

nodePools[i].osImageType

Opcional
Mutable
String
Valores posibles: "ubuntu_containerd", "cos", "ubuntu_cgv2", "cos_cgv2", "windows"
Valor predefinido: "ubuntu_containerd"
Valor predeterminado: "ubuntu_containerd"

El tipo de imagen de SO que se ejecutará en las VMs del grupo de nodos.

Si especificas ubuntu_cgv2 o cos_cgv2, debes ejecutar gkectl prepare --extra-os-image-types=cgroupv2 antes de crear o actualizar el clúster.

Ejemplo:

nodePools
- name: "my-node-pool"
  osImageType: "ubuntu_cgv2"

nodePools[i].osImage

Obligatorio si nodePools[i].osImageType = windows
Mutable
String

El nombre de una plantilla de VM de Windows. La plantilla debe basarse en una ISO de Windows Server 2019 que tenga la etiqueta de idioma o región en-US.

Para obtener más información, consulta la guía de usuario de los grupos de nodos del SO Windows Server.

nodePools[i].labels

Opcional
Mutable
Mapping

Etiquetas que se aplicarán a cada objeto de nodo de Kubernetes del grupo.

Ejemplo:

nodePools:
- name: "my-node-pool"
  labels:
    environment: "production"
    tier: "cache"

El kubelet no puede aplicarse etiquetas a sí mismo en determinados espacios de nombres por motivos de seguridad.

Los espacios de nombres de etiquetas de nodos reservados son kubernetes.io, k8s.io y googleapis.com.

nodePools[i].taints

Opcional
Mutable
Matriz de objetos, cada uno de los cuales describe un taint de Kubernetes que se aplica a cada nodo del grupo. Los taints son pares clave-valor asociados a un effect. Las intolerancias se usan con las tolerancias para programar pods. Especifica uno de los siguientes valores para effect: NoSchedule, PreferNoSchedule o NoExecute.

Ejemplo:

nodePools:
- name: "my-node-pool"
  taints:
  - key: "staging"
    value: "true"
    effect: "NoSchedule"

nodePools[i].vsphere.datastore

Mutable
String
Valor predeterminado: el valor de vCenter.datastore

Nombre del almacén de datos de vCenter en el que se crearán los nodos.

Ejemplo:

nodePools:
- name: "my-node-pool"
  vsphere:
    datastore: "my-datastore"

Si especifica un valor para este campo, no especifique ningún valor para nodePools[i].vsphere.storagePolicyName.

nodePools[i].vsphere.storagePolicyName

Mutable
String
Valor predeterminado: el valor de vCenter.storagePolicyName

El nombre de una política de almacenamiento de VM para los nodos del grupo.

Para obtener más información, consulta Configurar una política de almacenamiento.

Ejemplo:

nodePools:
- name: "my-node-pool"
  vsphere:
    storagePolicyName: "my-storage-policy"

Si especifica un valor para este campo, no especifique ningún valor para nodePools[i].vsphere.datastore.

nodePools[i].vsphere.hostgroups

Rellena esta sección si quieres configurar tu clúster para que use la afinidad entre VM y host.

Opcional
Mutable
Array de cadenas, cada una de las cuales es el nombre de un grupo DRS de host.

La matriz solo puede tener un elemento.

Ejemplo:

nodePools:
- name: "my-node-pool"
  vsphere:
    hostgroups:
    - "my-hostgroup"

nodePools[i].vsphere.tags

Opcional
Mutable
Array de objetos, cada uno de los cuales describe una etiqueta de vSphere que se colocará en las VMs del grupo de nodos.

Cada etiqueta tiene una categoría y un nombre.

Ejemplo:

nodePools:
- name: "my-node-pool"
  vsphere:
    tags:
    - category: "purpose"
      name: "testing"

Si quieres adjuntar etiquetas a todas las VMs de un grupo de nodos, tu cuenta de usuario de vCenter debe tener estos privilegios de etiquetado de vSphere:

  • Etiquetado de vSphere.Asignar o quitar una etiqueta de vSphere
  • Etiquetado de vSphere.Asignar o quitar una etiqueta de vSphere a un objeto (vSphere 7)

nodePools[i].autoscaling

Opcional
Mutable

Si quieres habilitar el escalado automático en el grupo de nodos, rellena esta sección. De lo contrario, elimina esta sección o déjala comentada.

nodePools[i].autoscaling.minReplicas

Opcional
Mutable
Número entero
Valores posibles: mayor o igual que 1
Valor predefinido: 0

El número mínimo de nodos que puede definir la herramienta de escalado automático para el grupo.

Ejemplo:

nodePools:
- name: "my-node-pool"
  autoscaling:
    minReplicas: 5

nodePools[i].autoscaling.maxReplicas

Opcional
Mutable
Integer
Prepopulated: 0

Número máximo de nodos que puede definir la herramienta de escalado automático para el grupo.

Ejemplo:

nodePools:
- name: "my-node-pool"
  autoscaling:
    maxReplicas: 10

nodePools[i].enableLoadBalancer

Opcional
Relevante si loadBalancer.kind = "MetalLB"
Mutable
Booleano
Prepopulated: true
Valor predeterminado: false

Asigna el valor true si quieres permitir que el altavoz de MetalLB se ejecute en los nodos del grupo. De lo contrario, asigna el valor false.

Para obtener más información, consulta Balanceo de carga agrupado con MetalLB.

Ejemplo:

nodePools:
- name: "my-node-pool"
  enableLoadBalancer: true

nodePools[i].updateStrategy.rollingUpdate.maxSurge

Vista previa
Opcional
Mutable
Entero
Valor predeterminado: 1

El número máximo de máquinas del grupo de nodos que se pueden actualizar simultáneamente durante una actualización.

nodePools:
- name: "my-node-pool"
  updateStrategy:
    rollingUpdate:
      maxSurge: 3

antiAffinityGroups.enabled

Mutable
Booleano
Prepoblado: true
Valor predeterminado: true

Si este campo es true, Google Distributed Cloud crea reglas de antiafinidad de Distributed Resource Scheduler (DRS) de VMware para los nodos de tu clúster de usuario, lo que hace que se distribuyan en al menos tres hosts ESXi físicos de tu centro de datos.

Para usar esta función, tu entorno de vSphere debe cumplir las siguientes condiciones:

  • VMware DRS está habilitado. VMware DRS requiere la edición de licencia de vSphere Enterprise Plus.

  • Tu cuenta de usuario de vSphere tiene el privilegio Host.Inventory.Modify cluster.

  • Hay al menos cuatro hosts ESXi disponibles.

Aunque la regla requiere que los nodos del clúster se distribuyan en tres hosts ESXi, te recomendamos que tengas al menos cuatro hosts ESXi disponibles.

Recuerda que, si tienes una licencia de vSphere Standard, no puedes habilitar VMware DRS.

Si no tienes habilitado DRS o no tienes al menos cuatro hosts en los que se puedan programar máquinas virtuales de vSphere, asigna el valor false a antiAffinityGroups.enabled.

Ejemplo:

antiAffinityGroups:
  enabled: false

enableVMTracking

Vista previa
Opcional
Inmutable
Valor predeterminado: false

Defina este valor en true para habilitar el seguimiento de máquinas virtuales con etiquetas de vSphere. De lo contrario, asigna el valor false.

Para obtener más información, consulta Habilitar el seguimiento de máquinas virtuales.

Ejemplo:

enableVMTracking: true

nodePoolUpdatePolicy.maximumConcurrentNodePoolUpdate

Opcional
Mutable
Integer
Valores posibles: 0 o 1
Valor predeterminado: 0

Número de grupos de nodos que se van a actualizar a la vez. El valor 1 especifica que se puede actualizar un grupo de nodos a la vez. El valor 0 especifica que se puede actualizar un número ilimitado de grupos de nodos a la vez.

Ejemplo:

nodePoolUpdatePolicy:
  maximumConcurrentNodePoolUpdate: 1

nodePoolUpdatePolicy.updateStrategy.rollingUpdate.maxSurge

Vista previa
Opcional
Mutable
Entero
Valor predeterminado: 1

Número máximo de máquinas de un grupo de nodos que se pueden actualizar simultáneamente durante una actualización. Se aplica a cualquier grupo de nodos que no especifique su propia estrategia de actualización.

nodePools:
- name: "my-node-pool"
  updateStrategy:
    rollingUpdate:
      maxSurge: 3

authentication

En esta sección se explica cómo se autentican y autorizan los usuarios del clúster.

authentication.oidc

No utilices esta sección. En su lugar, después de crear el clúster, edita el recurso personalizado ClientConfig como se describe en Configurar clústeres en el Anthos Identity Service con OIDC .

authentication.sni

Opcional

Si quieres proporcionar un certificado de servicio adicional para el servidor de la API de Kubernetes del clúster, rellena esta sección. De lo contrario, elimina esta sección o déjala comentada.

authentication.sni.certPath

Opcional
String

Ruta de un certificado de servicio del servidor de la API de Kubernetes.

Ejemplo:

authentication:
  sni:
    certPath: "my-cert-folder/example.com.crt"

authentication.sni.keyPath

Opcional
String

Ruta del archivo de clave privada del certificado.

Ejemplo:

authentication:
  sni:
    keyPath: "my-cert-folder/example.com.key"

gkeConnect

Obligatorio
Inmutable

Esta sección contiene información sobre el Google Cloud proyecto y la cuenta de servicio que quieres usar para registrar tu clúster en una Google Cloud flota.

gkeConnect.projectID

Obligatorio
Inmutable
Cadena

El ID de tu proyecto host de la flota. En el caso de los clústeres nuevos, este ID de proyecto debe ser el mismo que el ID definido en stackdriver.projectID y cloudAuditLogging.projectID. Si los IDs de proyecto no son los mismos, no se podrá crear el clúster. Este requisito no se aplica a los clústeres que ya existen.

Ejemplo:

gkeConnect:
  projectID: "my-fleet-host-project"

gkeConnect.location

Opcional
Inmutable
Cadena
Valor predeterminado: global

La pertenencia a la flota de cada clúster se gestiona mediante el servicio de flota (gkehub.googleapis.com) y el servicio Connect (gkeconnect.googleapis.com). La ubicación de los servicios puede ser global o regional. En la versión 1.28 y posteriores, puedes especificar de forma opcional la Google Cloud región en la que se ejecutan los servicios Fleet y Connect. Si no se especifica, se usan las instancias globales de los servicios. Ten en cuenta lo siguiente:

  • Los clústeres de usuario creados antes de la versión 1.28 se gestionan mediante los servicios globales de flota y de conexión.

  • Los clústeres nuevos creados con los clientes de la API de GKE On-Prem (la consola, la CLI de Google Cloud o Terraform) usan la misma región que especifiques para la API de GKE On-Prem. Google Cloud

  • En el caso de los clústeres nuevos, si incluyes este campo, la región que especifiques debe ser la misma que la configurada en cloudAuditLogging.clusterLocation, stackdriver.clusterLocation y gkeOnPremAPI.location. Si las regiones no son las mismas, no se podrá crear el clúster.

Ejemplo:

gkeConnect:
  location: "us-central1"

gkeConnect.registerServiceAccountKeyPath

Obligatorio
Mutable
String

La ruta del archivo de clave JSON de tu cuenta de servicio connect-register.

Para actualizar el valor de este campo, usa gkectl update cluster.

Para obtener información sobre cómo cambiar la clave de la cuenta de servicio de conexión y registro, consulta el artículo Rotar las claves de cuentas de servicio.

Ejemplo:

gkeConnect:
  registerServiceAccountKeyPath: "my-key-folder/connect-register-key.json"

gkeConnect.registerServiceAccountKey.secretRef.version

Obligatorio si se usan credenciales preparadas
Mutable
String
Valores posibles: una cadena de números enteros o "latest"
Valor predeterminado: "latest"

La versión de un secreto preparado en el clúster de administrador que contiene una clave JSON para tu cuenta de servicio connect-register.

Ejemplo:

gkeConnect:
  registerServiceAccountKey:
    secretRef:
      version: "1"

gkeOnPremAPI

Opcional

En la versión 1.16 y posteriores, si la API GKE On-Prem está habilitada en tu Google Cloud proyecto, todos los clústeres del proyecto se registran en la API GKE On-Prem automáticamente en la región configurada en stackdriver.clusterLocation.

  • Si quieres registrar todos los clústeres del proyecto en la API de GKE On-Prem, sigue los pasos que se indican en la sección Antes de empezar para activar y usar la API de GKE On-Prem en el proyecto.

  • Si no quieres registrar el clúster en la API GKE On-Prem, incluye esta sección y asigna el valor false a gkeOnPremAPI.enabled. Si no quieres registrar ningún clúster en el proyecto, inhabilita gkeonprem.googleapis.com (el nombre del servicio de la API de GKE On-Prem) en el proyecto. Para obtener instrucciones, consulta Inhabilitar servicios.

Al registrar tu clúster de usuario en la API de GKE On-Prem, puedes usar las herramientas estándar (la consola de Google Cloud , la CLI de Google Cloud y Terraform) para gestionar el ciclo de vida del clúster. Además, al registrar el clúster, puedes usar la consola o la CLI de gcloud para ver los detalles del clúster. Por ejemplo, puedes ejecutar comandos gcloud para obtener información sobre tu clúster de usuarios.

Después de añadir esta sección y crear o actualizar el clúster, si posteriormente quitas la sección y actualizas el clúster, la actualización fallará.

gkeOnPremAPI.enabled

Obligatorio si se incluye la sección gkeOnPremAPI.
Mutable
Boolean
Predeterminado: true

De forma predeterminada, el clúster se registra en la API de GKE On-Prem si esta API está habilitada en tu proyecto. Introduzca false si no quiere registrar el clúster.

Una vez que el clúster se haya registrado en la API GKE On-Prem, si necesitas darlo de baja, haz el siguiente cambio y, a continuación, actualiza el clúster:

gkeOnPremAPI:
  enabled: false

gkeOnPremAPI.location

Obligatorio si se incluye la sección gkeOnPremAPI.
Inmutable
Cadena
Valor predeterminado: stackdriver.clusterLocation

La Google Cloud región en la que se ejecuta la API de GKE On-Prem y almacena los metadatos del clúster. Elige una de las regiones admitidas. Debes usar la misma región que se haya configurado en gkeConnect.location, stackdriver.clusterLocation y cloudAuditLogging.clusterLocation. Si gkeOnPremAPI.enabled es false, no incluyas este campo.

stackdriver

Obligatorio de forma predeterminada
Mutable

Si quieres habilitar Cloud Logging y Cloud Monitoring en tu clúster, rellena esta sección. De lo contrario, elimina esta sección o déjala comentada.

Esta sección es obligatoria de forma predeterminada. Es decir, si no incluye esta sección, debe incluir la marca --skip-validation-stackdriver al ejecutar gkectl create cluster.

Esta sección es obligatoria si quieres gestionar el ciclo de vida del clúster de usuario con clientes de la API GKE On-Prem.

stackdriver.projectID

Obligatorio para Logging y Monitoring
Inmutable
Cadena

El ID de tu proyecto host de la flota. En el caso de los clústeres nuevos, este ID de proyecto debe ser el mismo que el ID definido en gkeConnect.projectID y cloudAuditLogging.projectID. Si los IDs de proyecto no son los mismos, no se podrá crear el clúster. Este requisito no se aplica a los clústeres que ya existen.

Si es necesario, puedes configurar un enrutador de registros en este proyecto para enrutar registros a segmentos de registros de otro proyecto. Para obtener información sobre cómo configurar el logrouter, consulta Destinos admitidos.

Ejemplo:

stackdriver:
  projectID: "my-fleet-host-project"

stackdriver.clusterLocation

Obligatorio para Logging y Monitoring
Inmutable
Cadena
Valor predefinido: "us-central1"

La Google Cloud región en la que quiere enrutar y almacenar las métricas de Cloud Monitoring. Te recomendamos que elijas una región que esté cerca de tu centro de datos local.

Puede especificar la ubicación de almacenamiento y enrutamiento de los registros de Cloud Logging en la configuración del enrutador de registros. Para obtener más información sobre el enrutamiento de registros, consulta la descripción general del enrutamiento y el almacenamiento.

El operador de Stackdriver (stackdriver-operator) adjunta el valor de este campo a cada entrada de registro y métrica antes de que se enruten a Google Cloud. Estas etiquetas adjuntas pueden ser útiles para filtrar los registros y las métricas en el explorador de registros y el explorador de métricas, respectivamente.

En el caso de los clústeres nuevos, si incluyes las secciones gkeOnPremAPI y cloudAuditLogging en el archivo de configuración, la región que definas aquí debe ser la misma que definas en gkeConnect.location, gkeOnPremAPI.location y cloudAuditLogging.clusterLocation. Si las regiones no son las mismas, no se podrá crear el clúster.

Ejemplo:

stackdriver:
  clusterLocation: "us-central1"

stackdriver.enableVPC

Opcional
Inmutable
Booleano
Valor predeterminado: false

Si la red de tu clúster está controlada por una VPC, asigna el valor true. De esta forma, se asegura de que toda la telemetría fluya a través de las direcciones IP restringidas de Google. De lo contrario, asigna el valor false.

Ejemplo:

stackdriver:
  enableVPC: false

stackdriver.serviceAccountKeyPath

Obligatorio para Logging y Monitoring.
Mutable
String

Ruta del archivo de clave JSON de tu cuenta de servicio de registro y monitorización.

Para actualizar el valor de este campo, usa gkectl update cluster.

Para obtener información sobre cómo cambiar la clave de tu cuenta de servicio de registro y monitorización, consulta Rotar las claves de cuentas de servicio.

Ejemplo:

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

stackdriver.serviceAccountKey.secretRef.version

Obligatorio si se usan credenciales preparadas
Mutable
String
Valores posibles: una cadena de números enteros o "latest"
Valor predeterminado: "latest"

La versión de un secreto preparado en el clúster de administrador que contiene una clave JSON para tu cuenta de servicio de monitorización de registros.

Ejemplo:

stackdriver:
  serviceAccountKey:
    secretRef:
      version: "1"

stackdriver.disableVsphereResourceMetrics

Opcional
Mutable
Boolean
Prepopulated: false
Default: false

Asigna el valor true para inhabilitar la recogida de métricas de vSphere. De lo contrario, asigna el valor false.

Ejemplo:

stackdriver:
  disableVsphereResourceMetrics: true

usageMetering

Vista previa
Inmutable
Opcional

Si quieres habilitar la medición del uso de tu clúster, rellena esta sección. De lo contrario, elimina esta sección o déjala comentada.

usageMetering.bigQueryProjectID

Vista previa
Obligatorio para la medición del uso
Inmutable
Cadena

El ID del proyecto Google Cloud en el que quieras almacenar los datos de medición del uso.

Ejemplo:

usageMetering:
  bigQueryProjectID: "my-bq-project"

usageMetering.bigQueryDatasetID

Vista previa
Obligatorio para la medición del uso
Inmutable
Cadena

Es el ID del conjunto de datos de BigQuery en el que quieres almacenar los datos de medición del uso. Ejemplo:

usageMetering:
  bigQueryDatasetID: "my-bq-dataset"

usageMetering.bigQueryServiceAccountKeyPath

Vista previa
Obligatorio para la medición del uso
Inmutable
Cadena.

La ruta del archivo de clave JSON de tu cuenta de servicio de BigQuery.

Para actualizar el valor de este campo, usa gkectl update cluster.

Para obtener información sobre cómo cambiar la clave de la cuenta de servicio de BigQuery, consulta el artículo Rotar claves de cuentas de servicio.

Ejemplo:

usageMetering:
  bigQueryServiceAccountKeyPath: "my-key-folder/bq-key.json"

usageMetering.bigQueryServiceAccountKey.secretRef.version

Obligatorio si se usan credenciales preparadas
Mutable
String
Valores posibles: una cadena de números enteros o "latest"
Valor predeterminado: "latest"

La versión de un secreto preparado en el clúster de administrador que contiene una clave JSON para tu cuenta de servicio de BigQuery.

Ejemplo:

gkeConnect:
  bigQueryServiceAccountKey:
    secretRef:
      version: "1"

usageMetering.enableConsumptionMetering

Vista previa
Obligatorio para la medición del uso
Inmutable
Booleano
Valor predefinido: false

Asigna el valor true si quieres habilitar la medición basada en el consumo. De lo contrario, asigna el valor "false".

Ejemplo:

usageMetering:
  enableConsumptionMetering: true

cloudAuditLogging

Si quieres integrar los registros de auditoría del servidor de la API de Kubernetes de tu clúster con los registros de auditoría de Cloud, rellena esta sección. De lo contrario, elimina esta sección o déjala comentada.

cloudAuditLogging.projectID

Obligatorio para los registros de auditoría de Cloud
Inmutable
Cadena

El ID de tu proyecto host de la flota. En el caso de los clústeres nuevos, este ID de proyecto debe ser el mismo que el ID definido en gkeConnect.projecID y stackdriver.projectID. Si los IDs de proyecto no son los mismos, no se podrá crear el clúster. Este requisito no se aplica a los clústeres que ya existen.

Si es necesario, puedes configurar un enrutador de registros en este proyecto para enrutar registros a segmentos de registros de otro proyecto. Para obtener información sobre cómo configurar el logrouter, consulta Destinos admitidos.

Ejemplo:

cloudAuditLogging:
  projectID: "my-fleet-host-project"

cloudAuditLogging.clusterLocation

Obligatorio para los registros de auditoría de Cloud
Inmutable
Cadena

La Google Cloud región en la que quieres almacenar los registros de auditoría. Es recomendable elegir una región que esté cerca de tu centro de datos local.

En el caso de los clústeres nuevos, si incluyes las secciones gkeOnPremAPI y stackdriver en el archivo de configuración, la región que definas aquí debe ser la misma que definas en gkeConnect.location, gkeOnPremAPI.location y stackdriver.clusterLocation. Si las regiones no son las mismas, no se podrá crear el clúster.

Ejemplo:

cloudAuditLogging:
  clusterLocation: "us-central1"

cloudAuditLogging.serviceAccountKeyPath

Obligatorio para los registros de auditoría de Cloud.
Mutable
String

Ruta del archivo de clave JSON de tu cuenta de servicio de registro de auditoría.

Para actualizar el valor de este campo, usa gkectl update cluster.

Para obtener información sobre cómo cambiar la clave de tu cuenta de servicio de registro de auditoría, consulta Rotar claves de cuentas de servicio.

Ejemplo:

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

cloudAuditLogging.serviceAccountKey.secretRef.version

Opcional
Mutable
Cadena
Valores posibles: una cadena de números enteros o "latest"
Valor predeterminado: "latest"

La versión de un secreto preparado en el clúster de administración que contiene una clave JSON para tu cuenta de servicio de registro de auditoría.

Ejemplo:

cloudAuditLogging:
  serviceAccountKey:
    secretRef:
      version: "1"

autoRepair.enabled

Opcional
Mutable
Booleano
Prepoblado: true

Define este valor como true para habilitar la reparación automática de nodos. De lo contrario, asigna el valor false.

Ejemplo:

autoRepair:
  enabled: true

secretsEncryption

Si quieres cifrar secretos sin necesidad de un KMS (servicio de gestión de claves) externo ni de ninguna otra dependencia, rellena esta sección. De lo contrario, elimina esta sección o déjala comentada.

secretsEncryption.mode

Obligatorio para el cifrado de secretos
Inmutable
Cadena
Valor posible: "GeneratedKey"
Valor predefinido: "GeneratedKey"

El modo de cifrado de secretos.

secretsEncryption:
  mode: "GeneratedKey"

secretsEncryption.generatedKey.keyVersion

Obligatorio para el cifrado de secretos
Mutable
Integer
Prepopulated: 1

Un número entero que elijas para el número de versión de la clave. Te recomendamos que empieces con 1.

Para obtener información sobre cómo actualizar este campo en un clúster, consulta Cifrado de secretos siempre activos.

Ejemplo:

secretsEncryption:
  generatedKey:
    keyVersion: 1

secretsEncryption.generatedKey.disabled

Opcional para el cifrado de secretos
Mutable
Booleano
Valor predeterminado: false

Asigna el valor true para inhabilitar el cifrado de secretos. De lo contrario, asigna el valor false.

Para obtener información sobre cómo actualizar este campo en un clúster, consulta Cifrado de secretos siempre activos.

Ejemplo:

secretsEncryption:
  generatedKey:
    disabled: false