Sobes.tech
Middle

Kam naudojamos bandymai Kubernetes?

sobes.tech AI

Atsakymas iš AI

Kubernetes naudojamos bandymai nustatyti konteinerių būseną ir valdyti podų gyvavimo ciklą. Jie leidžia klasteriui automatiškai reaguoti į programų būsenos pokyčius, užtikrindami jų prieinamumą ir stabilumą.

Yra trys pagrindiniai bandymų tipai:

  • Liveness probe (Gyvybingumo patikra): Nustato, ar programa veikia konteineryje. Jei gyvybingumo patikra baigiasi klaida, Kubernetes perkrauna konteinerį.
  • Readiness probe (Pasirengimo patikra): Nustato, ar konteineris yra pasirengęs priimti srautą. Jei pasirengimo patikra baigiasi klaida, Kubernetes laikinai pašalina podą iš prieinamų galinių taškų sąrašo, skirtą paslaugai, kuri nukreipia srautą į jį.
  • Startup probe (Paleidimo patikra): Nustato, ar programos paleidimas baigėsi. Gali būti naudojama ilgai inicializacijai reikalingoms programoms. Jei paleidimo patikra sėkminga, tolesni patikrinimai (gyvybingumas/pasirengimas) pradedami pagal grafiką. Jei paleidimo patikra nepavyksta nustatytu laiku, Kubernetes sunaikina ir perkrauna konteinerį.

Bandymai gali būti įgyvendinti įvairiais būdais:

  • ExecAction: Vykdo komandą konteineryje. Sėkmė nustatoma pagal grąžinimo kodą (0 - sėkmė, kitoks - klaida).
    # ExecAction pavyzdys gyvybingumo patikrai
    livenessProbe:
      exec:
        command:
        - cat
        - /tmp/healthy
      initialDelaySeconds: 5
      periodSeconds: 5
    
  • HTTPGetAction: Siunčia HTTP GET užklausą nurodytam prievadui ir keliui konteineryje. Sėkmė nustatoma pagal HTTP būsenos kodą (paprastai 2xx arba 3xx).
    # HTTPGetAction pavyzdys pasirengimo patikrai
    readinessProbe:
      httpGet:
        path: /ready
        port: 8080
      initialDelaySeconds: 5
      periodSeconds: 5
      failureThreshold: 3
    
  • TCPSocketAction: Bando užmegzti ryšį TCP lizdu per nurodytą prievadą konteineryje. Sėkmė nustatoma pagal sėkmingai užmegztą ryšį.
    # TCPSocketAction pavyzdys gyvybingumo patikrai
    livenessProbe:
      tcpSocket:
        port: 8080
      initialDelaySeconds: 15
      periodSeconds: 20
    

Tinkamas bandymų naudojimas yra kritiškai svarbus programų patikimumui ir atsparumui Kubernetes aplinkoje.