Cette page présente les domaines de topologie et fournit des consignes pour les configurer.
Pour configurer un domaine de topologie, vous devez activer le cluster avancé. Notez les limites suivantes concernant l'aperçu des clusters avancés :
- Vous ne pouvez activer le cluster avancé que lors de la création de nouveaux clusters 1.31.
- Une fois le cluster avancé activé, vous ne pourrez pas le mettre à niveau vers la version 1.32. N'activez le cluster avancé que dans un environnement de test.
Cette page s'adresse aux administrateurs et aux architectes qui définissent les solutions informatiques et l'architecture du système conformément à la stratégie de l'entreprise, et qui créent et gèrent des règles liées aux autorisations des utilisateurs. Pour en savoir plus sur les rôles courants et les exemples de tâches que nous citons dans le contenu Google Cloud , consultez Rôles utilisateur et tâches courantes de GKE.
Présentation
Un domaine de topologie est un groupe de nœuds de cluster considérés comme faisant partie du même regroupement logique ou physique, tel qu'un campus ou un centre de données. Un domaine de topologie doit correspondre à du matériel ou à un logiciel sous-jacent qui présente un risque de défaillance corrélée. Exemple :
- Défaillance logicielle, par exemple avec différents serveurs vCenter
- Défaillance matérielle (racks, sources d'alimentation ou bâtiments différents, par exemple)
Dans Google Distributed Cloud (logiciel uniquement) pour VMware, lorsque vous configurez un domaine de topologie lors de la création d'un cluster, vous définissez un libellé de topologie. Une fois le cluster créé, le libellé de topologie est renseigné dans les libellés des nœuds du domaine de topologie.
Pour utiliser un domaine de topologie, vous disposez des options suivantes :
Version 1.32 et ultérieures : configurez les contraintes de répartition de la topologie par défaut au niveau du cluster. Pour en savoir plus, consultez
schedulerConfiguration
.Utilisez la contrainte par défaut au niveau du cluster Kubernetes,
"topology.kubernetes.io/zone"
, comme clé dans le libellé de topologie. Pour en savoir plus, consultez Contraintes par défaut intégrées.Configurez
PodTemplate
dans votre déploiement, StatefulSet ou ReplicaSet, selon le cas, avec la clé du libellé de topologie. Dans la spécification du pod, vous utilisez la clé du libellé de topologie comme valeur du champtopologySpreadConstraints.topologyKey
. Cette clé permet au planificateur Kubernetes de répartir les pods dans le domaine de topologie pour assurer une haute disponibilité et éviter une concentration excessive dans une zone en cas de défaillance. Pour savoir comment configurertopologySpreadConstraints
dans la spécification de votre pod, consultez Contraintes de répartition de la topologie des pods dans la documentation Kubernetes.
Exemple de libellés de domaine de topologie
Supposons que vous créiez les trois domaines de topologie suivants lors de la création d'un cluster d'utilisateur :
...
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"
...
Une fois le cluster créé, vous mettez à jour la spécification du pod, par exemple :
...
topologySpreadConstraints:
topologyKey: "topology.examplepetstore.com/zone"
...
De manière générale, le planificateur Kubernetes utilise topology.examplepetstore.com/zone
pour séparer les nœuds du cluster en différents groupes : zone-1
, zone-2
et zone-3
. Le programmeur répartit ensuite les pods sur ces trois groupes de nœuds.
Consignes pour configurer des domaines de topologie
Pour que le planificateur Kubernetes utilise efficacement toutes les ressources du cluster, nous vous recommandons de suivre les consignes suivantes :
- Les domaines de topologie doivent être équilibrés. Vous devez fournir des quantités presque égales de capacité de processeur et de RAM dans chaque domaine de topologie.
- Indiquez au moins deux domaines de topologie, de préférence trois.
- Ne répartissez pas les données sur plus d'une clé de topologie.
- Les nœuds doivent avoir une taille similaire dans chaque domaine de topologie.
- Si vous utilisez des rejets et des tolérances pour séparer les charges de travail dans un cluster, chaque groupe de nœuds doit répondre aux exigences précédentes.
Si ces consignes ne sont pas respectées, le planificateur tentera toujours d'utiliser la pleine capacité du cluster, mais la planification des pods peut prendre plus de temps et tous les pods n'auront pas le comportement de répartition attendu.
Étapes suivantes
- Créer un cluster d'administrateur à utiliser dans les domaines de topologie
- Créer un cluster d'utilisateur à utiliser dans les domaines de topologie
- Fichier de configuration de l'infrastructure vSphere