4.3. Mise en place des contraintes d'étalement de la topologie des pods pour Thanos Ruler
Pour la surveillance définie par l'utilisateur, vous pouvez définir des contraintes d'étalement de la topologie des pods pour Thanos Ruler afin d'affiner la manière dont les répliques de pods sont planifiées sur les nœuds des différentes zones. Cela permet de s'assurer que les pods Thanos Ruler sont hautement disponibles et s'exécutent plus efficacement, car les charges de travail sont réparties sur des nœuds situés dans différents centres de données ou zones d'infrastructure hiérarchique.
Vous configurez les contraintes d'étalement de la topologie des pods pour Thanos Ruler dans la carte de configuration user-workload-monitoring-config
.
Conditions préalables
-
Vous avez installé l'OpenShift CLI (
oc
). - Un administrateur de cluster a activé la surveillance des projets définis par l'utilisateur.
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
, ou en tant qu'utilisateur ayant le rôleuser-workload-monitoring-config-edit
dans le projetopenshift-user-workload-monitoring
. -
Vous avez créé l'objet
user-workload-monitoring-config
ConfigMap
.
Procédure
Modifiez la carte de configuration
user-workload-monitoring-config
dans l'espace de nomsopenshift-user-workload-monitoring
:$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
Ajoutez des valeurs pour les paramètres suivants sous
data/config.yaml/thanosRuler
pour configurer les contraintes d'étalement de la topologie des pods :apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | thanosRuler: topologySpreadConstraints: - maxSkew: 1 1 topologyKey: monitoring 2 whenUnsatisfiable: ScheduleAnyway 3 labelSelector: matchLabels: 4 app.kubernetes.io/name: thanos-ruler
- 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
user-workload-monitoring-config
, les pods et autres ressources du projetopenshift-user-workload-monitoring
peuvent être redéployés. Les processus de surveillance en cours dans ce projet peuvent également redémarrer.