Archivo de configuración de clúster de usuarios 1.30 y versiones posteriores

En este documento se describen los campos del archivo de configuración del clúster de usuarios de Google Distributed Cloud para las versiones 1.30 y posteriores.

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 de Google Distributed Cloud. Por ejemplo: gkectl create-config cluster --gke-on-prem-version=1.33.0-gke.799.

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, es 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.

enableAdvancedCluster

1.33 y versiones posteriores

Todos los clústeres nuevos se crean como clústeres avanzados. Si incluye este campo en el archivo de configuración al crear un clúster, debe asignarle el valor true. Si asigna el valor false a este campo, se bloqueará la creación del clúster.

1.32

Opcional
Mutable (se permite de false a true)
Booleano
Valor predefinido: true
Valor predeterminado: true

Asigna el valor false a enableAdvancedCluster si no quieres habilitar el clúster avanzado al crear un clúster. Si esta marca se define como true (clúster avanzado habilitado), el software subyacente de Google Distributed Cloud desplegará controladores que permitan una arquitectura más extensible. Al habilitar el clúster avanzado, tendrás acceso a nuevas funciones y capacidades, como los dominios de topología. Este campo debe tener el mismo valor que el campo enableAdvancedCluster del clúster de administrador.

Consulta las diferencias al ejecutar clústeres avanzados antes de habilitar esta opción.

Para actualizar un clúster a un clúster avanzado, consulta Actualizar un clúster a un clúster avanzado. Después de actualizar a un clúster avanzado, no se puede inhabilitar.

1.31

Solo está disponible para los clústeres nuevos
Vista previa
Opcional
Inmutable
Booleano
Valor predefinido: false
Valor predeterminado: false

Asigna el valor enableAdvancedCluster a true si quieres habilitar el clúster avanzado al crear un clúster. Si esta marca se define como true (clúster avanzado habilitado), el software de Google Distributed Cloud subyacente desplegará controladores que permitan una arquitectura más extensible. Al habilitar el clúster avanzado, tendrás acceso a nuevas funciones y capacidades, como los dominios de topología. Este campo debe tener el mismo valor que el campo enableAdvancedCluster del clúster de administrador.

1.30 y versiones anteriores

No está disponible.

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.29.0-gke.1456"

preparedSecrets.namespace

Si infraConfigFilePath está configurado en el archivo de configuración del clúster de administrador, elimina este campo. De lo contrario, si quieres usar credenciales preparadas, rellena este campo.

Inmutable
String
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

1.30 y versiones posteriores

Mutable (se permite de false a true)
Booleano
Valor predefinido: true
Valor predeterminado: true

En la versión 1.30 y posteriores, se requiere Controlplane V2 para los clústeres de usuarios nuevos. Si incluyes este campo en tu archivo de configuración, debe tener el valor true.

Para migrar un clúster a Controlplane V2, consulta Migrar un clúster de usuario a las funciones recomendadas. Después de migrar a Controlplane V2, no se puede inhabilitar Controlplane V2.

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. Estas son algunas de las ventajas de Controlplane V2:

  • Coherencia de la arquitectura entre los clústeres de administradores y de usuarios.

  • Aislamiento de fallos. Si falla un clúster de administrador, no se verán afectados los clústeres de usuarios.

  • Separación operativa. La actualización de un clúster de administradores no provoca tiempos de inactividad en los clústeres de usuarios.

  • Separación de la implementación. Puedes colocar los clústeres de administrador y de usuario en diferentes dominios de errores o sitios geográficos. Por ejemplo, un clúster de usuarios de una ubicación perimetral podría estar en un sitio geográfico diferente al del clúster de administrador.

1.29 y versiones anteriores

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 infraConfigFilePath está configurado en el archivo de configuración del clúster de administrador, elimina toda esta sección.

Si has incluido la sección vCenter en el archivo de configuración del clúster de administrador, haz lo siguiente:

  • 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

Inmutable
String
Valor predeterminado: heredar del clúster de administrador

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

Inmutable
String
Valor predeterminado: heredar del clúster de administrador

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

