En esta página, se proporciona una descripción general de los dominios de topología y los lineamientos para configurarlos.
Para configurar un dominio de topología, debes habilitar el clúster avanzado. Ten en cuenta las siguientes limitaciones de la vista previa avanzada del clúster:
- Puedes habilitar el clúster avanzado en el momento de la creación del clúster solo para los clústeres nuevos de la versión 1.31.
- Después de habilitar el clúster avanzado, no podrás actualizarlo a la versión 1.32. Solo habilita 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 usuario. 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.
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 racks, fuentes de alimentación y 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 la creación del 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, tienes las siguientes opciones:
Versión 1.32 y versiones posteriores: Configura las restricciones de propagación de la topología predeterminada a nivel del clúster. Para obtener más información, consulta
schedulerConfiguration
.Usa la restricción predeterminada a nivel del clúster de Kubernetes,
"topology.kubernetes.io/zone"
, como clave en la etiqueta de topología. Para obtener más información, consulta Restricciones predeterminadas integradas.Configura
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 de la etiqueta de topología como el valor del campotopologySpreadConstraints.topologyKey
. Esta clave permite que el programador de Kubernetes distribuya los Pods en el dominio de topología para garantizar la alta disponibilidad y evitar la concentración excesiva en cualquier área en caso de falla. Para obtener más información sobre cómo configurartopologySpreadConstraints
en las especificaciones del Pod, consulta Restricciones de distribución de la topología de Pod en la documentación de Kubernetes.
Ejemplo de etiquetas de dominio de topología
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"
...
A un nivel general, el programador de Kubernetes usa topology.examplepetstore.com/zone
para separar los nodos del clúster en diferentes grupos: zone-1
, zone-2
y zone-3
. Luego, el programador distribuye los Pods en estos tres grupos de nodos.
Lineamientos para la configuración de dominios de topología
Para garantizar que el programador de Kubernetes use de manera eficaz todos los recursos del clúster, 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 se propaga por 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 total del clúster, pero es posible que tarde más en programar los Pods y que no todos los Pods obtengan el comportamiento de propagación esperado.
¿Qué sigue?
- Crea un clúster de administrador para usarlo en dominios de topología
- Crea un clúster de usuario para usarlo en dominios de topología
- Archivo de configuración de la infraestructura de vSphere