Mga Kinamaayohang Gawi sa Kubernetes. Pagsusi sa Panglawas sa Kubernetes gamit ang Pag-andam ug Pagsulay sa Liveness

Mga Kinamaayohang Gawi sa Kubernetes. Paghimo og Gagmay nga mga Kontainer
Mga Kinamaayohang Gawi sa Kubernetes. Kubernetes nga organisasyon nga adunay namespace

Mga Kinamaayohang Gawi sa Kubernetes. Pagsusi sa Panglawas sa Kubernetes gamit ang Pag-andam ug Pagsulay sa Liveness

Ang mga gipang-apod-apod nga mga sistema mahimong malisud sa pagdumala tungod kay sila adunay daghan nga nagalihok, nag-usab-usab nga mga elemento nga ang tanan kinahanglan nga molihok sa husto aron ang sistema molihok. Kung ang usa sa mga elemento mapakyas, ang sistema kinahanglan nga makit-an kini, laktawan kini ug ayohon kini, ug kining tanan kinahanglan nga awtomatiko nga buhaton. Niini nga serye sa Kubernetes Best Practices, makakat-on kita unsaon pag-set up sa Readiness and Liveness tests aron masulayan ang kahimsog sa usa ka Kubernetes cluster.

Ang Pagsusi sa Panglawas usa ka yano nga paagi aron mahibal-an sa sistema kung nagdagan ang imong aplikasyon o wala. Kung ang imong aplikasyon instance nawala, nan ang ubang mga serbisyo dili kinahanglan nga maka-access niini o magpadala mga hangyo niini. Hinuon, ang hangyo kinahanglan ipadala sa lain nga higayon sa aplikasyon nga nagdagan na o ilunsad sa ulahi. Dugang pa, kinahanglan nga ibalik sa sistema ang nawala nga pagpaandar sa imong aplikasyon.

Sa default, ang Kubernetes magsugod sa pagpadala sa trapiko sa usa ka pod kung ang tanan nga mga sudlanan sa sulod sa mga pod nagdagan, ug i-reboot ang mga sudlanan kung kini nahagsa. Kini nga default nga pamatasan sa sistema mahimo’g igo na sa pagsugod, apan mahimo nimong mapauswag ang kasaligan sa pag-deploy sa imong produkto pinaagi sa paggamit sa naandan nga mga pagsusi sa kahimsog.

Mga Kinamaayohang Gawi sa Kubernetes. Pagsusi sa Panglawas sa Kubernetes gamit ang Pag-andam ug Pagsulay sa Liveness

Maayo na lang, ang Kubernetes naghimo niini nga sayon ​​​​buhaton, mao nga wala'y katarungan sa pagbaliwala niini nga mga tseke. Ang Kubernetes naghatag ug duha ka klase sa Health Checks, ug importante nga masabtan ang mga kalainan kung giunsa paggamit ang matag usa.

Ang Readiness test kay gilaraw aron sultihan ang Kubernetes nga ang imong aplikasyon andam na sa pagdumala sa trapiko. Sa dili pa tugotan ang usa ka serbisyo sa pagpadala sa trapiko sa usa ka pod, ang Kubernetes kinahanglan nga magpamatuod nga ang pagsusi sa pagkaandam malampuson. Kung mapakyas ang pagsulay sa Pagkaandam, ang Kubernetes mohunong sa pagpadala sa trapiko sa pod hangtod nga moagi ang pagsulay.

Ang Liveness test nagsulti sa Kubernetes kung ang imong aplikasyon buhi o patay. Sa una nga kaso, ang Kubernetes biyaan kini nga mag-inusara, sa ikaduha kini magtangtang sa patay nga pod ug pulihan kini og bag-o.

Hunahunaa ang usa ka senaryo diin ang imong aplikasyon nagkinahanglag 1 ka minuto aron magpainit ug maglansad. Ang imong serbisyo dili magsugod sa pagtrabaho hangtod nga ang aplikasyon hingpit nga na-load ug nagdagan, bisan kung ang workflow nagsugod na. Adunay ka usab mga problema kung gusto nimo nga padaghanon kini nga pag-deploy sa daghang mga kopya, tungod kay kana nga mga kopya kinahanglan dili makadawat trapiko hangtod nga sila hingpit nga andam. Apan, pinaagi sa default, ang Kubernetes magsugod sa pagpadala sa trapiko sa diha nga ang mga proseso sulod sa sudlanan magsugod.

Kung gigamit ang pagsulay sa Pagkaandam, ang Kubernetes maghulat hangtod nga ang aplikasyon hingpit nga modagan sa dili pa tugutan ang serbisyo nga magpadala trapiko sa bag-ong kopya.

Mga Kinamaayohang Gawi sa Kubernetes. Pagsusi sa Panglawas sa Kubernetes gamit ang Pag-andam ug Pagsulay sa Liveness

Atong mahanduraw ang laing senaryo diin ang aplikasyon nagbitay sa dugay nga panahon, nga nagpahunong sa mga hangyo sa pagserbisyo. Samtang ang proseso nagpadayon sa pagdagan, pinaagi sa default ang Kubernetes maghunahuna nga ang tanan maayo ug magpadayon sa pagpadala sa mga hangyo sa dili nagtrabaho pod. Apan kung gamiton ang Liveness, ang Kubernetes makamatikod nga ang aplikasyon wala na nag-alagad sa mga hangyo ug i-restart ang patay nga pod sa default.

Mga Kinamaayohang Gawi sa Kubernetes. Pagsusi sa Panglawas sa Kubernetes gamit ang Pag-andam ug Pagsulay sa Liveness