Inmutable
String
Valor predeterminado: heredar del clúster de administrador

La 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

Inmutable
String
Valor predeterminado: heredar del clúster de administrador

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

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 incluya 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

Mutable
String
Valor predeterminado: heredar del clúster de administradores

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

Mutable
String
Valor predeterminado: heredar del clúster de administradores

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

Mutable
String
Valor predeterminado: heredar del clúster de administradores

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

Cadena
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

Inmutable
String
Valor predeterminado: heredar del clúster de administrador

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

Mutable
String
Valor predeterminado: heredar del clúster de administradores

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

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

Inmutable
String
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

Mutable
String
Valor predeterminado: heredar del clúster de administradores

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

Mutable
String
Valor predeterminado: heredar del clúster de administradores

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

Cadena
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 un 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

Mutable
String
Valor predeterminado: heredar del clúster de administradores

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.

Define este campo con 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

1.30 y versiones posteriores

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 infraConfigFilePath está configurado en el archivo de configuración del clúster de administrador (disponible en la versión 1.31 y posteriores), elimina toda esta sección. De lo contrario, esta sección es obligatoria si se cumple una o varias de las siguientes condiciones:

  • La opción network.ipMode.type está configurada como static.
  • enableControlplaneV2 se ha definido como true o se ha permitido que se defina como true de forma predeterminada. Ten en cuenta que se necesita Controlplane V2 para los clústeres de usuarios nuevos.

1.29 y versiones anteriores

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:

  • La opción network.ipMode.type está configurada como static.
  • enableControlplaneV2 se ha definido como true o se ha permitido que se defina como true de forma predeterminada. El balanceador de carga Seesaw no es compatible con clústeres que tengan habilitado Controlplane V2.
  • La opción loadBalancer.kind está configurada 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

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

Inmutable
String
Prepopulated: "static"
Default: "dhcp"

Si quieres que los nodos de tu clúster obtengan su dirección IP de un servidor DHCP, asigna el valor "dhcp" a este campo. 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". Si enableControlplaneV2 tiene el valor true, este ajuste solo se aplica a los nodos de trabajador.

Ejemplo:

network:
  ipMode:
    type: "static"

network.ipMode.ipBlockFilePath

Este campo es obligatorio si network.ipMode.type = static o si infraConfigFilePath está configurado en el archivo de configuración del clúster de administrador.

Inmutable
Cadena

Ruta absoluta o relativa del archivo de bloque de IPs de tu clúster.

Ejemplo:

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

network.serviceCIDR

Inmutable
Cadena
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

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

Si infraConfigFilePath está configurado en el archivo de configuración del clúster de administrador, elimina este campo. De lo contrario, este campo es obligatorio si vCenter.address es diferente de la dirección de vCenter que estás usando para 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 infraConfigFilePath está configurado en el archivo de configuración del clúster de administrador, elimina toda esta sección.

De lo contrario, si incluyes esta sección dependerá del valor que definas en enableControlplaneV2:

  • Si enableControlplaneV2 es true, rellena esta sección.
  • Si enableControlplaneV2 es false, elimina esta sección.

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. El nombre de host es obligatorio para la migración a la versión 2 del plano de control y opcional en el resto de los casos.

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

Especifica el tipo de balanceador de carga que quieras usar.

1.32 y versiones posteriores

Obligatorio
Inmutable
Cadena
Predefinido: "MetalLB"

El tipo de balanceador de carga que puedes usar depende de si vas a configurar el clúster para que use dominios de topología. Se presupone que el clúster usa dominios de topología si el campo infraConfigFilePath se configura en el archivo de configuración del clúster de administrador.

  • Con dominios de topología: define este valor como "ManualLB". Debes configurar un balanceador de carga de terceros (como F5 BIG-IP o Citrix) si quieres usar dominios de topología.

  • Sin dominios de topología: asigna el valor "ManualLB" o "MetalLB". Usa "ManualLB" si tienes un balanceador de carga de terceros o "MetalLB" para nuestra solución combinada. También puedes configurar otro tipo de balanceador de carga para el tráfico del plano de control. Para obtener más información, consulta masterNode.controlPlaneLoadBalancer.

