Sobes.tech
Middle

À quoi servent les tests dans Kubernetes?

sobes.tech IA

Réponse de l'IA

Les probes dans Kubernetes sont utilisés pour déterminer l’état des conteneurs et gérer le cycle de vie des pods. Ils permettent au cluster de réagir automatiquement aux changements d’état des applications, assurant leur disponibilité et stabilité.

Il existe trois principaux types de probes :

  • Probe de vivacité (Liveness probe) : Détermine si l’application à l’intérieur du conteneur fonctionne. Si la probe de vivacité échoue, Kubernetes redémarre le conteneur.
  • Probe de disponibilité (Readiness probe) : Détermine si le conteneur est prêt à recevoir du trafic. Si la probe de disponibilité échoue, Kubernetes exclut temporairement le pod de la liste des points de terminaison disponibles pour le service qui le dirige.
  • Probe de démarrage (Startup probe) : Détermine si l’application dans le conteneur a terminé de démarrer. Peut être utilisée pour des applications nécessitant beaucoup de temps pour s’initialiser. Si la probe de démarrage réussit, les vérifications suivantes (vivacité/disponibilité) commencent selon le calendrier. Si elle échoue pendant le délai imparti, Kubernetes tue et redémarre le conteneur.

Les probes peuvent être implémentées de différentes manières :

  • ExecAction : Exécute une commande à l’intérieur du conteneur. La réussite est déterminée par le code de retour (0 - succès, autre - erreur).
    # Exemple d’ExecAction pour la probe de vivacité
    livenessProbe:
      exec:
        command:
        - cat
        - /tmp/healthy
      initialDelaySeconds: 5
      periodSeconds: 5
    
  • HTTPGetAction : Envoie une requête HTTP GET au port et au chemin spécifiés du conteneur. La réussite est déterminée par le code de statut HTTP (généralement 2xx ou 3xx).
    # Exemple d’HTTPGetAction pour la probe de disponibilité
    readinessProbe:
      httpGet:
        path: /ready
        port: 8080
      initialDelaySeconds: 5
      periodSeconds: 5
      failureThreshold: 3
    
  • TCPSocketAction : Tente d’établir une connexion TCP sur le port spécifié du conteneur. La réussite est déterminée par la connexion réussie.
    # Exemple de TCPSocketAction pour la probe de vivacité
    livenessProbe:
      tcpSocket:
        port: 8080
      initialDelaySeconds: 15
      periodSeconds: 20
    

L’utilisation correcte des probes est essentielle pour la fiabilité et la tolérance aux pannes des applications dans Kubernetes.