Sobes.tech
Middle

Milleks kasutatakse proove Kubernetesis?

sobes.tech AI

Vastus AI-lt

Kubernetes kasutab katsetusi konteinerite oleku määramiseks ja podide elutsükli haldamiseks. Need võimaldavad klasteril automaatselt reageerida rakenduste oleku muutustele, tagades nende kättesaadavuse ja stabiilsuse.

On kolm peamist katsetustüüpi:

  • Liveness probe (Elususe katse): Määrab, kas rakendus töötab konteineris. Kui elususe katse lõpeb veaga, taaskäivitab Kubernetes konteineri.
  • Readiness probe (Valmiduse katse): Määrab, kas konteiner on valmis liiklust vastu võtma. Kui valmiduse katse lõpeb veaga, eemaldab Kubernetes ajutiselt pordi nimekirjast, mis suunab liiklust sellele.
  • Startup probe (Alguskatse): Määrab, kas rakenduse käivitamine on lõppenud. Seda saab kasutada aeglaselt algavatele rakendustele. Kui startup probe on edukas, algavad järgmised kontrollid (elususe/valmiduse) ajakava järgi. Kui see ebaõnnestub määratud aja jooksul, tapab Kubernetes konteineri ja taaskäivitab selle.

Katsetusi saab rakendada erinevatel viisidel:

  • ExecAction: Käivitab käsu konteineris. Edukust määrab tagastuskood (0 - edu, muu - viga).
    # ExecAction näide elususe katse jaoks
    livenessProbe:
      exec:
        command:
        - cat
        - /tmp/healthy
      initialDelaySeconds: 5
      periodSeconds: 5
    
  • HTTPGetAction: Saadab HTTP GET päringu määratud pordile ja teele konteineris. Edukust määrab HTTP olekukood (tavaliselt 2xx või 3xx).
    # HTTPGetAction näide valmiduse katse jaoks
    readinessProbe:
      httpGet:
        path: /ready
        port: 8080
      initialDelaySeconds: 5
      periodSeconds: 5
      failureThreshold: 3
    
  • TCPSocketAction: Püüab luua ühenduse TCP socketiga määratud pordil konteineris. Edukust määrab edukas ühenduse loomine.
    # TCPSocketAction näide elususe katse jaoks
    livenessProbe:
      tcpSocket:
        port: 8080
      initialDelaySeconds: 15
      periodSeconds: 20
    

Õige katsetuste kasutamine on kriitiline rakenduste usaldusväärsuse ja vastupidavuse tagamiseks Kubernetes keskkonnas.