1.31

Obligatorio
Inmutable
Cadena
Predefinido: "MetalLB"

El tipo de balanceador de carga que puedes usar depende de si vas a configurar el clúster para que use dominios de topología. Se presupone que el clúster usa dominios de topología si el campo infraConfigFilePath se configura en el archivo de configuración del clúster de administrador.

  • Con dominios de topología: define este valor como "ManualLB". Si quieres usar dominios de topología, debes configurar un balanceador de carga de terceros (como F5 BIG-IP o Citrix).

  • Sin dominios de topología: asigna el valor "ManualLB" o "MetalLB". Usa "ManualLB" si tienes un balanceador de carga de terceros o "MetalLB" para nuestra solución combinada.

1.30

Obligatorio
Inmutable
Cadena
Predefinido: "MetalLB"

Asigna el valor "ManualLB" o "MetalLB". Usa "ManualLB" si tienes un balanceador de carga de terceros (como F5 BIG-IP o Citrix) o "MetalLB" para nuestra solución integrada.

Aunque puedes actualizar un clúster que tenga kind definido como "F5BigIP" o "Seesaw", no puedes crear clústeres nuevos. Para obtener información sobre cómo migrar configuraciones de equilibrio de carga, consulta Planificar la migración de clústeres a las funciones recomendadas.

Ejemplo:

loadBalancer:
  kind: "MetalLB"

1.29 y versiones anteriores

Obligatorio
Inmutable
Cadena
Predefinido: "MetalLB"

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

Para habilitar Dataplane V2 y Controlplane V2, te recomendamos que uses "ManualLB" si tienes un balanceador de carga de terceros (como F5 BIG-IP o Citrix) o "MetalLB" para nuestra solución combinada.

Ejemplo:

loadBalancer:
  kind: "MetalLB"

Cuando creas clústeres de usuarios con la consola Google Cloud , la CLI de gcloud o Terraform, el tipo de balanceador de carga del clúster de administrador y sus clústeres de usuarios debe ser el mismo. La única excepción es si el clúster de administrador usa Seesaw, en cuyo caso los clústeres de usuario pueden usar MetalLB. Si quieres que tus clústeres de administrador y de usuario usen diferentes tipos de balanceadores de carga, debes crear clústeres de usuario con la herramienta de línea de comandos gkectl.

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 (consulta la nota de la versión)
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. Elige un valor nodePort para el campo HTTP ServicePort y asigna ese valor nodePort a este campo.

Nota sobre la versión: En la versión 1.30 y posteriores, los puertos de nodo de entrada son opcionales para los clústeres que usan Controlplane V2.

Ejemplo:

loadBalancer:
  manualLB:
    ingressHTTPNodePort: 32527

loadBalancer.manualLB.ingressHTTPSNodePort

Obligatorio si loadBalancer.kind = ManualLB (see Version note)
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. Elige un valor nodePort para el campo HTTPS ServicePort y asigna ese valor al campo nodePort.

Nota sobre la versión: En la versión 1.30 y posteriores, los puertos de nodo de entrada son opcionales para los clústeres que usan Controlplane V2.

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

1.30 y versiones posteriores

En la versión 1.30 y posteriores, no se permite el valor "F5BigIP" para loadbalancer.kind en los nuevos clústeres de usuarios. Si la sección loadBalancer.f5BigIP se encuentra en el archivo de configuración, elimínela o coméntela.

Puedes seguir usando tu balanceador de carga de F5 BIG-IP con los nuevos clústeres de usuarios, pero la configuración es diferente. Para obtener información sobre la configuración, consulta Habilitar el modo manual del balanceo de carga.

Si un clúster tiene configurada esta sección, no se podrá actualizar a la versión 1.32. Debes migrar tus clústeres a las funciones recomendadas antes de actualizar a la versión 1.32.

1.29 y versiones anteriores

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.

Si tienes un balanceador de carga F5 BIG-IP y la configuración del clúster usa esta sección, te recomendamos que migres al balanceo de carga manual después de actualizar a la versión 1.29 o a una posterior.

loadBalancer.f5BigIP.address

