Sobes.tech
Junior

Ποιοι είναι οι τύποι δοκιμών για τον έλεγχο της κατάστασης υπηρεσιών και εφαρμογών;

sobes.tech AI

Απάντηση από AI

Υπάρχουν αρκετοί κοινοί τύποι δοκιμών:

  • Probe Ζωτικότητας (Liveness): Καθορίζει αν η εφαρμογή λειτουργεί. Αν η δοκιμή αποτύχει, το Kubernetes επανεκκινεί το pod. Χρησιμοποιείται για την ανίχνευση παγιδευμένων διαδικασιών.

    • HTTP Get Probes: Αποστέλλει αιτήματα HTTP GET στη συγκεκριμένη διαδρομή και θύρα.
    • TCP Socket Probes: Ελέγχει αν είναι δυνατή η σύνδεση στη συγκεκριμένη θύρα.
    • Exec Probes: Εκτελεί μια εντολή μέσα στο κοντέινερ και ελέγχει τον κωδικό επιστροφής.
  • Probe Ετοιμότητας (Readiness): Καθορίζει αν το pod είναι έτοιμο να δεχθεί κυκλοφορία. Αν η δοκιμή αποτύχει, η υπηρεσία δεν προωθεί κυκλοφορία σε αυτό το pod. Χρησιμοποιείται για τον καθορισμό της ετοιμότητας της εφαρμογής μετά την εκκίνηση ή κατά τη διάρκεια ενημερώσεων.

    • Χρησιμοποιεί τους ίδιους μηχανισμούς με τις δοκιμές ζωτικότητας (HTTP Get, TCP Socket, Exec).
  • Probe Εκκίνησης (Startup): Καθορίζει αν η αρχικοποίηση της εφαρμογής έχει ολοκληρωθεί. Αν η δοκιμή είναι διαμορφωμένη, το Kubernetes δεν θα εκτελεί δοκιμές ζωτικότητας και ετοιμότητας μέχρι να περάσει επιτυχώς η Probe Εκκίνησης. Χρησιμοποιείται για αργά ξεκινούμενες εφαρμογές, για να αποτρέψει πρόωρες επανεκκινήσεις.

    • Χρησιμοποιεί τους ίδιους μηχανισμούς με τις άλλες δοκιμές.

Παράδειγμα διαμόρφωσης στο Kubernetes:

livenessProbe: # Έλεγχος ζωτικότητας
  httpGet: # Μέσω HTTP
    path: /healthz # Διαδρομή
    port: 8080 # Θύρα
  initialDelaySeconds: 15 # Καθυστέρηση πριν από τον πρώτο έλεγχο
  timeoutSeconds: 1 # Χρόνος αναμονής για απάντηση
readinessProbe: # Έλεγχος ετοιμότητας
  tcpSocket: # Μέσω TCP
    port: 8080 # Θύρα
  initialDelaySeconds: 5 # Καθυστέρηση πριν από τον πρώτο έλεγχο
  periodSeconds: 10 # Διάστημα μεταξύ ελέγχων