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.