Sobes.tech
Middle

Zašto se koriste probe u Kubernetesu?

sobes.tech АИ

Одговор од АИ

Probe u Kubernetesu koriste se za određivanje stanja kontejnera i upravljanje životnim ciklusom podova. Omogućavaju klasteru da automatski reaguje na promene u stanju aplikacija, obezbeđujući njihovu dostupnost i stabilnost.

Postoje tri glavne vrste probe:

  • Probe životnosti (Liveness probe): Određuje da li aplikacija unutar kontejnera radi. Ako probe životnosti ne uspe, Kubernetes restartuje kontejner.
  • Probe spremnosti (Readiness probe): Određuje da li je kontejner spreman da primi saobraćaj. Ako probe spremnosti ne uspe, Kubernetes privremeno uklanja pod sa liste dostupnih krajnjih tačaka za servis koji ga usmerava.
  • Probe pokretanja (Startup probe): Određuje da li je aplikacija u kontejneru završila pokretanje. Može se koristiti za aplikacije koje zahtevaju dugo vreme za inicijalizaciju. Ako je probe pokretanja uspešna, sledeće provere (životnost/spremnost) počinju prema rasporedu. Ako ne uspeju u zadanom vremenu, Kubernetes ubija i ponovo pokreće kontejner.

Probes se mogu implementirati na različite načine:

  • ExecAction: Izvršava komandu unutar kontejnera. Uspeh se određuje prema kodu povratka (0 - uspeh, ostalo - greška).
    # Primer ExecAction za probe životnosti
    livenessProbe:
      exec:
        command:
        - cat
        - /tmp/healthy
      initialDelaySeconds: 5
      periodSeconds: 5
    
  • HTTPGetAction: Šalje HTTP GET zahtev na određeni port i putanju kontejnera. Uspeh se određuje prema HTTP status kodu (obično 2xx ili 3xx).
    # Primer HTTPGetAction za probe spremnosti
    readinessProbe:
      httpGet:
        path: /ready
        port: 8080
      initialDelaySeconds: 5
      periodSeconds: 5
      failureThreshold: 3
    
  • TCPSocketAction: Pokušava da uspostavi TCP konekciju na određeni port kontejnera. Uspeh se određuje prema uspešnom povezivanju.
    # Primer TCPSocketAction za probe životnosti
    livenessProbe:
      tcpSocket:
        port: 8080
      initialDelaySeconds: 15
      periodSeconds: 20
    

Ispravno korišćenje probe je ključno za pouzdanost i otpornost aplikacija u Kubernetesu.