1.30 y versiones posteriores

No se permite en clústeres nuevos
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"

1.29 y versiones anteriores

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

1.30 y versiones posteriores

No se permite en clústeres nuevos
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"

1.29 y versiones anteriores

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

1.30 y versiones posteriores

No se permite en clústeres nuevos
Obligatorio si loadBalancer.kind = "F5BigIP"
Cadena

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 F5 BIG-IP.

Ejemplo:

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

1.29 y versiones anteriores

Obligatorio si loadBalancer.kind = "F5BigIP"
Cadena

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 F5 BIG-IP.

Ejemplo:

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

loadBalancer.f5BigIP.partition

1.30 y versiones posteriores

No se permite en clústeres nuevos
Obligatorio si loadBalancer.kind = "F5BigIP"
Cadena

El 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"

1.29 y versiones anteriores

Obligatorio si loadBalancer.kind = "F5BigIP"
Cadena

El 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

1.30 y versiones posteriores

No se permite en clústeres nuevos
Obligatorio si loadBalancer.kind = "F5BigIP" y usas SNAT
Cadena

El nombre de tu grupo de SNAT.

Ejemplo:

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

1.29 y versiones anteriores

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

1.30 y versiones posteriores

En la versión 1.30 y posteriores, no se permite el valor "Seesaw" para loadbalancer.kind en los nuevos clústeres de usuarios porque este balanceador de carga no es compatible con las funciones nuevas y avanzadas. Si la sección loadBalancer.seesaw se encuentra en el archivo de configuración, elimínela o coméntela.

En su lugar, puedes configurar el balanceador de carga MetalLB agrupado. Para habilitar el balanceador de carga MetalLB, defina loadbalancer.kind como "MetalLB" y rellene la sección loadBalancer.metalLB. Para obtener más información, consulta Balanceo de carga agrupado con MetalLB.

1.29 y versiones anteriores

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, defina loadbalancer.kind en"MetalLB" y rellene la sección loadBalancer.metalLB. Para obtener más información, consulta Balanceo de carga agrupado con MetalLB.

loadBalancer.seesaw.ipBlockFilePath

1.30 y versiones posteriores

No se permite en clústeres nuevos
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"

1.29 y versiones anteriores

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

1.30 y versiones posteriores

No se permite en clústeres nuevos
Obligatorio si loadBalancer.kind = Seesaw
Inmutable
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

1.29 y versiones anteriores

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

1.30 y versiones posteriores

No se permite en clústeres nuevos
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

1.29 y versiones anteriores

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

1.30 y versiones posteriores

No se permite en clústeres nuevos
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

1.29 y versiones anteriores

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

1.30 y versiones posteriores

No se permite en clústeres nuevos
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 220 = 1.048.576 bytes. Un megabyte equivale a 106 = 1.000.000 bytes.

1.29 y versiones anteriores

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 220 = 1.048.576 bytes. Un megabyte equivale a 106 = 1.000.000 bytes.

loadBalancer.seesaw.vCenter.networkName

1.30 y versiones posteriores

No se permite en clústeres nuevos
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"

1.29 y versiones anteriores

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

1.30 y versiones posteriores

No se permite en clústeres nuevos
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 alta disponibilidad de Seesaw usa un par(principal y de copia de seguridad) de VMs.

Ejemplo:

loadBalancer:
  seesaw:
    enableHA: true

1.29 y versiones anteriores

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 alta disponibilidad de Seesaw usa un par(principal y de copia de seguridad) de VMs.

Ejemplo:

loadBalancer:
  seesaw:
    enableHA: true

loadBalancer.seesaw.disableVRRPMAC

1.30 y versiones posteriores

No se permite en clústeres nuevos
Inmutable
Relevante si loadBalancer.kind = Seesaw
Booleano
Valor predefinido: true
Valor predeterminado: true

Si se le asigna el valor true (opción recomendada), el balanceador de carga Seesaw no utiliza el aprendizaje de MAC para la conmutación por error. En su lugar, usa ARP gratuito. Si este campo se define como false, el balanceador de carga de Seesaw usa el aprendizaje de MAC. Si usas vSphere 7 o una versión posterior y tienes un balanceador de carga de alta disponibilidad de Seesaw, este campo debe tener el valor true.

