Middle
A cosa servono i test in Kubernetes?
sobes.tech AI
Risposta dell'AI
Le sonde in Kubernetes sono utilizzate per determinare lo stato dei contenitori e gestire il ciclo di vita dei pod. Consentono al cluster di reagire automaticamente ai cambiamenti nello stato delle applicazioni, garantendo disponibilità e stabilità.
Esistono tre principali tipi di sonde:
- Sonda di vivacità (Liveness probe): Determina se l’applicazione all’interno del contenitore funziona. Se la sonda di vivacità fallisce, Kubernetes riavvia il contenitore.
- Sonda di prontezza (Readiness probe): Determina se il contenitore è pronto a ricevere traffico. Se la sonda di prontezza fallisce, Kubernetes esclude temporaneamente il pod dalla lista dei punti finali disponibili per il servizio.
- Sonda di avvio (Startup probe): Determina se l’applicazione nel contenitore ha terminato l’avvio. Può essere usata per applicazioni che richiedono molto tempo per inizializzarsi. Se la sonda di avvio ha successo, le verifiche successive (vivacità/prontezza) iniziano secondo il programma. Se fallisce entro il tempo stabilito, Kubernetes termina e riavvia il contenitore.
Le sonde possono essere implementate in vari modi:
- ExecAction: Esegue un comando all’interno del contenitore. Il successo si determina dal codice di ritorno (0 - successo, altro - errore).
# Esempio di ExecAction per la sonda di vivacità livenessProbe: exec: command: - cat - /tmp/healthy initialDelaySeconds: 5 periodSeconds: 5 - HTTPGetAction: Invia una richiesta HTTP GET alla porta e al percorso specificati del contenitore. Il successo si determina dal codice di stato HTTP (generalmente 2xx o 3xx).
# Esempio di HTTPGetAction per la sonda di prontezza readinessProbe: httpGet: path: /ready port: 8080 initialDelaySeconds: 5 periodSeconds: 5 failureThreshold: 3 - TCPSocketAction: Tenta di stabilire una connessione TCP sulla porta specificata del contenitore. Il successo si determina dalla connessione riuscita.
# Esempio di TCPSocketAction per la sonda di vivacità livenessProbe: tcpSocket: port: 8080 initialDelaySeconds: 15 periodSeconds: 20
L’uso corretto delle sonde è fondamentale per l’affidabilità e la tolleranza ai guasti delle applicazioni in Kubernetes.