2.6. Déplacement des composants de surveillance vers différents nœuds
Vous pouvez déplacer n'importe quel composant de la pile de surveillance vers des nœuds spécifiques.
Conditions préalables
If you are configuring core OpenShift Container Platform monitoring components:
-
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
.
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
If you are configuring components that monitor user-defined projects:
-
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
.
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
-
Vous avez installé l'OpenShift CLI (
oc
).
Procédure
Modifiez l'objet
ConfigMap
:To move a component that monitors core OpenShift Container Platform projects:
Modifiez l'objet
cluster-monitoring-config
ConfigMap
dans le projetopenshift-monitoring
:$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
Spécifiez la contrainte
nodeSelector
pour le composant sousdata/config.yaml
:apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | <component>: nodeSelector: <node_key>: <node_value> <node_key>: <node_value> <...>
Remplacez
<component>
en conséquence et remplacez<node_key>: <node_value>
par la carte de paires clé-valeur qui spécifie un groupe de nœuds de destination. Souvent, une seule paire clé-valeur est utilisée.Le composant ne peut être exécuté que sur les nœuds dont les étiquettes sont constituées de chacune des paires clé-valeur spécifiées. Les nœuds peuvent également avoir des étiquettes supplémentaires.
ImportantDe nombreux composants de surveillance sont déployés en utilisant plusieurs pods sur différents nœuds du cluster afin de maintenir une haute disponibilité. Lorsque vous déplacez des composants de surveillance vers des nœuds étiquetés, assurez-vous que suffisamment de nœuds correspondants sont disponibles pour maintenir la résilience du composant. Si une seule étiquette est spécifiée, assurez-vous que suffisamment de nœuds contiennent cette étiquette pour distribuer tous les pods du composant sur des nœuds distincts. Vous pouvez également spécifier plusieurs étiquettes, chacune se rapportant à des nœuds individuels.
NoteSi les composants de surveillance restent dans l'état
Pending
après avoir configuré la contraintenodeSelector
, vérifiez dans les journaux du pod les erreurs relatives aux taches et aux tolérances.Par exemple, pour déplacer les composants de surveillance des projets principaux d'OpenShift Container Platform vers des nœuds spécifiques étiquetés
nodename: controlplane1
,nodename: worker1
,nodename: worker2
, etnodename: worker2
, utilisez :apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | prometheusOperator: nodeSelector: nodename: controlplane1 prometheusK8s: nodeSelector: nodename: worker1 nodename: worker2 alertmanagerMain: nodeSelector: nodename: worker1 nodename: worker2 kubeStateMetrics: nodeSelector: nodename: worker1 telemeterClient: nodeSelector: nodename: worker1 k8sPrometheusAdapter: nodeSelector: nodename: worker1 nodename: worker2 openshiftStateMetrics: nodeSelector: nodename: worker1 thanosQuerier: nodeSelector: nodename: worker1 nodename: worker2
To move a component that monitors user-defined projects:
Modifiez l'objet
user-workload-monitoring-config
ConfigMap
dans le projetopenshift-user-workload-monitoring
:$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
Spécifiez la contrainte
nodeSelector
pour le composant sousdata/config.yaml
:apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | <component>: nodeSelector: <node_key>: <node_value> <node_key>: <node_value> <...>
Remplacez
<component>
en conséquence et remplacez<node_key>: <node_value>
par la carte des paires clé-valeur qui spécifie les nœuds de destination. Souvent, une seule paire clé-valeur est utilisée.Le composant ne peut être exécuté que sur les nœuds dont les étiquettes sont constituées de chacune des paires clé-valeur spécifiées. Les nœuds peuvent également avoir des étiquettes supplémentaires.
ImportantDe nombreux composants de surveillance sont déployés en utilisant plusieurs pods sur différents nœuds du cluster afin de maintenir une haute disponibilité. Lorsque vous déplacez des composants de surveillance vers des nœuds étiquetés, assurez-vous que suffisamment de nœuds correspondants sont disponibles pour maintenir la résilience du composant. Si une seule étiquette est spécifiée, assurez-vous que suffisamment de nœuds contiennent cette étiquette pour distribuer tous les pods du composant sur des nœuds distincts. Vous pouvez également spécifier plusieurs étiquettes, chacune se rapportant à des nœuds individuels.
NoteSi les composants de surveillance restent dans l'état
Pending
après avoir configuré la contraintenodeSelector
, vérifiez dans les journaux du pod les erreurs relatives aux taches et aux tolérances.Par exemple, pour déplacer les composants de surveillance des projets définis par l'utilisateur vers des nœuds de travail spécifiques étiquetés
nodename: worker1
,nodename: worker2
, etnodename: worker2
, utilisez :apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheusOperator: nodeSelector: nodename: worker1 prometheus: nodeSelector: nodename: worker1 nodename: worker2 thanosRuler: nodeSelector: nodename: worker1 nodename: worker2
Enregistrez le fichier pour appliquer les modifications. Les composants concernés par la nouvelle configuration sont automatiquement déplacés vers les nouveaux nœuds.
NoteLes configurations appliquées à l'objet
user-workload-monitoring-config
ConfigMap
ne sont pas activées à moins qu'un administrateur de cluster n'ait activé la surveillance pour les projets définis par l'utilisateur.AvertissementLorsque des modifications sont enregistrées dans une carte de configuration de surveillance, les pods et autres ressources du projet concerné peuvent être redéployés. Les processus de surveillance en cours dans ce projet peuvent également être redémarrés.
Ressources supplémentaires
- Voir Préparation de la configuration de la pile de surveillance pour les étapes de création des cartes de configuration de la surveillance
- Permettre le suivi de projets définis par l'utilisateur
- Comprendre comment mettre à jour les étiquettes sur les nœuds
- Placer des pods sur des nœuds spécifiques en utilisant des sélecteurs de nœuds
-
Voir la documentation de Kubernetes pour plus de détails sur la contrainte
nodeSelector