Ejemplo:

loadBalancer:
  seesaw:
    disableVRRPMAC: true

1.29 y versiones anteriores

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

Si asignas el valor true (opción recomendada), el balanceador de carga 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. 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 (see exception)

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.

1.32 y versiones posteriores

El comportamiento de este campo es el mismo cuando enableAdvancedCluster se define como true (clúster avanzado habilitado) o false (clúster avanzado no habilitado). En ambos casos, la matriz no es totalmente mutable. Puedes añadir grupos de direcciones, pero no puedes eliminar grupos de direcciones de una matriz de grupos de direcciones.

1.31

El comportamiento de este campo depende de si enableAdvancedCluster tiene el valor true (clúster avanzado habilitado) o false (clúster avanzado no habilitado):

  • Si el clúster avanzado está habilitado, la matriz no es totalmente mutable. Puedes añadir conjuntos de direcciones, pero no quitar conjuntos de direcciones de una matriz de conjuntos de direcciones.

  • Si el clúster avanzado no está habilitado, la matriz es mutable. Puedes añadir y quitar grupos de direcciones de una matriz de grupos de direcciones.

1.30 y versiones anteriores

Puede añadir y quitar grupos de direcciones de una matriz de grupos de direcciones ya creada.

loadBalancer.metalLB.addressPools[i].name

Obligatorio si loadBalancer.kind = MetalLB
Mutable (consulta la excepción)
Cadena

El nombre que elijas para el grupo de direcciones.

1.32 y versiones posteriores

El comportamiento de este campo es el mismo que cuando enableAdvancedCluster se define como true (clúster avanzado habilitado) o false (clúster avanzado no habilitado). En ambos casos, no se puede cambiar el nombre después de crear el clúster.

1.31

El comportamiento de este campo depende de si enableAdvancedCluster tiene el valor true (clúster avanzado habilitado) o false (clúster avanzado no habilitado):

  • Si el clúster avanzado está habilitado, no se puede cambiar el nombre después de crear el clúster.

  • Si el clúster avanzado no está habilitado, puedes cambiar el nombre del pool después de crear el clúster.

1.30 y versiones anteriores

Puedes cambiar el nombre del grupo después de crear el clúster.

Ejemplo:

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

Obligatorio si loadBalancer.kind = MetalLB
Mutable (see exception)

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.

1.32 y versiones posteriores

El comportamiento de este campo es el mismo que cuando enableAdvancedCluster se define como true (clúster avanzado habilitado) o false (clúster avanzado no habilitado). En ambos casos, puedes añadir direcciones a un grupo de direcciones ya creado, pero no puedes quitar direcciones.

1.31

El comportamiento de este campo depende de si enableAdvancedCluster tiene el valor true (clúster avanzado habilitado) o false (clúster avanzado no habilitado):

  • Si el clúster avanzado está habilitado, puedes añadir direcciones a un grupo de direcciones, pero no puedes quitar direcciones.

  • Si el clúster avanzado no está habilitado, puedes añadir y quitar direcciones de un grupo de direcciones.

1.30 y versiones anteriores

Puede añadir y quitar direcciones de un grupo de direcciones ya creado.

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

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

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

1.30 y versiones posteriores

Mutable (se permite de false a true)
Booleano
Valor predefinido: true
Valor predeterminado: false

Este campo controla la interfaz de red de contenedor (CNI) que usa el clúster. Para usar Controlplane V2, es necesario habilitar Dataplane V2. Puedes cambiar el campo de false a true para habilitar Dataplane V2, pero no puedes inhabilitarlo.

Estas son algunas de las ventajas de Dataplane V2:

  • Dataplane V2 te ofrece una interfaz de red de contenedores (CNI) más avanzada y potente en comparación con la opción CNI anterior, Calico. Calico está en modo de mantenimiento, lo que significa que solo recibe correcciones de errores críticos y actualizaciones de seguridad, pero no se desarrollan nuevas funciones. Por el contrario, Dataplane V2 se desarrolla y mejora activamente, lo que te garantiza el acceso a las innovaciones y funciones de red más recientes.

  • Dataplane V2 es el CNI preferido para GKE y otros productos de Google Distributed Cloud.

