Sobes.tech
Junior

Ի՞նչ տեսակի թեստեր կան ծառայությունների և ծրագրերի վիճակը ստուգելու համար։

sobes.tech AI

Պատասխան AI-ից

Կան մի քանի տարածված փորձարկման տեսակներ՝

  • Կյանքի փորձարկում (Liveness): Կանխորոշում է, արդյոք ծրագիրը աշխատում է: Եթե փորձարկումը ձախողվի, Kubernetes-ը վերագործարկում է պոդը: Օգտագործվում է կախված գործընթացների հայտնաբերման համար:

    • HTTP Get փորձարկումներ՝ ուղարկում են HTTP GET հարցումներ նշված ճանապարհով և պորտով:
    • TCP socket փորձարկումներ՝ ստուգում են, արդյոք հնարավոր է կապ հաստատել նշված պորտին:
    • Exec փորձարկումներ՝ կատարում է հրամանի ներսում և ստուգում է վերադարձի կոդը:
  • Պատրաստության փորձարկում (Readiness): Կանխորոշում է, արդյոք պոդը պատրաստ է ընդունել տրաֆիկ: Եթե փորձարկումը ձախողվի, ծառայությունը չի ուղղորդում տրաֆիկը այդ պոդին: Օգտագործվում է ծրագրի պատրաստվածությունը որոշելու համար՝ գործարկումից հետո կամ թարմացման ժամանակ:

    • Օգտագործում է նույն մեխանիզմները, ինչ և Կյանքի փորձարկումները (HTTP Get, TCP socket, Exec):
  • Սկիզբի փորձարկում (Startup): Կանխորոշում է, արդյոք ծրագրի ինիցիալիզացիան ավարտվել է: Եթե փորձարկումը կազմաձևված է, Kubernetes-ը չի կատարի Կյանքի և Պատրաստության փորձարկումները մինչև Startup փորձարկումը հաջողությամբ չանցնի: Օգտակար է դանդաղ սկսվող ծրագրերի համար՝ կանխելու նախաժամկետ վերագործարկումները:

    • Օգտագործում է նույն մեխանիզմները, ինչ և մյուս փորձարկումները:

Օրինակ Kubernetes կոնֆիգուրացիայում:

livenessProbe: # Կյանքի ստուգում
  httpGet: # HTTP-ով
    path: /healthz # Ճանապարհ
    port: 8080 # Պորտ
  initialDelaySeconds: 15 # Հետաձգում առաջին ստուգումից առաջ
  timeoutSeconds: 1 # Պատասխան սպասման ժամանակը
readinessProbe: # Պատրաստության ստուգում
  tcpSocket: # TCP-ով
    port: 8080 # Պորտ
  initialDelaySeconds: 5 # Հետաձգում առաջին ստուգումից առաջ
  periodSeconds: 10 # Միջակայքը ստուգումների միջև