15.4. Configuration des scripts de contrôle et de notification


Keepalived surveille la santé de l'application en exécutant périodiquement un script de vérification optionnel fourni par l'utilisateur. Par exemple, le script peut tester un serveur web en émettant une requête et en vérifiant la réponse.

Lorsqu'un script de contrôle n'est pas fourni, un simple script par défaut est exécuté pour tester la connexion TCP. Ce test par défaut est supprimé lorsque le port du moniteur est 0.

Chaque module de basculement IP gère un démon Keepalived qui gère une ou plusieurs IP virtuelles (VIP) sur le nœud où le module est exécuté. Le démon Keepalived conserve l'état de chaque VIP pour ce nœud. Un VIP particulier sur un nœud particulier peut être dans l'état master, backup ou fault.

Lorsque le script de vérification de ce VIP sur le nœud qui est dans l'état master échoue, le VIP sur ce nœud entre dans l'état fault, ce qui déclenche une renégociation. Au cours de la renégociation, tous les VIP d'un nœud qui ne sont pas dans l'état fault participent au choix du nœud qui prendra en charge le VIP. En fin de compte, le VIP entre dans l'état master sur un nœud, et le VIP reste dans l'état backup sur les autres nœuds.

Lorsqu'un nœud avec un VIP dans l'état backup échoue, le VIP sur ce nœud entre dans l'état fault. Lorsque le script de contrôle réussit à nouveau pour un VIP sur un nœud dans l'état fault, le VIP sur ce nœud quitte l'état fault et négocie pour entrer dans l'état master. Le VIP sur ce nœud peut alors entrer dans l'état master ou backup.

En tant qu'administrateur du cluster, vous pouvez fournir un script de notification optionnel, qui est appelé chaque fois que l'état change. Keepalived transmet les trois paramètres suivants au script :

  • $1 - group ou instance
  • $2 - Nom du site group ou instance
  • $3 - Le nouvel État : master, backup, ou fault

Les scripts de vérification et de notification s'exécutent dans le module de basculement IP et utilisent le système de fichiers du module, et non le système de fichiers de l'hôte. Toutefois, le module de basculement IP rend le système de fichiers hôte disponible sous le chemin de montage /hosts. Lors de la configuration d'un script de contrôle ou de notification, vous devez fournir le chemin d'accès complet au script. L'approche recommandée pour fournir les scripts est d'utiliser une carte de configuration.

Les noms des chemins complets des scripts de vérification et de notification sont ajoutés au fichier de configuration de Keepalived, _/etc/keepalived/keepalived.conf, qui est chargé à chaque démarrage de Keepalived. Les scripts peuvent être ajoutés au pod avec une carte de configuration comme suit.

Conditions préalables

  • You installed the OpenShift CLI (oc).
  • Vous êtes connecté au cluster avec un utilisateur disposant des privilèges cluster-admin.

Procédure

  1. Créez le script souhaité et créez une carte de configuration pour le contenir. Le script n'a pas d'arguments d'entrée et doit renvoyer 0 pour OK et 1 pour fail.

    Le script de vérification, mycheckscript.sh:

    #!/bin/bash
        # Whatever tests are needed
        # E.g., send request and verify response
    exit 0
  2. Créer la carte de configuration :

    $ oc create configmap mycustomcheck --from-file=mycheckscript.sh
  3. Ajouter le script au pod. L'adresse defaultMode pour les fichiers de configuration montés doit pouvoir être exécutée à l'aide des commandes oc ou en modifiant la configuration du déploiement. Une valeur de 0755, 493 décimal, est typique :

    $ oc set env deploy/ipfailover-keepalived \
        OPENSHIFT_HA_CHECK_SCRIPT=/etc/keepalive/mycheckscript.sh
    $ oc set volume deploy/ipfailover-keepalived --add --overwrite \
        --name=config-volume \
        --mount-path=/etc/keepalive \
        --source='{"configMap": { "name": "mycustomcheck", "defaultMode": 493}}'
    Note

    La commande oc set env est sensible aux espaces blancs. Il ne doit pas y avoir d'espace de part et d'autre du signe =.

    Astuce

    Vous pouvez également modifier la configuration du déploiement de ipfailover-keepalived:

    $ oc edit deploy ipfailover-keepalived
        spec:
          containers:
          - env:
            - name: OPENSHIFT_HA_CHECK_SCRIPT  1
              value: /etc/keepalive/mycheckscript.sh
    ...
            volumeMounts: 2
            - mountPath: /etc/keepalive
              name: config-volume
          dnsPolicy: ClusterFirst
    ...
          volumes: 3
          - configMap:
              defaultMode: 0755 4
              name: customrouter
            name: config-volume
    ...
    1
    Dans le champ spec.container.env, ajoutez la variable d'environnement OPENSHIFT_HA_CHECK_SCRIPT pour qu'elle pointe vers le fichier de script monté.
    2
    Ajoutez le champ spec.container.volumeMounts pour créer le point de montage.
    3
    Ajouter un nouveau champ spec.volumes pour mentionner la carte de configuration.
    4
    Cela permet de définir l'autorisation d'exécution des fichiers. Lors de la relecture, elle est affichée en décimal, 493.

    Enregistrez les modifications et quittez l'éditeur. Cette opération redémarre ipfailover-keepalived.

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.