Sobes.tech
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.