Shanraq.org Shanraq.org
Healthcheck, лимит және дұрыс тоқтау
IT

Cloud & DevOps: жергілікті қолданбадан сенімді сервиске дейін 12-сабақ (барлығы 24)

Healthcheck, лимит және дұрыс тоқтау

Liveness пен readiness айырмасын көріп, ресурс шекарасын қойып, тоқтау кезіндегі мінезді тексереміз.

Мәтін ИИ көмегімен аударылды.

Бұл сабақ нөлден басталады. Бейтаныс сөз сіздің кемшілігіңіз емес: алдымен бейне құрамыз, кейін дәл мағына беріп, содан соң қолданамыз.

Қай жерде тұрмыз

Қысқа қайталау. Өткен сабақтың тірегі services + network + volumes = бір қайталанатын іске қосу. Қарамай төрт буынды атаңыз, содан кейін ғана жазбамен салыстырыңыз.

Сабақ нәтижесі

Liveness пен readiness айырмасын көріп, ресурс шекарасын қойып, тоқтау кезіндегі мінезді тексереміз. Әр пәрмен нені тексеретінін және қандай ақауды табатынын түсіндіре алмайынша келесі сабаққа өтпеңіз.

Алдымен таныс бейне

Ауруханада пульс адамның тірі екенін көрсетеді, бірақ хирург операцияға дайын ба — айтпайды. Операция бөлмесінің кестесі қатар жұмысты шектейді. Liveness, readiness және resource limits те үш бөлек сұраққа жауап береді.

Аналогия ойды бастауға көмектеседі, бірақ технология құрылысын алмастырмайды. Төменде әр сөзді нақтылаймыз.

Сабақтың тірек сигналы

liveness: restart? | readiness: traffic беру? | limits: қанша?

Тізбекті солдан оңға оқыңыз. Ол «қай пәрменді жаттаймын?» емес, «келесі қадам неге алдыңғысынан шығады?» дегенге жауап береді.

Жаңа сөздер қарапайым тілмен

  • Liveness — Үдеріс restart қажет болатындай тұрып қалды ма деген тексеру.
  • Readiness — Қазір мұнда сұрау жіберуге бола ма деген тексеру.
  • Resource limit — Үдеріске арналған CPU не жадының жоғарғы шегі.
  • Graceful shutdown — Жаңа трафикті тоқтатып, басталған жұмысты аяқтайтын тоқтау.

Асықпай талдаймыз

Liveness үдерісті қайта бастау керек пе, readiness жаңа трафик жіберуге бола ма дегенге жауап береді. Бұл шекарадағы қате уақытша бос емес сервисті қайта іске қосу цикліне айналдырады. Лимит көршілерді қорғайды, бірақ тым төмен шек өзі ақау жасайды.

Анықтаманы сөзбе-сөз жаттамаңыз. Себептік байланысты тауып, жоғарыдағы тірекпен қосыңыз.

Алдымен нәтижені болжаңыз

Іске қоспай тұрып қағазға жазыңыз: не өзгеруі, не сол күйде қалуы және қай output болжамды дәлелдеуі тиіс? Қате болжам да айырманы түсіндіре алсаңыз пайдалы.

Шағын қадаммен тәжірибе

Пәрмендерді course/cloud-devops-lab түбірінен орындаңыз. Пәрмендер оқу ортасына арналған. Серверді не деректі өзгертетін пәрменді іске қоспас бұрын оны толық оқып, ағымдағы қалтаны тексеріңіз. Блокты мағыналық топпен орындаңыз. Әр топтан кейін тоқтап, нәтижені болжаммен салыстырыңыз.

docker compose ps
docker inspect --format '{{json .State.Health}}' cloud-devops-lab-app-1 2>/dev/null || true
time docker compose stop -t 10 app
docker compose up -d app
curl -fsS http://127.0.0.1:8080/readyz

Жобаның эталон файлдары.

Бұл тәжірибе нақты не істейді

Тәжірибе екі endpoint-ті бақылайды, SIGTERM жіберіп, аяқталуды тексереді. Пәрмен кодымен шектелмей, жаңа жұмыс тоқтады ма және ескі жұмыс аяқталды ма деп сұраңыз.

Не шығуы тиіс

  • Тоқтау grace period ішінде аяқталады.
  • Пәрмен болжамды кодпен аяқталады.
  • Нәтижені таза ортада қайталауға болады.

Тірек сызбамен тұтасты жинаңыз

Тірек сызба 12

Төрт блок бойынша жүріп, бүкіл сабақты бір байланысқан әңгімемен түсіндіріңіз.

Көмексіз жаңғыртыңыз

  1. Сызбаны жауып, төрт блокты жатқа сызыңыз.
  2. Әр өтуді «себебі» сөзімен түсіндіріңіз.
  3. Бір жаңа терминді мәтінді қайталамай анықтаңыз.
  4. Нәтижені дәлелдейтін бір сигналды атаңыз.

Қатені тауып түзетіңіз

Қате: «Liveness неғұрлым жиі әрі терең болса, соғұрлым сенімді». Дұрысы: ауыр не қате тексеру өзі restart пен апат туғызады.

Тапсырма

Енді сол мағынаны өзіңіз жинаңыз. Тірек сызбаға қарауға болады; мақсат — жады емтиханы емес, қайталанатын нәтиже.

Міндетті. Readiness URL-ды deadline-ға дейін күтетін, әрекет арасында үзіліс жасайтын және timeout соңында нөл емес код қайтаратын POSIX sh циклін жазыңыз. Тек POSIX sh пәрменін не скриптін, нақты кілт пен токенсіз жіберіңіз.

Дайындық өлшемдері

  • Әр іске қосылатын жолды түсінесіз.
  • Қайталау күтілетін нәтиже не қауіпсіз түсіндірілген айырма береді.
  • Output ішінде нақты key, token және password жоқ.
  • Success-ті дәлелдейтін факт көрсете аласыз.

Тексеру өтпесе, күтілген және нақты нәтижені жазып, тіректің бір үзілген буынына оралып қайталаңыз. Қате оқу құқығын алып қоймайды.

Қалауыңызша. Бір ықтимал ақауды және оны байқайтын сигналды жазыңыз.

Ашық перспектива

Келесі сабақ жаңа тірек қосады: Registry, өзгермейтін тег, SBOM және жеткізу тізбегін тексеру.

Курс мазмұны

Мәтінде қате не теру қатесі кездессе, бізге айтыңыз

Тапсырманы тексеру

Алдымен VS Code-та шешіп, іске қосыңыз — редактор қатені сол жерде көрсетеді. Дайын шешімді осында қойыңыз. Тексеретін — модель: ол қатені атап көрсетеді, бірақ дайын жауапты бермейді.

Тексеру үшін кіру керек. Кіру

Пікірлер (0)

Әзірге пікір жоқ. Бірінші болыңыз.