Kubernetes tayyorligi va hayotiyligi sinovlari - eng yaxshi amaliyotlar

Kubernetesda podlar - bu yaratilishi va boshqarilishi mumkin bo'lgan eng kichik qo'llaniladigan hisoblash birliklari. Pod - bu bitta yoki bir nechta konteynerlar guruhi (Docker, raketa va boshqalar), umumiy saqlash / tarmoq va konteynerlarni qanday ishlatish kerakligi.

Tayyorlik va hayotiylik probellari odatda Kubernetes kontekstida sog'liqni saqlash tekshiruvida chaqirilishi mumkin. Konteyner problari - bu davriy ravishda ishlaydigan kichik jarayonlar. Ushbu zondlarning natijasi (Muvaffaqiyat, Bajarilmagan yoki Noma'lum) Kubernetes idishini holatini aniqlaydi. Ularga asoslanib, Kubernetes egiluvchanlik, yuqori foydalanish va yuqori ish vaqtini saqlash uchun har bir idishga qanday munosabatda bo'lishni hal qiladi.

Tibbiy tekshiruvlar har qanday taqsimlangan tizim uchun talabdir!

Kubernetes tibbiy ko'rigi:

Kubernetes tibbiy tekshiruvning ikki turini taklif qiladi: tayyorlik va tiriklik, ikkalasi ham o'zlarining maqsadlariga ega. Ushbu maqola kontekstida quyidagilarni tanlang:

  • /.well- unknown/live - HTTP jonli tekshiruvi uchun
  • /.well- unknown/ready - HTTP tayyor zond uchun

Bir necha so'z bilan aytganda, HTTP sinovi Kubernetes HTTP-ning ma'lum vaqt oralig'ida /.well- unknown/live va /.well-known/ready-da so'rovlarni bajarishini anglatadi. Javobning holat kodi pod bilan nima qilish kerakligini hal qilish uchun ishlatiladi. Agar holat kodi intervalda bo'lsa (200, 300), unda hamma narsa yaxshi. Aks holda:

  • agar jonli tekshiruv uchun holat kodi 4xx yoki 5xx bo'lsa, pod qayta boshlanadi
  • agar tayyor probning holat kodi 4xx yoki 5xx bo'lsa, u holda nosog'lom deb belgilangan va HTTP trafigi endi ishonchlilik va ish vaqtini oshirish uchun unga yo'naltirilmaydi.
Agar konteynerlar har qanday qo'llab-quvvatlash xizmatlaridan mustaqil bo'lsa, konteynerlar bir xil ishlov beruvchida yashovchanlik va tayyorlik tekshiruvidan o'tkazilishi mumkin va quyidagilar qo'llanilmaydi.

Metro Systems Romania - Saytning Ishonchliligi Guruhi o'rtoqlari bilan birgalikda biz Sog'liqni Saqlash bo'yicha eng yaxshi amaliyotlarning ro'yxatini aniqladik va dastur ishlab chiquvchilarga ularga rioya qilishni maslahat berdik. Bunday eng yaxshi amaliyotlar:

  1. Jonli va tayyor ishlov beruvchilar mustaqil funktsiyalarga ega bo'lishlari kerak!

Yuqorida ta'kidlab o'tilganidek, Kubernetes kontekstida joylashtirilgan har bir mahsulot uchun HTTP-da "jonli" va "tayyor" bo'lishga chaqiradigan 2 ta ishlov beruvchi amalga oshirilishi kerak. Ushbu zondlar bo'yicha birinchi eng yaxshi amaliyot shundan iboratki, har bir ishlov beruvchida o'z funktsiyasi bajarilishi kerak.

2. Sizning arizangizdan "jonli" / "tayyor" degan mantiqni ajratmang!

Bu ishlarni qayta ishlash dasturlari uchun amal qiladi. Kubernetes uchun ishlov berish ilovasi ishlayaptimi yoki yo'qmi, bilish muhimdir. Agar jonli / tayyor mantiq yangi jarayonda buzilgan bo'lsa, natija aniq emas.

