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 .
  • 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ôle user-workload-monitoring-config-edit dans le projet openshift-user-workload-monitoring.
    • Vous avez créé l'objet user-workload-monitoring-config ConfigMap .
  • Vous avez installé l'OpenShift CLI (oc).

Procédure

  1. Modifiez l'objet ConfigMap:

    • To move a component that monitors core OpenShift Container Platform projects:

      1. Modifiez l'objet cluster-monitoring-config ConfigMap dans le projet openshift-monitoring:

        $ oc -n openshift-monitoring edit configmap cluster-monitoring-config
      2. Spécifiez la contrainte nodeSelector pour le composant sous data/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.

        Important

        De 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.

        Note

        Si les composants de surveillance restent dans l'état Pending après avoir configuré la contrainte nodeSelector, 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, et nodename: 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:

      1. Modifiez l'objet user-workload-monitoring-config ConfigMap dans le projet openshift-user-workload-monitoring:

        $ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
      2. Spécifiez la contrainte nodeSelector pour le composant sous data/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.

        Important

        De 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.

        Note

        Si les composants de surveillance restent dans l'état Pending après avoir configuré la contrainte nodeSelector, 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, et nodename: 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
  2. 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.

    Note

    Les 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.

    Avertissement

    Lorsque 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.