Kubernetesning eng yaxshi amaliyotlari. Kubernetes jonliligini tayyorlik va jonlilik testlari bilan tekshirish

Kubernetesning eng yaxshi amaliyotlari. Kichik konteynerlarni yaratish
Kubernetesning eng yaxshi amaliyotlari. Nomlar maydoni bilan Kubernetesni tashkil qilish

Kubernetesning eng yaxshi amaliyotlari. Kubernetes jonliligini tayyorlik va jonlilik testlari bilan tekshirish

Taqsimlangan tizimlarni boshqarish qiyin bo'lishi mumkin, chunki ular juda ko'p harakatlanuvchi, o'zgaruvchan elementlarga ega bo'lib, ularning barchasi tizim ishlashi uchun to'g'ri ishlashi kerak. Agar elementlardan biri ishlamay qolsa, tizim uni aniqlashi, uni chetlab o'tishi va tuzatishi kerak va bularning barchasi avtomatik ravishda amalga oshirilishi kerak. Ushbu Kubernetes eng yaxshi amaliyotlari seriyasida biz Kubernetes klasterining sog'lig'ini tekshirish uchun Tayyorlik va jonlilik testlarini qanday o'rnatishni o'rganamiz.

Health Check - bu tizimga ilova namunangiz ishlayotgan yoki ishlamayotganligini bildirishning oddiy usuli. Agar ilova namunangiz ishlamay qolsa, boshqa xizmatlar unga kira olmasligi yoki unga so‘rov yubormasligi kerak. Buning o'rniga, so'rov allaqachon ishlayotgan yoki keyinroq ishga tushiriladigan ilovaning boshqa nusxasiga yuborilishi kerak. Bundan tashqari, tizim ilovangizning yo'qolgan funksiyalarini tiklashi kerak.

Odatiy bo'lib, Kubernetes podkastlar ichidagi barcha konteynerlar ishlayotgan paytda podkastga trafik jo'natadi va ular ishdan chiqqanida konteynerlarni qayta ishga tushiradi. Ushbu standart tizim xatti-harakati boshlash uchun etarlicha yaxshi bo'lishi mumkin, ammo siz maxsus aql-idrok tekshiruvlaridan foydalangan holda mahsulotingizni joylashtirishning ishonchliligini oshirishingiz mumkin.

Kubernetesning eng yaxshi amaliyotlari. Kubernetes jonliligini tayyorlik va jonlilik testlari bilan tekshirish

Yaxshiyamki, Kubernetes buni amalga oshirishni juda oson qiladi, shuning uchun bu tekshiruvlarni e'tiborsiz qoldirish uchun uzr yo'q. Kubernetes sog'liqni saqlash tekshiruvlarining ikki turini taqdim etadi va ularning har biri qanday ishlatilishidagi farqlarni tushunish muhimdir.

Tayyorlik testi Kubernetesga ilovangiz trafikni boshqarishga tayyorligini bildirish uchun moʻljallangan. Xizmatga podkastga trafik yuborishga ruxsat berishdan oldin, Kubernetes tayyorlik tekshiruvi muvaffaqiyatli o‘tganligini tekshirishi kerak. Tayyorlik testi muvaffaqiyatsiz tugasa, Kubernetes sinovdan o'tgunga qadar podkaga trafik yuborishni to'xtatadi.

Jonlilik testi Kubernetesga arizangiz tirik yoki o'likligini aytadi. Birinchi holda, Kubernetes uni yolg'iz qoldiradi, ikkinchisida u o'lik podni o'chiradi va uni yangisi bilan almashtiradi.

Keling, stsenariyni tasavvur qilaylik, unda ilovangiz isishi va ishga tushishi 1 daqiqa davom etadi. Ish jarayoni allaqachon boshlangan bo'lsa-da, ilova to'liq yuklanmaguncha va ishga tushmaguncha xizmatingiz ishlamaydi. Agar siz ushbu joylashtirishni bir nechta nusxaga kengaytirmoqchi bo'lsangiz, sizda muammolar paydo bo'ladi, chunki bu nusxalar to'liq tayyor bo'lmaguncha trafikni qabul qilmasligi kerak. Biroq, sukut bo'yicha, Kubernetes konteyner ichidagi jarayonlar boshlanishi bilanoq trafikni yuborishni boshlaydi.

Tayyorlik testidan foydalanganda, Kubernetes xizmatga yangi nusxaga trafik jo'natishiga ruxsat berishdan oldin dastur to'liq ishga tushishini kutadi.

Kubernetesning eng yaxshi amaliyotlari. Kubernetes jonliligini tayyorlik va jonlilik testlari bilan tekshirish

Keling, dastur uzoq vaqt davomida so'rovlarga xizmat ko'rsatishni to'xtatadigan yana bir stsenariyni tasavvur qilaylik. Jarayon davom etar ekan, sukut bo'yicha Kubernetes hamma narsa yaxshi deb hisoblaydi va ishlamaydigan podkaga so'rovlar yuborishda davom etadi. Ammo Liveness-dan foydalanganda, Kubernetes ilova endi so'rovlarga xizmat qilmayotganini aniqlaydi va sukut bo'yicha o'lik podni qayta ishga tushiradi.

Kubernetesning eng yaxshi amaliyotlari. Kubernetes jonliligini tayyorlik va jonlilik testlari bilan tekshirish