1.29 y versiones anteriores

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 de Google Distributed Cloud NFS y DataPlane v2.

dataplaneV2.forwardMode

Mutable
String
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"

multipleNetworkInterfaces

Inmutable
Booleano
Valor predefinido: false
Valor predeterminado: false

Si infraConfigFilePath está configurado en el archivo de configuración del clúster de administrador, este campo debe ser false.

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

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

Ejemplo:

multipleNetworkInterfaces: true

advancedNetworking

Inmutable
booleano
Prepopulado: 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.

Booleano
Mutable
Prepopulated: false
Default: false

Ejemplo:

disableBundledIngress: true

storage.vSphereCSIDisabled

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

Si infraConfigFilePath está configurado en el archivo de configuración del clúster de administrador, este campo debe ser true.

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

1.32 y versiones posteriores

Si quiere, incluya esta sección para especificar el tipo de balanceador de carga que se va a usar para el tráfico del plano de control en el clúster de usuarios. Incluye masterNode.controlPlaneLoadBalancer.mode en tu archivo de configuración si quieres definir explícitamente el tipo de balanceador de carga que quieres usar en lugar de utilizar el valor predeterminado. Además, debe definir loadBalancer.kind en el archivo de configuración para especificar el tipo de balanceador de carga que se va a usar en el plano de datos.

masterNode.controlPlaneLoadBalancer.mode

Opcional
Inmutable
Cadena
Valor predeterminado: depende de si el clúster usa dominios de topología

El tipo de balanceador de carga que puedes usar depende de si vas a configurar el clúster para que use dominios de topología. Se presupone que el clúster usa dominios de topología si el campo infraConfigFilePath se configura en el archivo de configuración del clúster de administrador.

  • Con dominios de topología: especifica "manual", que es el valor predeterminado. Si quieres usar dominios de topología, debes configurar un balanceador de carga de terceros (como F5 BIG-IP o Citrix).

  • Sin dominios de topología: especifica "manual" o "bundled". Usa "manual" si tienes un balanceador de carga de terceros o "bundled" para nuestra solución empaquetada, que usa keepalived + haproxy en los nodos del plano de control. El valor predeterminado es "bundled".

Ejemplo:

adminMaster:
  controlPlaneLoadBalancer:
    mode: "manual"

1.31 y versiones anteriores

Esta sección no está disponible. En su lugar, use loadBalancer.kind para especificar el tipo de balanceador de carga que debe usar el clúster de usuario.

masterNode.cpus

Mutable
Número entero
Valor predefinido: 4
Valor predeterminado: 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

Mutable
Integer
Prepopulated: 8192
Default: 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

Inmutable
Entero
Valores posibles: 1 o 3
Relleno automático: 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.

Si el campo enableAdvancedCluster es true, debe asignar el valor 3 a este campo. En los clústeres avanzados solo se admiten clústeres de usuario de alta disponibilidad.

Ejemplo:

masterNode:
  replicas: 3

masterNode.autoResize.enabled

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

Si infraConfigFilePath está configurado en el archivo de configuración del clúster de administrador, elimina toda esta sección.

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

masterNode.topologyDomains

1.32 y versiones posteriores

Vista previa
Opcional
Matriz de cadenas | Permite uno o tres elementos diferentes
Inmutable
Valor predeterminado: vSphereInfraConfig.defaultTopologyDomain si se especifica en el archivo de configuración de la infraestructura de vSphere

Una matriz de dominios de topología. Si infraConfigFilePath se ha configurado en el archivo de configuración del clúster de administrador (lo que indica que el clúster usará dominios de topología), puede incluir este campo. El número de dominios de topología de la matriz determina cómo se implementan los nodos del plano de control del clúster de usuarios, de la siguiente manera:

  • Un elemento: todos los nodos del plano de control del clúster de usuario se implementarán en el dominio de topología especificado.
  • Tres elementos: cada nodo del plano de control del clúster de usuarios se desplegará en un dominio de topología diferente (es decir, un nodo por dominio de topología).

