En esta página se ofrece una descripción general de los dominios de topología y las directrices 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 de clústeres avanzados:
- Solo puedes habilitar clústeres avanzados al crear clústeres 1.31 nuevos.
- Una vez que se haya habilitado el clúster avanzado, no podrás actualizarlo a la versión 1.32. Habilita el clúster avanzado solo en un entorno de prueba.
Esta página está dirigida a administradores y arquitectos que definen soluciones de TI y arquitecturas de sistemas de acuerdo con la estrategia de la empresa, y que crean y gestionan políticas relacionadas con los permisos de los usuarios. Para obtener más información sobre los roles habituales y las tareas de ejemplo a las que hacemos referencia en el contenido de Google Cloud , consulta Roles y tareas de usuario habituales de GKE.
Información general
Un dominio de topología es un grupo de nodos de clúster que se consideran parte del mismo grupo lógico o físico, 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 fallo correlacionado. Por ejemplo:
- Fallo de software, como diferentes servidores vCenter
- Fallos de hardware, como racks, fuentes de alimentación y edificios diferentes
En Google Distributed Cloud (solo software) para VMware, al configurar 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 añade a las etiquetas de los nodos del dominio de topología.
Para usar un dominio de topología, tienes las siguientes opciones:
Versión 1.32 y posteriores: configura las restricciones de dispersión de topología predeterminadas a nivel de clúster. Para obtener más información, consulta
schedulerConfiguration
.Usa la restricción predeterminada a nivel de 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 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, se usa la clave de la etiqueta de topología como valor del campotopologySpreadConstraints.topologyKey
. Esta clave permite que el programador de Kubernetes distribuya los pods en el dominio de topología para asegurar una alta disponibilidad y evitar una concentración excesiva en una zona concreta en caso de fallo. Para obtener más información sobre cómo configurartopologySpreadConstraints
en la especificación de tu pod, consulta Restricciones de distribución de topología de pods en la documentación de Kubernetes.
Ejemplo de etiquetas de dominio de topología
Supongamos que creas los tres dominios de topología siguientes al crear un clúster de usuarios:
...
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"
...
Una vez creado el clúster, actualiza la especificación del pod. Por ejemplo:
...
topologySpreadConstraints:
topologyKey: "topology.examplepetstore.com/zone"
...
A grandes rasgos, 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
. A continuación, el programador distribuye los pods entre estos tres grupos de nodos.
Directrices para configurar dominios de topología
Para que el programador de Kubernetes pueda usar de forma eficaz todos los recursos de los clústeres, te recomendamos que sigas estas directrices:
- 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 dominios de topología (tres es lo recomendable).
- 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 tolerations para separar las cargas de trabajo en un clúster, cada grupo de nodos debe cumplir los requisitos anteriores.
Si no se cumplen estas directrices, el programador intentará usar toda la capacidad del clúster, pero puede que tarde más en programar los pods y no todos los pods se distribuyan como se espera.
Siguientes pasos
- Crear un clúster de administrador para usarlo en dominios de topología
- Crear un clúster de usuarios para usarlo en dominios de topología
- Archivo de configuración de la infraestructura de vSphere