3. "Jonli" ishlov beruvchida biron bir mantiqni amalga oshirmang. Agar asosiy oqim ishlayotgan bo'lsa, 200 holatini va 5xx holatini qaytarishi kerak.

Ushbu tekshiruv Kubernetesga ilova tirikmi yoki o'likmi yoki yo'qligini aniqlashga imkon beradi. Qaror /.well-known/live uchun holat kodini tekshirish orqali qabul qilinadi va agar dastur o'lgan deb e'lon qilingan bo'lsa, Kubernetes podkastni qayta ishga tushiradi. Ishonchlilik nuqtai nazaridan, agar ilovaning asosiy tarmog'i ishlayotgan bo'lsa va aksincha noto'g'ri bo'lsa, jonli tekshiruv uchun javob to'g'ri bo'lishi kerak.

Shu nuqtai nazardan, "mantiq" o'zaro bog'liq xizmatlarni tekshirishni amalga oshirishni anglatadi.

4. Ilovaning tayyorligi to'g'risida to'liq javob berish uchun mantiqni "tayyor" ishlov beruvchiga kiriting.

Tayyor tekshirish Kubernetesga podkast HTTP trafikni olishga tayyor yoki yo'qligini bilish imkoniyatini beradi. Dasturchi sifatida bu erda dasturga bog'liq bo'lgan barcha qaramliklar mavjudligini tekshirish uchun ba'zi mantiqlarni amalga oshirish muhimdir. "Tayyor" ishlov beruvchini amalga oshirishda sizning arizangiz uchun tayyor nimani anglatishini aniq bilish juda muhimdir. Boshqacha qilib aytganda, "tayyor" ishlov beruvchida https so'rovlarini qabul qilishga va ularni qayta ishlashga tayyorligini aniqlaydigan barcha bosqichlarni bajarish muhimdir. Masalan, agar HTTP so'rovlarini bajarishga tayyor bo'lishi uchun ilova ma'lumotlar bazasiga ulanishni o'rnatishi kerak bo'lsa, tayyorlik tekshiruvi ma'lumotlar bazasiga ulanish o'rnatilishini va foydalanishga tayyorligini tekshirish uchun zarurdir.

Keling, aniq bir vaziyatni ko'rib chiqaylik: dastur alohida ipga ishlov berishda to'xtab qoladi, ammo asosiy ip yaxshi ishlaydi. Ishlab chiquvchi sifatida siz pod-ni qayta ishga tushirish muammoni hal qilishini bilasiz va Kubernetes-ni avtomatik ravishda uni siz uchun bajarishga ishontirishingiz mumkin. Bajarishingiz kerak bo'lgan narsa shundan iboratki, dastur tayyor zondda 5xx bilan javob berishiga ishonch hosil qilish va Kubernetes qo'ng'iroqlaridagi jonli tekshirishni minimal 5xx javobni qaytarishga majbur qilishdir. Bunday holda, Kubernetes podni qayta ishga tushiradi, chunki u o'lik deb hisoblanadi.

5. Tayyor ishlov beruvchida ilovaning tayyor holatini tiklashga urinmang. Bu faqat ilova tayyor emasligini tekshirish uchun qilingan.

Tayyorlik holatini tiklashga harakat qiladigan mantiq yo'qligi haqida maslahat beramiz. Bunday mantiqqa ega bo'lish tizimning ba'zi qismlari uchun xavfli bo'lishi mumkin.

Xulosa:

Jonli va tayyor zondlar Kubernetesda qo'llaniladigan ilovalarning yuragi va ruhidir. Ular gipervisor bilan bog'lanishning standart usullari va ularning holati va muammolari haqida gaplashish. Jonli va tayyor zondlar - bu ishlab chiqaruvchi va dastur ilova ishonchli va egiluvchan ekanligiga ishonch hosil qilish uchun zarur bo'lgan kuchli qurollar.

Ionut Ilie ga alohida rahmat. Ushbu materialning bir qismi uning izlanishlari va donoligi natijasidir.