Keling, tayyorlik va hayotiylik qanday sinovdan o'tkazilishini ko'rib chiqaylik. Sinovning uchta usuli mavjud - HTTP, Buyruq va TCP. Tekshirish uchun ulardan har qandayidan foydalanishingiz mumkin. Foydalanuvchini sinab ko'rishning eng keng tarqalgan usuli HTTP tekshiruvidir.

Ilovangiz HTTP serveri bo'lmasa ham, Liveness testi bilan ishlash uchun ilovangiz ichida engil HTTP serverini yaratishingiz mumkin. Shundan so'ng, Kubernetes podkada pinglashni boshlaydi va agar HTTP javobi 200 yoki 300 ms diapazonida bo'lsa, bu podning sog'lom ekanligini ko'rsatadi. Aks holda, modul "nosog'lom" deb belgilanadi.

Kubernetesning eng yaxshi amaliyotlari. Kubernetes jonliligini tayyorlik va jonlilik testlari bilan tekshirish

Buyruq sinovlari uchun Kubernetes konteyneringiz ichidagi buyruqni bajaradi. Agar buyruq nol chiqish kodi bilan qaytsa, konteyner sog'lom deb belgilanadi, aks holda 1 dan 255 gacha bo'lgan chiqish holati raqamini olgandan so'ng, konteyner "kasal" deb belgilanadi. Agar siz HTTP serverini ishga tushira olmasangiz yoki xohlamasangiz, lekin ilovangizning sog'lig'ini tekshiradigan buyruqni ishga tushira olsangiz, ushbu sinov usuli foydalidir.

Kubernetesning eng yaxshi amaliyotlari. Kubernetes jonliligini tayyorlik va jonlilik testlari bilan tekshirish

Yakuniy tekshirish mexanizmi TCP testidir. Kubernetes belgilangan portda TCP ulanishini o'rnatishga harakat qiladi. Agar buni qilish mumkin bo'lsa, idish sog'lom hisoblanadi, agar bo'lmasa, u yaroqsiz hisoblanadi. Agar siz HTTP so'rovi yoki buyruq bajarilishi bilan sinovdan o'tkazish unchalik yaxshi ishlamayotgan stsenariydan foydalansangiz, bu usul foydali bo'lishi mumkin. Masalan, TCP yordamida tekshirish uchun asosiy xizmatlar gRPC yoki FTP bo'ladi.

Kubernetesning eng yaxshi amaliyotlari. Kubernetes jonliligini tayyorlik va jonlilik testlari bilan tekshirish

Sinovlar turli parametrlar bilan bir necha usulda sozlanishi mumkin. Ular qanchalik tez-tez bajarilishi kerakligini, muvaffaqiyat va muvaffaqiyatsizlik chegaralari qanday ekanligini va javoblarni qancha kutish kerakligini belgilashingiz mumkin. Qo'shimcha ma'lumot olish uchun Tayyorlik va jonlilik testlari hujjatlariga qarang. Biroq, Jonlilik testini o'rnatishda juda muhim bir nuqta bor - sinov kechikishining dastlabki sozlanishi initialDelaySeconds. Yuqorida aytib o'tganimdek, ushbu testning muvaffaqiyatsizligi modulning qayta ishga tushirilishiga olib keladi. Shunday qilib, dastur ishga tayyor bo'lgunga qadar sinov boshlanmasligiga ishonch hosil qilishingiz kerak, aks holda u qayta ishga tushirish orqali velosipedda harakatlana boshlaydi. Men P99 ishga tushirish vaqtini yoki buferdan o'rtacha dasturni ishga tushirish vaqtini ishlatishni tavsiya qilaman. Ilovangizni ishga tushirish vaqti tez yoki sekinroq bo'lishi sababli ushbu qiymatni sozlashni unutmang.

Aksariyat ekspertlar Health Checks har qanday taqsimlangan tizim uchun majburiy tekshiruv ekanligini tasdiqlaydi va Kubernetes ham bundan mustasno emas. Xizmat salomatligi tekshiruvlaridan foydalanish Kubernetesning ishonchli, muammosiz ishlashini ta'minlaydi va foydalanuvchilar uchun osondir.

Davomi tez orada...

Ba'zi reklamalar 🙂

Biz bilan qolganingiz uchun tashakkur. Bizning maqolalarimiz sizga yoqdimi? Ko'proq qiziqarli tarkibni ko'rishni xohlaysizmi? Buyurtma berish yoki do'stlaringizga tavsiya qilish orqali bizni qo'llab-quvvatlang, 4.99 dollardan boshlab ishlab chiquvchilar uchun bulutli VPS, Siz uchun biz tomonidan ixtiro qilingan boshlang'ich darajadagi serverlarning noyob analogi: VPS (KVM) E5-2697 v3 (6 yadroli) 10GB DDR4 480GB SSD 1Gbps 19 dollardan yoki serverni qanday almashish haqida butun haqiqat? (RAID1 va RAID10, 24 tagacha yadro va 40 Gb gacha DDR4 bilan mavjud).

Amsterdamdagi Equinix Tier IV ma'lumotlar markazida Dell R730xd 2 baravar arzonmi? Faqat shu yerda 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 televizor 199 dollardan Gollandiyada! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - 99 dollardan! Haqida o'qing Infratuzilma korporatsiyasini qanday qurish kerak. bir tiyinga 730 evroga teng Dell R5xd E2650-4 v9000 serverlaridan foydalanish bilan sinf?

Manba: www.habr.com

a Izoh qo'shish