Chapitre 4. Configuration des contraintes d'étalement de la topologie des pods pour la surveillance
Vous pouvez utiliser les contraintes de répartition de la topologie des pods pour contrôler la répartition des pods Prometheus, Thanos Ruler et Alertmanager sur une topologie de réseau lorsque les pods OpenShift Container Platform sont déployés dans plusieurs zones de disponibilité.
Les contraintes de répartition de la topologie des pods permettent de contrôler la planification des pods dans des topologies hiérarchiques dans lesquelles les nœuds sont répartis sur différents niveaux d'infrastructure, tels que les régions et les zones au sein de ces régions. En outre, la possibilité de planifier des pods dans différentes zones permet d'améliorer la latence du réseau dans certains scénarios.
Ressources supplémentaires
4.1. Configuration des contraintes d'étalement de la topologie des pods pour Prometheus
Pour la surveillance de la plateforme OpenShift Container Platform, vous pouvez configurer des contraintes d'étalement de la topologie des pods pour Prometheus afin d'affiner la planification des répliques de pods sur les nœuds dans les différentes zones. Cela permet de s'assurer que les pods Prometheus sont hautement disponibles et s'exécutent plus efficacement, car les charges de travail sont réparties sur des nœuds dans différents centres de données ou zones d'infrastructure hiérarchiques.
Vous configurez les contraintes d'étalement de la topologie des pods pour Prometheus dans la carte de configuration cluster-monitoring-config
.
Conditions préalables
-
Vous avez installé l'OpenShift CLI (
oc
). -
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez créé l'objet
cluster-monitoring-config
ConfigMap
.
Procédure
Modifiez l'objet
cluster-monitoring-config
ConfigMap
dans l'espace de nomsopenshift-monitoring
:$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
Ajoutez des valeurs pour les paramètres suivants sous
data/config.yaml/prometheusK8s
pour configurer les contraintes d'étalement de la topologie des pods :apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | prometheusK8s: topologySpreadConstraints: - maxSkew: 1 1 topologyKey: monitoring 2 whenUnsatisfiable: DoNotSchedule 3 labelSelector: matchLabels: 4 app.kubernetes.io/name: prometheus
- 1
- Indiquez une valeur numérique pour
maxSkew
, qui définit le degré d'inégalité de la répartition des cosses. Ce champ est obligatoire et la valeur doit être supérieure à zéro. La valeur spécifiée a un effet différent selon la valeur spécifiée pourwhenUnsatisfiable
. - 2
- Spécifiez une clé d'étiquettes de nœuds pour
topologyKey
. Ce champ est obligatoire. Les nœuds qui ont une étiquette avec cette clé et des valeurs identiques sont considérés comme étant dans la même topologie. Le planificateur essaiera de placer un nombre équilibré de pods dans chaque domaine. - 3
- Indiquez une valeur pour
whenUnsatisfiable
. Ce champ est obligatoire. Les options disponibles sontDoNotSchedule
etScheduleAnyway
. IndiquezDoNotSchedule
si vous souhaitez que la valeurmaxSkew
définisse la différence maximale autorisée entre le nombre de modules correspondants dans la topologie cible et le minimum global. IndiquezScheduleAnyway
si vous souhaitez que le planificateur planifie toujours le module, mais qu'il accorde une priorité plus élevée aux nœuds susceptibles de réduire l'asymétrie. - 4
- Spécifiez une valeur pour
matchLabels
. Cette valeur est utilisée pour identifier l'ensemble des pods correspondants auxquels appliquer les contraintes.
Enregistrez le fichier pour appliquer automatiquement les modifications.
AvertissementLorsque vous enregistrez les modifications apportées à la carte de configuration
cluster-monitoring-config
, les pods et autres ressources du projetopenshift-monitoring
peuvent être redéployés. Les processus de surveillance en cours dans ce projet peuvent également redémarrer.