Atong tan-awon kung giunsa gisulayan ang pagkaandam ug pagkaayo. Adunay tulo ka mga pamaagi sa pagsulay - HTTP, Command ug TCP. Mahimo nimong gamiton ang bisan kinsa niini aron masusi. Ang labing komon nga paagi sa pagsulay sa usa ka user mao ang usa ka HTTP probe.

Bisan kung ang imong aplikasyon dili usa ka HTTP server, mahimo ka gihapon maghimo usa ka gaan nga HTTP server sa sulod sa imong aplikasyon aron makig-uban sa pagsulay sa Liveness. Pagkahuman niini, magsugod ang Kubernetes sa pag-ping sa pod, ug kung ang tubag sa HTTP naa sa 200 o 300 ms range, kini magpakita nga himsog ang pod. Kung dili, ang module markahan nga "dili himsog".

Mga Kinamaayohang Gawi sa Kubernetes. Pagsusi sa Panglawas sa Kubernetes gamit ang Pag-andam ug Pagsulay sa Liveness

Alang sa mga pagsulay sa Command, gipadagan sa Kubernetes ang command sulod sa imong sudlanan. Kung ang mando mobalik nga adunay zero exit code, nan ang sudlanan mamarkahan nga himsog, kung dili, kung makadawat usa ka exit status number gikan sa 1 hangtod 255, ang sudlanan markahan nga "sakit". Kini nga pamaagi sa pagsulay mapuslanon kung dili nimo mahimo o dili gusto nga magpadagan sa usa ka HTTP server, apan makahimo sa pagpadagan sa usa ka mando nga magsusi sa kahimsog sa imong aplikasyon.

Mga Kinamaayohang Gawi sa Kubernetes. Pagsusi sa Panglawas sa Kubernetes gamit ang Pag-andam ug Pagsulay sa Liveness

Ang katapusang mekanismo sa pag-verify mao ang TCP test. Ang mga Kubernetes mosulay sa pag-establisar og koneksyon sa TCP sa gipiho nga pantalan. Kung kini mahimo, ang sudlanan giisip nga himsog; kung dili, kini giisip nga dili mabuhi. Mahimong mapuslanon kini nga pamaagi kung naggamit ka usa ka senaryo diin ang pagsulay sa usa ka hangyo sa HTTP o pagpatuman sa command dili kaayo molihok. Pananglitan, ang mga nag-unang serbisyo alang sa pag-verify gamit ang TCP mao ang gRPC o FTP.

Mga Kinamaayohang Gawi sa Kubernetes. Pagsusi sa Panglawas sa Kubernetes gamit ang Pag-andam ug Pagsulay sa Liveness

Ang mga pagsulay mahimong ma-configure sa daghang mga paagi nga adunay lainlaing mga parameter. Mahimo nimong ipiho kung unsa ka sagad kini kinahanglan nga ipatuman, kung unsa ang mga sukaranan sa kalampusan ug kapakyasan, ug kung unsa ka dugay maghulat alang sa mga tubag. Para sa dugang nga impormasyon, tan-awa ang dokumentasyon para sa Readiness and Liveness nga mga pagsulay. Bisan pa, adunay usa ka hinungdanon nga punto sa pag-set up sa Liveness test - ang inisyal nga setting sa paglangan sa pagsulay initialDelaySeconds. Sama sa akong nahisgutan, ang kapakyasan niini nga pagsulay moresulta sa pag-restart sa module. Mao nga kinahanglan nimo nga sigurohon nga ang pagsulay dili magsugod hangtod nga ang aplikasyon andam na, kung dili kini magsugod sa pagbisikleta pinaagi sa pag-restart. Girekomendar nako ang paggamit sa P99 nga oras sa pagsugod o ang kasagaran nga oras sa pagsugod sa aplikasyon gikan sa buffer. Hinumdumi nga i-adjust kini nga kantidad samtang ang oras sa pagsugod sa imong aplikasyon labi ka paspas o hinay.

Kadaghanan sa mga eksperto mokumpirma nga ang Health Checks usa ka mandatory check alang sa bisan unsang gipang-apod-apod nga sistema, ug ang Kubernetes dili eksepsiyon. Ang paggamit sa mga pagsusi sa kahimsog sa serbisyo nagsiguro nga kasaligan, wala’y problema nga operasyon sa Kubernetes ug wala’y mahimo alang sa mga tiggamit.

Ipadayon sa dili madugay...

Pipila ka mga ad πŸ™‚

Salamat sa pagpabilin kanamo. Ganahan ka ba sa among mga artikulo? Gusto nga makakita og mas makapaikag nga sulod? Suportahi kami pinaagi sa pag-order o pagrekomenda sa mga higala, cloud VPS alang sa mga developers gikan sa $4.99, usa ka talagsaon nga analogue sa mga entry-level server, nga giimbento namo alang kanimo: Ang tibuok kamatuoran bahin sa VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps gikan sa $19 o unsaon pagpaambit sa usa ka server? (anaa sa RAID1 ug RAID10, hangtod sa 24 ka mga core ug hangtod sa 40GB DDR4).

Dell R730xd 2 ka beses nga mas barato sa Equinix Tier IV data center sa Amsterdam? Dinhi lang 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV gikan sa $199 sa Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - gikan sa $99! Basaha ang mahitungod sa Unsaon pagtukod sa infrastructure corp. klase sa paggamit sa Dell R730xd E5-2650 v4 server nga nagkantidad ug 9000 euros sa usa ka sentimos?

Source: www.habr.com

Idugang sa usa ka comment