1.31

Vista previa
Opcional
Matriz de cadenas | Solo se admite un elemento
Inmutable
Valor predeterminado: vSphereInfraConfig.defaultTopologyDomain si se especifica en el archivo de configuración de la infraestructura de vSphere

Una matriz de dominios de topología. Si infraConfigFilePath se configura en el archivo de configuración del clúster de administrador (lo que indica que el clúster usará dominios de topología), puede incluir este campo. Los nodos del plano de control del clúster de usuarios se desplegarán en el dominio de topología especificado.

1.30 y versiones anteriores

No está disponible.

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.

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

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

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

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

En la versión 1.32, los grupos de nodos de Windows Server están obsoletos y no estarán disponibles en la versión 1.33 ni en versiones posteriores. La asistencia para los grupos de nodos de Windows Server finalizará el 5 de mayo del 2026. Te recomendamos que no uses "windows" como tipo de imagen de SO en los clústeres nuevos.

Ten en cuenta la siguiente limitación de los clústeres avanzados:

  • Versión 1.31: si el campo enableAdvancedCluster es true, solo se admiten ubuntu-cgroupv2 y ubuntu_containerd en los clústeres avanzados.

  • Versión 1.32: se admiten todos los tipos de imágenes de SO, excepto "windows", en los clústeres avanzados.

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

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

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

Si infraConfigFilePath está configurado en el archivo de configuración del clúster de administrador, elimina todos los campos de la sección nodePools[i].vsphere, excepto nodePools[i].vsphere.tags.

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.

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

Mutable
Matriz 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

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

Mutable
Número entero
Valores posibles: igual o superior a 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

Mutable
Número entero
Valor predefinido: 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

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

1.32 y versiones posteriores

El comportamiento de este campo es el mismo cuando enableAdvancedCluster se define como true (clúster avanzado habilitado) o false (clúster avanzado no habilitado). En ambos casos, defina este valor como true si quiere permitir que el altavoz de MetalLB se ejecute en los nodos del grupo. De lo contrario, asigna el valor false.

1.31

El comportamiento de este campo depende de si enableAdvancedCluster tiene el valor true (clúster avanzado habilitado) o false (clúster avanzado no habilitado):

  • Si el clúster avanzado está habilitado, este campo no tiene ningún efecto porque el altavoz de MetalLB siempre se ejecutará en los nodos del plano de control del clúster de usuario.

  • Si el clúster avanzado no está habilitado, 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.

1.29 y versiones anteriores

Define este valor como true si quieres permitir que el altavoz de MetalLB se ejecute en los nodos del pool. 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
Mutable
Integer
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

nodePools[i].topologyDomains

1.31 y versiones posteriores

Si infraConfigFilePath está configurado en el archivo de configuración del clúster de administrador (que habilita los dominios de topología), incluye este campo de forma opcional.

Matriz de cadenas | Solo se admite un elemento
Inmutable
Valor predeterminado: vSphereInfraConfig.defaultTopologyDomain si se especifica en el archivo de configuración de la infraestructura de vSphere

Los nodos de este grupo de nodos se colocarán en el dominio de topología especificado en este campo. Solo se permite un dominio de topología por grupo de nodos. Todos los nodos de un pool de nodos se incluirán en un solo dominio de topología.

1.30 y versiones anteriores

No está disponible.

schedulerConfiguration

1.32 y versiones posteriores

Vista previa
Opcional

Al configurar dominios de topología, puedes configurar ajustes adicionales que se enviarán a kube-scheduler.

schedulerConfiguration.defaultTopologySpreadConstraint

Vista previa
Opcional
Inmutable

Objeto que define una regla de restricción de distribución de topología predeterminada a nivel de clúster que se aplica a la programación de pods. Si el clúster de usuario se crea con dominios de topología y se configura esta regla, kube-scheduler toma la clave de topología predeterminada y distribuye los pods de las implementaciones, los StatefulSets y los ReplicaSets en ella de forma predeterminada. La estructura es la misma que la de las restricciones predeterminadas a nivel de clúster de Kubernetes.

