10.2. Configuration des contrôles de santé à l’aide du CLI


Afin de configurer la préparation, la vivacité et les sondes de démarrage, ajoutez une ou plusieurs sondes à la spécification de la gousse qui contient le conteneur que vous souhaitez effectuer les contrôles de santé

Note

Lorsque vous souhaitez ajouter ou modifier des contrôles de santé dans un pod existant, vous devez modifier l’objet Pod DeploymentConfig ou utiliser la perspective Développeur dans la console Web. Il n’est pas possible d’utiliser le CLI pour ajouter ou modifier des contrôles de santé pour un pod existant.

Procédure

Ajouter des sondes pour un conteneur:

  1. Créez un objet Pod pour ajouter une ou plusieurs sondes:

    apiVersion: v1
    kind: Pod
    metadata:
      labels:
        test: health-check
      name: my-application
    spec:
      containers:
      - name: my-container 
    1
    
        args:
        image: registry.k8s.io/goproxy:0.1 
    2
    
        livenessProbe: 
    3
    
          tcpSocket:  
    4
    
            port: 8080 
    5
    
          initialDelaySeconds: 15 
    6
    
          periodSeconds: 20 
    7
    
          timeoutSeconds: 10 
    8
    
        readinessProbe: 
    9
    
          httpGet: 
    10
    
            host: my-host 
    11
    
            scheme: HTTPS 
    12
    
            path: /healthz
            port: 8080 
    13
    
        startupProbe: 
    14
    
          exec: 
    15
    
            command: 
    16
    
            - cat
            - /tmp/healthy
          failureThreshold: 30 
    17
    
          periodSeconds: 20 
    18
    
          timeoutSeconds: 10 
    19
    Copy to Clipboard Toggle word wrap
    1
    Indiquez le nom du conteneur.
    2
    Indiquez l’image du conteneur à déployer.
    3
    Facultatif: Créez une sonde Liveness.
    4
    Indiquez un test à effectuer, ici un test TCP Socket.
    5
    Indiquez le port sur lequel le conteneur est à l’écoute.
    6
    Indiquez l’heure, en quelques secondes, après le démarrage du conteneur avant que la sonde puisse être programmée.
    7
    Indiquez le nombre de secondes pour effectuer la sonde. La valeur par défaut est 10. Cette valeur doit être supérieure au timeoutSeconds.
    8
    Indiquez le nombre de secondes d’inactivité après lesquelles la sonde est supposée avoir échoué. La valeur par défaut est 1. Cette valeur doit être inférieure à periodSeconds.
    9
    Facultatif: Créez une sonde de préparation.
    10
    Indiquez le type de test à effectuer, ici un test HTTP.
    11
    Indiquez une adresse IP hôte. Lorsque l’hôte n’est pas défini, le PodIP est utilisé.
    12
    Indiquez HTTP ou HTTPS. Lorsque le schéma n’est pas défini, le schéma HTTP est utilisé.
    13
    Indiquez le port sur lequel le conteneur est à l’écoute.
    14
    Facultatif: Créez une sonde de démarrage.
    15
    Indiquez le type d’essai à effectuer, ici une sonde d’exécution de conteneur.
    16
    Indiquez les commandes à exécuter sur le conteneur.
    17
    Indiquez le nombre de fois pour essayer la sonde après une défaillance.
    18
    Indiquez le nombre de secondes pour effectuer la sonde. La valeur par défaut est 10. Cette valeur doit être supérieure au timeoutSeconds.
    19
    Indiquez le nombre de secondes d’inactivité après lesquelles la sonde est supposée avoir échoué. La valeur par défaut est 1. Cette valeur doit être inférieure à periodSeconds.
    Note

    Lorsque la valeur initialeDelaySeconds est inférieure à la valeur de la périodeSeconds, la première sonde de préparation se produit à un moment donné entre les deux périodes dues à un problème avec les minuteries.

    La valeur TimeoutSeconds doit être inférieure à la valeur periodSeconds.

  2. Créer l’objet Pod:

    $ oc create -f <file-name>.yaml
    Copy to Clipboard Toggle word wrap
  3. Vérifier l’état de la dose de contrôle de santé:

    $ oc describe pod my-application
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    Events:
      Type    Reason     Age   From                                  Message
      ----    ------     ----  ----                                  -------
      Normal  Scheduled  9s    default-scheduler                     Successfully assigned openshift-logging/liveness-exec to ip-10-0-143-40.ec2.internal
      Normal  Pulling    2s    kubelet, ip-10-0-143-40.ec2.internal  pulling image "registry.k8s.io/liveness"
      Normal  Pulled     1s    kubelet, ip-10-0-143-40.ec2.internal  Successfully pulled image "registry.k8s.io/liveness"
      Normal  Created    1s    kubelet, ip-10-0-143-40.ec2.internal  Created container
      Normal  Started    1s    kubelet, ip-10-0-143-40.ec2.internal  Started container
    Copy to Clipboard Toggle word wrap

    Ce qui suit est la sortie d’une sonde défaillante qui a redémarré un conteneur:

    Échantillon de sortie de vérification de la vie avec un conteneur malsain

    $ oc describe pod pod1
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    ....
    
    Events:
      Type     Reason          Age                From                                               Message
      ----     ------          ----               ----                                               -------
      Normal   Scheduled       <unknown>                                                             Successfully assigned aaa/liveness-http to ci-ln-37hz77b-f76d1-wdpjv-worker-b-snzrj
      Normal   AddedInterface  47s                multus                                             Add eth0 [10.129.2.11/23]
      Normal   Pulled          46s                kubelet, ci-ln-37hz77b-f76d1-wdpjv-worker-b-snzrj  Successfully pulled image "registry.k8s.io/liveness" in 773.406244ms
      Normal   Pulled          28s                kubelet, ci-ln-37hz77b-f76d1-wdpjv-worker-b-snzrj  Successfully pulled image "registry.k8s.io/liveness" in 233.328564ms
      Normal   Created         10s (x3 over 46s)  kubelet, ci-ln-37hz77b-f76d1-wdpjv-worker-b-snzrj  Created container liveness
      Normal   Started         10s (x3 over 46s)  kubelet, ci-ln-37hz77b-f76d1-wdpjv-worker-b-snzrj  Started container liveness
      Warning  Unhealthy       10s (x6 over 34s)  kubelet, ci-ln-37hz77b-f76d1-wdpjv-worker-b-snzrj  Liveness probe failed: HTTP probe failed with statuscode: 500
      Normal   Killing         10s (x2 over 28s)  kubelet, ci-ln-37hz77b-f76d1-wdpjv-worker-b-snzrj  Container liveness failed liveness probe, will be restarted
      Normal   Pulling         10s (x3 over 47s)  kubelet, ci-ln-37hz77b-f76d1-wdpjv-worker-b-snzrj  Pulling image "registry.k8s.io/liveness"
      Normal   Pulled          10s                kubelet, ci-ln-37hz77b-f76d1-wdpjv-worker-b-snzrj  Successfully pulled image "registry.k8s.io/liveness" in 244.116568ms
    Copy to Clipboard Toggle word wrap

Retour au début
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. Découvrez nos récentes mises à jour.

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 le Blog 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.

Theme

© 2025 Red Hat