Mbinu bora za Kubernetes. Kuthibitisha Uhai wa Kubernetes kwa Majaribio ya Utayari na Uhai

Mbinu bora za Kubernetes. Kutengeneza vyombo vidogo
Mbinu bora za Kubernetes. Shirika la Kubernetes lenye nafasi ya majina

Mbinu bora za Kubernetes. Kuthibitisha Uhai wa Kubernetes kwa Majaribio ya Utayari na Uhai

Mifumo iliyosambazwa inaweza kuwa vigumu kudhibiti kwa sababu ina vipengele vingi vinavyosonga, vinavyobadilika ambavyo vyote vinahitaji kufanya kazi ipasavyo ili mfumo ufanye kazi. Ikiwa moja ya vipengele itashindwa, mfumo lazima uione, uipitie na urekebishe, na yote haya lazima yafanyike moja kwa moja. Katika mfululizo huu wa Mbinu Bora za Kubernetes, tutajifunza jinsi ya kuweka majaribio ya Utayari na Uhai ili kupima afya ya kundi la Kubernetes.

Ukaguzi wa Afya ni njia rahisi ya kujulisha mfumo ikiwa programu yako inaendeshwa au la. Ikiwa mfano wako wa programu haujakamilika, basi huduma zingine hazipaswi kuipata au kutuma maombi kwake. Badala yake, ombi lazima litumwe kwa tukio lingine la programu ambayo tayari inaendeshwa au itazinduliwa baadaye. Kwa kuongeza, mfumo unapaswa kurejesha utendakazi uliopotea wa programu yako.

Kwa chaguomsingi, Kubernetes itaanza kutuma trafiki kwenye ganda vyombo vyote vilivyo ndani ya ganda vinapofanya kazi, na kuwasha upya vyombo vinapoanguka. Tabia hii ya mfumo chaguo-msingi inaweza kuwa nzuri vya kutosha kuanza, lakini unaweza kuboresha uaminifu wa utumaji wa bidhaa yako kwa kutumia ukaguzi maalum wa usafi.

Mbinu bora za Kubernetes. Kuthibitisha Uhai wa Kubernetes kwa Majaribio ya Utayari na Uhai

Kwa bahati nzuri, Kubernetes hurahisisha hili kufanya, kwa hivyo hakuna kisingizio cha kupuuza ukaguzi huu. Kubernetes hutoa aina mbili za Ukaguzi wa Afya, na ni muhimu kuelewa tofauti za jinsi kila moja inatumiwa.

Jaribio la Utayari limeundwa kuwaambia Kubernetes kwamba programu yako iko tayari kushughulikia trafiki. Kabla ya kuruhusu huduma kutuma trafiki kwenye ganda, Kubernetes lazima athibitishe kuwa ukaguzi wa kuwa tayari umefaulu. Jaribio la Utayari likishindwa, Kubernetes itaacha kutuma trafiki kwenye ganda hadi jaribio lipite.

Jaribio la Liveness huambia Kubernetes ikiwa ombi lako liko hai au limekufa. Katika kesi ya kwanza, Kubernetes itaiacha peke yake, kwa pili itafuta pod iliyokufa na kuibadilisha na mpya.

Hebu tufikirie hali ambapo programu yako huchukua dakika 1 ili kuwasha moto na kuzinduliwa. Huduma yako haitaanza kufanya kazi hadi programu ipakiwe kikamilifu na kuendeshwa, ingawa utiririshaji wa kazi tayari umeanza. Utakuwa pia na matatizo ikiwa ungependa kuongeza utumaji huu kwa nakala nyingi, kwa sababu nakala hizo hazipaswi kupokea trafiki hadi ziwe tayari kabisa. Hata hivyo, kwa chaguomsingi, Kubernetes itaanza kutuma trafiki mara tu michakato ndani ya kontena inapoanza.

Wakati wa kutumia jaribio la Utayari, Kubernetes itasubiri hadi programu ifanye kazi kikamilifu kabla ya kuruhusu huduma kutuma trafiki kwa nakala mpya.

Mbinu bora za Kubernetes. Kuthibitisha Uhai wa Kubernetes kwa Majaribio ya Utayari na Uhai

Hebu fikiria hali nyingine ambayo maombi hutegemea kwa muda mrefu, kuacha maombi ya huduma. Mchakato unapoendelea kufanya kazi, kwa chaguomsingi Kubernetes itachukulia kuwa kila kitu kiko sawa na kuendelea kutuma maombi kwa ganda lisilofanya kazi. Lakini wakati wa kutumia Liveness, Kubernetes itagundua kuwa programu haitumii maombi tena na itaanzisha tena ganda lililokufa kwa chaguo-msingi.

Mbinu bora za Kubernetes. Kuthibitisha Uhai wa Kubernetes kwa Majaribio ya Utayari na Uhai