Ejemplo:

schedulerConfiguration:
  defaultTopologySpreadConstraint:
    defaultConstraints:
    - maxSkew: 1
      topologyKey: topology.kubernetes.io/zone
      whenUnsatisfiable: ScheduleAnyway
    defaultingType: List

Para obtener más información, consulta Restricciones predeterminadas a nivel de clúster en la documentación de Kubernetes.

1.31 y versiones anteriores

No está disponible.

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.

Ten en cuenta la siguiente limitación de los clústeres avanzados:

  • Versión 1.31: si el campo enableAdvancedCluster es true, las reglas de antiafinidad no se admiten en los clústeres avanzados y debes definir antiAffinityGroups.enabled como false.

  • Versión 1.32: las reglas de antiafinidad se admiten en clústeres avanzados.

Ejemplo:

antiAffinityGroups:
  enabled: false

enableVMTracking

Vista previa
Inmutable
Rellenado previamente: 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

Mutable
Integer
Valores posibles: 0 u 1
Valor predefinido: 0 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.

Ten en cuenta la siguiente limitación de los clústeres avanzados:

  • Versión 1.31: si el campo enableAdvancedCluster es true, no se admiten las políticas de actualización de grupos de nodos en clústeres avanzados, por lo que debe eliminar esta sección de su archivo de configuración.

  • Versión 1.32: se admiten las políticas de actualización de grupos de nodos en clústeres avanzados.

Ejemplo:

nodePoolUpdatePolicy:
  maximumConcurrentNodePoolUpdate: 1

nodePoolUpdatePolicy.updateStrategy.rollingUpdate.maxSurge

Vista previa
Mutable
Integer
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

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

Cadena

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

En esta sección se incluye 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

Inmutable
String
Valor predeterminado: global

La pertenencia a la flota de cada clúster se gestiona mediante el servicio Fleet (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 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

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

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

Mutable
Booleano
Valor 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

Inmutable
String
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
Mutable

En esta sección se incluyen las configuraciones necesarias para Cloud Logging y Cloud Monitoring.

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

Inmutable
Booleano
Prepopulated: 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

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

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

1.32 y versiones posteriores

La función de medición del uso no está disponible en la versión 1.32 ni en versiones posteriores. No incluyas esta sección cuando crees clústeres. Sin embargo, los clústeres que ya usen esta función seguirán funcionando. Como alternativa, te recomendamos que uses el panel de control predefinido Anthos Cluster Utilization Metering para conocer el uso de recursos en diferentes niveles. Ponte en contacto con Cloud Customer Care si la alternativa no satisface tus casos prácticos.

1.30 y 1.31

Te recomendamos que no uses esta función de vista previa cuando crees clústeres. Sin embargo, los clústeres que ya usen esta función seguirán funcionando. Como alternativa, te recomendamos que uses el panel de control predefinido Medición del uso de clústeres de Anthos para comprender el uso de recursos en diferentes niveles.

Si el campo enableAdvancedCluster es true, elimina esta sección. La medición del uso no se admite en clústeres avanzados.

1.29 y versiones anteriores

Vista previa
Inmutable

Te recomendamos que no uses esta función de vista previa cuando crees clústeres. Sin embargo, los clústeres que ya usen esta función seguirán funcionando. Como alternativa, te recomendamos que uses el panel de control predefinido Medición del uso de clústeres de Anthos para comprender el uso de recursos en diferentes niveles.

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

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 administración que contiene una clave JSON de 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.

Si vas a crear el clúster con enableAdvancedCluster definido como true (que es obligatorio para configurar dominios de topología), define cloudAuditLogging.serviceAccountKeyPath con la misma ruta que stackdriver.serviceAccountKeyPath.

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

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 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
Valor predefinido: 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.

Si vas a crear el clúster con enableAdvancedCluster definido como true (que es obligatorio para configurar dominios de topología), elimina esta sección. Esta función no está disponible en los clústeres avanzados.

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

Mutable
Booleano
Prepopulated: 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