Phawula. transl.: Injineli ekhokelayo evela eZalando, uHenning Jacobs, uye waqaphela ngokuphindaphindiweyo iingxaki phakathi kwabasebenzisi be-Kubernetes ekuqondeni injongo yokuphila (kunye nokulungela) iiprobes kunye nokusetyenziswa kwazo okuchanekileyo. Ke ngoko, uqokelele iingcinga zakhe kweli phetshana linamandla, eliya kuthi ekugqibeleni libe yinxalenye yamaxwebhu e-K8s.
Iitshekhi zezempilo, ezaziwa eKubernetes njenge ububomi (o.k.t., ngokoqobo, “uvavanyo lokukwazi ukusebenza” - approx. transl.), kunokuba yingozi kakhulu. Ndincoma ukuba baphephe ukuba kunokwenzeka: ngaphandle kuphela xa kuyimfuneko ngokwenene kwaye uyazi ngokupheleleyo iinkcukacha kunye nemiphumo yokusetyenziswa kwazo. Olu papasho luya kuthetha malunga nokujonga ubomi kunye nokulungela ukutshekishwa, kwaye luya kukuxelela nokuba zeziphi iimeko ku fanele kwaye akufanele uzisebenzise.
Umlingane wam uSandor usandula ukwabelana kuTwitter ezona mpazamo zixhaphakileyo adibana nazo, kubandakanya nezo zinxulumene nokusetyenziswa kokulungela / ukwenza uphando:
Ibunjwa ngendlela engalunganga livenessProbe
ingazenza mandundu iimeko zomthwalo ophezulu (ukuvalwa kwebhola yekhephu + isikhongozeli esinokuba side/ixesha lokuqalisa isicelo) kwaye ikhokelele kwezinye iziphumo ezibi njengokuhla kokuxhomekeka. (bona kwakho
Umyalezo jikelele "Musa ukusebenzisa iiprobes eziphilayo" kule meko ayincedi kakhulu, ngoko ke makhe sijonge ukuba yintoni ukulungela kunye nokuhlolwa kokuphila.
Qaphela: Uninzi lovavanyo olungezantsi lwaluqukwe ekuqaleni kuxwebhu lomphuhlisi wangaphakathi weZalando.
Iitshekhi zokuLungela kunye nokuPhila
I-Kubernetes ibonelela ngeendlela ezimbini ezibalulekileyo ezibizwa ngokuba
UKubernetes usebenzisa ukulungela uphandoukuqonda xa isikhongozeli sikulungele ukwamkela i-traffic. I-pod ithathwa njengelungele ukusetyenziswa ukuba zonke izitya zayo zilungile. Enye indlela yokusetyenziswa kolu matshini kukulawula ukuba zeziphi iipods ezisetyenziswayo njenge backend kwiinkonzo zeKubernetes (kwaye ngakumbi i-Ingress).
Ubomi buphanda nceda uKubernetes aqonde xa ilixesha lokuphinda uqalise isikhongozeli. Umzekelo, itshekhi enjalo ikuvumela ukuba uthintele ukuvalwa xa isicelo sixinga endaweni enye. Ukuqalisa kwakhona isikhongozeli kweli lizwe kunceda ukususa usetyenziso emhlabeni ngaphandle kweempazamo, kodwa kunokukhokelela ekungaphumelelini kokuphoswa (jonga ngezantsi).
Ukuba uzama ukufaka uhlaziyo lwesicelo olusilelayo ukukhangela ukuphila / ukulungela, ukukhutshwa kwayo kuya kumiswa njengoko uKubernetes elindele isimo. Ready
kuzo zonke iipod.
Umzekelo:
Nanku umzekelo wokulungela ukukhangela indlela /health
ngeHTTP enemimiselo engagqibekanga (ithuba: 10 imizuzwana, kuphele ixesha: 1 umzuzwana, umda wempumelelo: 1, umda wokusilela: 3):
# часть общего описания deployment'а/стека
podTemplate:
spec:
containers:
- name: my-container
# ...
readinessProbe:
httpGet:
path: /health
port: 8080
Iingcebiso
- Kwiinkonzo ezincinci ezine-HTTP endpoint (REST, njl.) soloko uchaza uphando lokulungela, ejonga ukuba isicelo (ipod) sikulungele ukwamkela i-traffic.
- Qinisekisa ukulungela probe igubungela ubukho beyona ndawo yomncedisi wewebhu:
- usebenzisa izibuko ngeenjongo zolawulo, ezibizwa ngokuba yi "admin" okanye "management" (umzekelo, 9090), ukwenzela
readinessProbe
, qiniseka ukuba isiphelo sibuyisela kuphela okuthi KULUNGILE ukuba izibuko zeHTTP eziphambili (ezifana ne 8080) zilungele ukwamkela itrafikhi*;*Ndiyazi nokuba linye ityala eZalando apho kungenzekiyo oku, okt.
readinessProbe
Ndijonge i-port "yolawulo", kodwa iseva ngokwayo ayizange iqalise ukusebenza ngenxa yeengxaki zokulayisha i-cache. - ukuqhoboshela i-probe yokulungela kwizibuko elahlukileyo kunokukhokelela kwinto yokuba ukulayisha ngaphezulu kwizibuko eliphambili akuyi kubonakaliswa kukhangelo lwempilo (oko kukuthi, iqula lomsonto kumncedisi ligcwele, kodwa ukukhangela impilo kusabonisa ukuba yonke into ilungile. ).
- usebenzisa izibuko ngeenjongo zolawulo, ezibizwa ngokuba yi "admin" okanye "management" (umzekelo, 9090), ukwenzela
- Qiniseka ukuba iprobe yokulungela yenza ukuqaliswa kwesiseko sedatha/ukufuduka;
- Eyona ndlela ilula yokufezekisa oku kukuqhagamshelana nomncedisi we HTTP kuphela emva kokuba uqaliso lugqityiwe (umzekelo, ukufudusa idatabase
Flyway kwaye nangokunjalo.); Oko kukuthi, endaweni yokutshintsha imeko yokukhangela impilo, ungaqalisi umncedisi wewebhu de ufuduko lwesiseko sedata lugqitywe*.* Ungaqhuba nokufuduka kwedatha kwizikhongozeli ze-init ngaphandle kwepod. Ndisengumlandeli wezicelo ezizimeleyo, oko kukuthi, ezo apho isikhongozeli sesicelo siyakwazi ukuzisa i-database kwindawo efunwayo ngaphandle kolungelelwaniso lwangaphandle.
- Eyona ndlela ilula yokufezekisa oku kukuqhagamshelana nomncedisi we HTTP kuphela emva kokuba uqaliso lugqityiwe (umzekelo, ukufudusa idatabase
- Sebenzisa
httpGet
ukukhangela ukulungela ukukhangela isiphelo sempilo (umzekelo,/health
). - Qonda iiparamitha zokujonga okumiselweyo (
interval: 10s
,timeout: 1s
,successThreshold: 1
,failureThreshold: 3
):- iinketho ezingagqibekanga zithetha ukuba i-pod iya kuba ayilunganga emva kwemizuzwana engama-30 (i-3 ayiphumelelanga ukuhlolwa kwengqondo).
- Sebenzisa izibuko elahlukileyo lika "admin" okanye "ulawulo" ukuba istaki sobugcisa (umzekelo, iJava/Spring) siyasivumela, ukwahlula ulawulo lwezempilo kunye neemetrics kwitrafikhi eqhelekileyo:
- kodwa ungalibali malunga nenqaku lesi-2.
- Ukuba kuyimfuneko, iprobe yokulungela ingasetyenziselwa ukufudumala / ukulayisha i-cache kwaye ubuyisele ikhowudi yesimo se-503 de isikhongozeli sifudumale:
- Ndikwacebisa ukuba ufunde itshekhi entsha
startupProbe
,yavela kuguqulelo 1.16 (sibhale ngayo ngesiRashiyaapha - malunga. guqulela.).
- Ndikwacebisa ukuba ufunde itshekhi entsha
Imijelo
- Musa ukuthembela kwizinto ezixhomekeke ngaphandle (ezinje ngoovimba bedatha) xa uqhuba uvavanyo lokulungela/ukuphila - oku kunokukhokelela ekungaphumelelini kwenkqubo:
- Njengomzekelo, makhe sithathe inkonzo ye-REST ehloniphekileyo ene-10 pods ngokuxhomekeke kwisiseko sedatha ye-Postgres enye: xa itshekhi ixhomekeke kuxhulumaniso olusebenzayo kwi-DB, zonke ii-pods ezili-10 zinokungaphumeleli ukuba kukho ukulibaziseka kwinethiwekhi / kwicala le-DB - ngokuqhelekileyo zonke ziphela zimbi ngakumbi kunokuba zinako;
- Nceda uqaphele ukuba iDatha yaseNtwasahlobo ijonga uqhagamshelwano lwesiseko sedata ngokungagqibekanga*;
* Oku kukuziphatha okungagqibekanga kwe-Spring Data Redis (ubuncinci yayilixesha lokugqibela nditshekisha), nto leyo eyakhokelela ekungaphumelelini "kwentlekele": xa iRedis yayingafumaneki ixesha elifutshane, zonke iipods "zaphuka".
- "yangaphandle" ngokwale ngqiqo inokuthetha ezinye iipods zesicelo esifanayo, oko kukuthi, ukujonga akufuneki kuxhomekeke kwimeko yezinye iipods zeqela elifanayo ukuthintela ukuntlitheka kwe-scascading:
- iziphumo zinokwahluka kwizicelo ezinesimo esisasaziweyo (umzekelo, i-caching yememori kwiipod).
- Musa ukusebenzisa i-liveness probe iipods (ngaphandle kweemeko xa ziyimfuneko ngokwenene kwaye uyazi ngokupheleleyo iinkcukacha kunye neziphumo zokusetyenziswa kwazo):
- I-liveness probe inokunceda ukubuyisela izikhongozeli ezixhonyiweyo, kodwa ngenxa yokuba unolawulo olupheleleyo kwisicelo sakho, izinto ezifana neenkqubo ezixhonyiweyo kunye ne-deadlocks akufuneki zenzeke: eyona ndlela ingcono kukuwisa isicelo kwaye usibuyisele kwisimo sangaphambili esizinzileyo;
- isingxobo esingaphumeleliyo siza kubangela ukuba isikhongozeli siqale ngokutsha, ngokwenza njalo oko kunokwenza mandundu iziphumo zokulayisha-impazamo ezinxulumene nokulayisha: ukuqalisa kwakhona isikhongozeli kuya kukhokelela kwixesha lokuphumla (ubuncinci bexesha lokuqaliswa kwesicelo, yithi imizuzwana engama-30), kubangela iimpazamo ezintsha. , ukwandisa umthwalo kwezinye izikhongozeli kunye nokwandisa amathuba okuhluleka kwabo, njl.;
- iitshekhi zokuphila ezidityaniswe nokuxhomekeka kwangaphandle yeyona indibaniselwano imbi kakhulu, isoyikisa ukusilela: ukulibaziseka okuncinci kwicala lesiseko sedatha kuya kukhokelela ekuqaliseni ngokutsha kwazo zonke izikhongozeli zakho!
- Imilinganiselo yokuphila kunye nokulungela ukuhlola kufuneka yahluke:
- ungasebenzisa i-liveness probe ngetshekhi efanayo yezempilo, kodwa umqobo wokuphendula ophezulu (
failureThreshold
), umzekelo, yabela ubume ayilunganga emva kwemizamo ye-3 kwaye ucinge ukuba i-liveness probe ayiphumelelanga emva kwemizamo ye-10;
- ungasebenzisa i-liveness probe ngetshekhi efanayo yezempilo, kodwa umqobo wokuphendula ophezulu (
- Musa ukusebenzisa i-exec checks, kuba zinxulunyaniswa neengxaki ezaziwayo ezikhokelela ekuveleni kweenkqubo ze-zombie:
- iinkcukacha: bona
unikezelo ziingcali zeDatadog .
- iinkcukacha: bona
Isishwankathelo
- Sebenzisa i-probes yokulungela ukujonga xa i-pod ikulungele ukufumana i-traffic.
- Sebenzisa iiprobes kuphela xa zifuneka ngokwenene.
- Ukusetyenziswa ngokungafanelekanga kokulungela/ubomi beprobe kunokukhokelela ekufumanekeni okuncitshisiweyo kunye nokusilela okuhlayo.
Izinto ezongezelelweyo ngesihloko
-
I-Kubernetes docs: Lungiselela ukuPhila kunye nokuLungela iiProbes ; -
I-Kubernetes Ukuphila kunye nokuLungela iiProbes ziphinde zaphononongwa: Ungakunqanda njani ukuzidubula kolunye unyawo. ; -
ILabs ye-NRE iyaphuma emva kokubhubha (ukwathetha nge-livenessProbe).
Uhlaziyo lwe-1 ukusuka kwi-2019-09-29
Uhlaziyo lwe-2 ukusuka kwi-2019-09-29
PS evela kumguquleli
Funda nakwibhlog yethu:
- «
Kubernetes: Ubomi bePod "; - «
Iindlela ezi-7 ezilungileyo zokusebenzisa izikhongozeli ngokukaGoogle "; - «
7 Imigaqo-siseko yokuyila ii-Aplikheshini eziSekwe kwisikhongozeli ».
umthombo: www.habr.com