Configura los dominios de topología

En esta página, se proporciona una descripción general de los dominios de topología y los lineamientos para su configuración.

Para configurar un dominio de topología, debes habilitar el clúster avanzado. Ten en cuenta las siguientes limitaciones de la vista previa del clúster avanzado:

  • Puedes habilitar el clúster avanzado en el momento de la creación del clúster solo para clústeres nuevos de 1.31.
  • Una vez que se habilite el clúster avanzado, no podrás actualizarlo a la versión 1.32. Habilita solo el clúster avanzado en un entorno de prueba.

Esta página está destinada a administradores y arquitectos que definen soluciones de TI y arquitectura de sistema de acuerdo con la estrategia de la empresa, y crean y administran políticas relacionadas con los permisos de los usuarios. Para obtener más información sobre los roles comunes y las tareas de ejemplo a las que hacemos referencia en el contenido de Google Cloud , consulta Tareas y roles comunes de los usuarios de GKE Enterprise.

Descripción general

Un dominio de topología es un grupo de nodos de clúster que se consideran parte de la misma agrupación lógica o física, como un campus o un centro de datos. Un dominio de topología debe corresponder a algún hardware o software subyacente que tenga alguna posibilidad de falla correlacionada. Por ejemplo:

  • Falla de software, como diferentes servidores de vCenter
  • Fallas de hardware, como diferentes bastidores, diferentes fuentes de alimentación y diferentes edificios

En Google Distributed Cloud (solo software) para VMware, como parte de la configuración de un dominio de topología cuando creas un clúster, defines una etiqueta de topología. Después de crear el clúster, la etiqueta de topología se propaga a las etiquetas de los nodos en el dominio de topología.

Para usar un dominio de topología durante la versión preliminar, tienes las siguientes opciones:

  • Usa la restricción predeterminada a nivel del clúster de Kubernetes, "topology.kubernetes.io/zone", como la clave en la etiqueta de topología. Para obtener más información, consulta Restricciones predeterminadas integradas.

  • Configura el PodTemplate en tu Deployment, StatefulSet o ReplicaSet, según corresponda, con la clave de etiqueta de topología. En la especificación del pod, usas la clave en la etiqueta de topología como el valor del campo topologySpreadConstraints.topologyKey. Esta clave permite que el programador de Kubernetes distribuya pods en el dominio de topología para garantizar una alta disponibilidad y evitar la sobreconcentración en una sola área en caso de falla. Para obtener más información sobre cómo configurar topologySpreadConstraints en las especificaciones de tu pod, consulta Restricciones de distribución de la topología de Pod en la documentación de Kubernetes.

Etiquetas de dominio de topología de ejemplo

Supongamos que creas los siguientes tres dominios de topología cuando creas un clúster de usuario:

...
topologyDomains:
- name: "topology-domain-1"
  topologyLabels:
    "topology.examplepetstore.com/zone": "zone-1"
...
...
topologyDomains:
- name: "topology-domain-2"
  topologyLabels:
    "topology.examplepetstore.com/zone": "zone-2"
...
...
topologyDomains:
- name: "topology-domain-3"
  topologyLabels:
    "topology.examplepetstore.com/zone": "zone-3"
...

Después de crear el clúster, actualiza la especificación del pod, por ejemplo:

...
topologySpreadConstraints:
  topologyKey: "topology.examplepetstore.com/zone"
...

En un nivel alto, el programador de Kubernetes usa topology.examplepetstore.com/zone para separar los nodos del clúster en distintos grupos, zone-1, zone-2 y zone-3. Luego, el programador distribuye los Pods entre estos tres grupos de nodos.

Lineamientos para la configuración de dominios de topología

Para garantizar que el programador de Kubernetes use todos los recursos de los clústeres de manera eficaz, te recomendamos los siguientes lineamientos:

  • Los dominios de topología deben estar equilibrados. Debes proporcionar cantidades casi iguales de capacidad de CPU y RAM en cada dominio de topología.
  • Proporciona al menos dos y, de preferencia, tres dominios de topología.
  • No distribuyas los datos en más de una clave de topología.
  • Los nodos deben tener un tamaño similar en cada dominio de topología.
  • Si usas taints y tolerancias para la separación de cargas de trabajo dentro de un clúster, cada grupo de nodos debe cumplir con los requisitos anteriores.

Si no se cumplen estos lineamientos, el programador intentará usar la capacidad completa del clúster, pero es posible que tarde más en programar Pods y que no todos los Pods tengan el comportamiento de propagación esperado.

¿Qué sigue?