Wacha tuangalie jinsi utayari na uwezekano unajaribiwa. Kuna njia tatu za majaribio - HTTP, Amri na TCP. Unaweza kutumia yoyote kati yao kuangalia. Njia ya kawaida ya kujaribu mtumiaji ni uchunguzi wa HTTP.

Hata kama programu yako si seva ya HTTP, bado unaweza kuunda seva nyepesi ya HTTP ndani ya programu yako ili kuingiliana na jaribio la Liveness. Baada ya hayo, Kubernetes itaanza kupenyeza ganda, na ikiwa jibu la HTTP liko katika safu ya 200 au 300 ms, itaonyesha kuwa ganda linafaa. Vinginevyo, moduli itawekwa alama kama "isiyo na afya".

Mbinu bora za Kubernetes. Kuthibitisha Uhai wa Kubernetes kwa Majaribio ya Utayari na Uhai

Kwa majaribio ya Amri, Kubernetes huendesha amri ndani ya chombo chako. Ikiwa amri inarudi na msimbo wa kuondoka wa sifuri, basi chombo kitawekwa alama ya afya, vinginevyo, baada ya kupokea nambari ya hali ya kuondoka kutoka 1 hadi 255, chombo kitawekwa alama ya "mgonjwa". Mbinu hii ya majaribio ni muhimu ikiwa huwezi au hutaki kuendesha seva ya HTTP, lakini unaweza kutekeleza amri ambayo itaangalia afya ya programu yako.

Mbinu bora za Kubernetes. Kuthibitisha Uhai wa Kubernetes kwa Majaribio ya Utayari na Uhai

Njia ya mwisho ya uthibitishaji ni jaribio la TCP. Kubernetes itajaribu kuanzisha muunganisho wa TCP kwenye bandari maalum. Ikiwa hii inaweza kufanywa, chombo kinachukuliwa kuwa cha afya; ikiwa sivyo, kinachukuliwa kuwa hakifai. Njia hii inaweza kuwa muhimu ikiwa unatumia hali ambapo upimaji na ombi la HTTP au utekelezaji wa amri haufanyi kazi vizuri sana. Kwa mfano, huduma kuu za uthibitishaji kwa kutumia TCP zitakuwa gRPC au FTP.

Mbinu bora za Kubernetes. Kuthibitisha Uhai wa Kubernetes kwa Majaribio ya Utayari na Uhai

Vipimo vinaweza kusanidiwa kwa njia kadhaa na vigezo tofauti. Unaweza kubainisha ni mara ngapi zinapaswa kutekelezwa, viwango vya mafanikio na kushindwa ni vipi, na muda gani wa kusubiri majibu. Kwa habari zaidi, angalia hati za majaribio ya Utayari na Uhai. Hata hivyo, kuna jambo moja muhimu sana katika kusanidi jaribio la Liveness - mpangilio wa awali wa ucheleweshaji wa majaribio initialDelaySeconds. Kama nilivyosema, kutofaulu kwa jaribio hili kutasababisha moduli kuanza tena. Kwa hivyo unahitaji kuhakikisha kuwa majaribio hayaanzi hadi programu iwe tayari kutumika, vinginevyo itaanza kuendesha baiskeli kupitia kuwashwa tena. Ninapendekeza kutumia wakati wa kuanza wa P99 au wastani wa wakati wa kuanzisha programu kutoka kwa bafa. Kumbuka kurekebisha thamani hii kadri muda wa kuanza kwa programu yako unavyozidi kuwa kasi au polepole.

Wataalamu wengi watathibitisha kuwa Ukaguzi wa Afya ni ukaguzi wa lazima kwa mfumo wowote unaosambazwa, na Kubernetes pia si ubaguzi. Kutumia huduma za ukaguzi wa afya huhakikisha utendakazi wa kuaminika, usio na matatizo wa Kubernetes na ni rahisi kwa watumiaji.

Itaendelea hivi punde...

Baadhi ya matangazo πŸ™‚

Asante kwa kukaa nasi. Je, unapenda makala zetu? Je, ungependa kuona maudhui ya kuvutia zaidi? Tuunge mkono kwa kuweka agizo au kupendekeza kwa marafiki, VPS ya wingu kwa watengenezaji kutoka $4.99, analogi ya kipekee ya seva za kiwango cha kuingia, ambayo ilivumbuliwa na sisi kwa ajili yako: Ukweli wote kuhusu VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps kutoka $19 au jinsi ya kushiriki seva? (inapatikana kwa RAID1 na RAID10, hadi cores 24 na hadi 40GB DDR4).

Dell R730xd 2x nafuu katika kituo cha data cha Equinix Tier IV huko Amsterdam? Hapa tu 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV kutoka $199 nchini Uholanzi! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - kutoka $99! Soma kuhusu Jinsi ya kujenga miundombinu ya Corp. darasa na matumizi ya seva za Dell R730xd E5-2650 v4 zenye thamani ya euro 9000 kwa senti?

Chanzo: mapenzi.com

Kuongeza maoni