Anthu ambiri amakhulupirira kuti ndikokwanira kusamukira ku Kubernetes (mwina pogwiritsa ntchito Helm kapena pamanja) ndipo adzakhala osangalala. Koma sizophweka.
timu Mail.ru Cloud Solutions adamasulira nkhani ya injiniya wa DevOps Julian Gindi. Amagawana misampha yomwe kampani yake idakumana nayo panthawi yakusamuka kuti musayende panjira yomweyo.
Khwerero XNUMX: Kukhazikitsa Zopempha za Pod ndi Malire
Tiyeni tiyambe ndi kukhazikitsa malo oyera omwe pods zathu zidzathamanga. Kubernetes amagwira ntchito yabwino yokonza ma pods ndikuwongolera zovuta. Koma zidapezeka kuti wokonza mapulani nthawi zina sangathe kuyika poto ngati kuli kovuta kuwerengera kuchuluka kwazinthu zomwe zikufunika kuti zigwire bwino ntchito. Apa ndi pamene zopempha zothandizira ndi malire zimabwera. Pali zotsutsana zambiri za njira yabwino yokhazikitsira zopempha ndi malire. Nthawi zina zimamveka ngati zaluso kwambiri kuposa sayansi. Nayi njira yathu.
Zopempha za Pod - Uwu ndiye mtengo waukulu wogwiritsidwa ntchito ndi wokonza kuti akhazikitse bwino pod.
Kuchokera Kubernetes zolemba: Gawo losefera limatsimikizira magawo omwe pod ingakonzedwe. Mwachitsanzo, fyuluta ya PodFitsResources imayang'ana ngati node ili ndi zothandizira zokwanira kukwaniritsa zopempha za pod.
Timagwiritsa ntchito zopempha kuti zigwiritsidwe ntchito kuyerekezera ndi zinthu zingati ndipotu Pulogalamuyo imafunikira kuti igwire bwino ntchito. Mwanjira iyi wokonza mapulani amatha kuyika mfundo zenizeni. Poyamba tinkafuna kuyika zopempha ndi malire kuti tiwonetsetse kuti pod iliyonse ili ndi zinthu zambiri zokwanira, koma tidawona kuti nthawi yokonzekera ikuwonjezeka kwambiri ndipo ma pods ena sanakonzedwe bwino, ngati kuti palibe zopempha zomwe zidalandiridwa.
Pachifukwa ichi, wokonza ndondomekoyo nthawi zambiri amakankhira ma pods ndikulephera kuwasintha chifukwa ndege yoyendetsa ndegeyo sankadziwa kuchuluka kwa zinthu zomwe ntchitoyo ingafune, chigawo chachikulu cha ndondomeko ya ndondomeko.
Malire a Pod - ichi ndi malire omveka bwino a pod. Imayimira kuchuluka kwazinthu zomwe gulu lingapereke ku chidebe.
Apanso, kuchokera zolemba zovomerezeka: Ngati chidebe chili ndi malire a 4 GiB kukumbukira, ndiye kubelet (ndi nthawi yoyendetsa chidebe) adzaukakamiza. Nthawi yogwiritsira ntchito sikulola kuti chidebecho chigwiritse ntchito mopitilira malire omwe aperekedwa. Mwachitsanzo, pamene ndondomeko mu chidebe ikuyesera kugwiritsa ntchito zambiri kuposa zomwe zimaloledwa kukumbukira, kernel imathetsa ndondomekoyi ndi cholakwika cha "out of memory" (OOM).
Chidebe chimatha kugwiritsa ntchito zinthu zambiri kuposa zomwe zafotokozedwera, koma sichingagwiritse ntchito zochulukirapo kuposa zomwe zatchulidwa pamalire. Mtengo uwu ndi wovuta kuyika bwino, koma ndi wofunika kwambiri.
Momwemo, tikufuna kuti zofunikira za pod zisinthe pa moyo wa ndondomeko popanda kusokoneza njira zina mu dongosolo-ndicho cholinga chokhazikitsa malire.
Pogwiritsa ntchito chida choyezera katundu, timatengera kuchuluka kwa magalimoto ndikuyang'anira kagwiritsidwe ntchito ka zinthu zapod (zokumbukira ndi purosesa).
Timayika zopempha za pod kukhala zotsika kwambiri (zokhala ndi malire a nthawi pafupifupi 5 mtengo wa zopemphazo) ndikuwona. Zopempha zikachepa kwambiri, ntchitoyi singayambe, zomwe nthawi zambiri zimayambitsa zolakwika za Go runtime.
Dziwani kuti malire apamwamba amapangitsa kuti ndandanda ikhale yovuta kwambiri chifukwa pod imafuna malo omwe ali ndi zinthu zokwanira.
Ingoganizirani momwe muli ndi seva yapaintaneti yopepuka yokhala ndi malire apamwamba kwambiri, nenani 4 GB ya kukumbukira. Njirayi iyenera kukulirakulira mopingasa, ndipo gawo lililonse latsopano liyenera kukonzedwa pa node yokhala ndi kukumbukira osachepera 4 GB. Ngati palibe node yotereyi, gululo liyenera kuyambitsa node yatsopano kuti igwire ntchitoyo, zomwe zingatenge nthawi. Ndikofunika kusunga kusiyana pakati pa zopempha zothandizira ndi malire kuti zikhale zochepa kuti zitsimikizidwe mofulumira komanso zosalala.
Khwerero XNUMX: khazikitsani mayeso a Liveness ndi Readiness
Uwu ndi mutu wina wobisika womwe umakambidwa nthawi zambiri mdera la Kubernetes. Ndikofunika kumvetsetsa bwino mayeso a Liveness and Readiness popeza amapereka njira yoti mapulogalamu aziyenda bwino komanso kuchepetsa nthawi yopuma. Komabe, zitha kuyambitsa kugunda kwakukulu pakugwiritsa ntchito kwanu ngati sikunakonzedwe bwino. Pansipa pali chidule cha zomwe zitsanzo zonsezi zilili.
Moyo kuwonetsa ngati chidebe chikuyenda. Ngati sichikanika, kubelet imapha chidebecho ndipo ndondomeko yoyambitsanso imathandizidwa. Ngati chidebecho sichikhala ndi kafukufuku wa Liveness, ndiye kuti kusakhazikika kudzakhala bwino - izi ndi zomwe akunena mu Kubernetes zolemba.
Ngati muyika njira yoyendetsera sekondi iliyonse, izi zidzawonjezera pempho la 1 pamphindikati, kotero dziwani kuti zowonjezera zidzafunika kuthana ndi magalimotowa.
Pakampani yathu, kuyesa kwa Liveness kumayang'ana zigawo zikuluzikulu za pulogalamuyo, ngakhale deta (mwachitsanzo, kuchokera ku database yakutali kapena cache) siyikupezeka.
Takonza mapulogalamuwa ndi mapeto a "thanzi" omwe amangobweza kachidindo ka 200. Ichi ndi chisonyezero chakuti ndondomekoyi ikugwira ntchito ndipo imatha kukonza zopempha (koma osati magalimoto).
Zitsanzo Kukonzekera zikuwonetsa ngati chotengeracho chakonzeka kupereka zopempha. Ngati kafukufuku wokonzekera alephera, woyang'anira mapeto amachotsa adilesi ya IP ya pod kumapeto kwa ntchito zonse zogwirizana ndi pod. Izi zanenedwanso mu zolemba za Kubernetes.
Ma probe okonzekera amadya zinthu zambiri chifukwa ziyenera kutumizidwa kumbuyo m'njira yosonyeza kuti ntchitoyo ndi yokonzeka kuvomera zopempha.
initialDelaySeconds - masekondi angati adzadutsa pakati pa kukhazikitsidwa kwa chidebe ndi kuyamba kwa zitsanzo.
periodSeconds - nthawi yodikira pakati pa zitsanzo zothamanga.
timeoutSeconds - chiwerengero cha masekondi pambuyo pake unit imatengedwa ngati mwadzidzidzi. Kutha kwanthawi zonse.
failureThreshold - chiwerengero cha zolephera zoyesa chizindikiro chisanayambe kutumizidwa ku pod.
successThreshold - chiwerengero cha zofufuza zopambana musanalowe m'malo okonzeka (pambuyo pa kulephera, pamene pod ikuyamba kapena kuchira).
Khwerero XNUMX: kukhazikitsa ndondomeko zokhazikika za netiweki za pod
Kubernetes ali ndi "flat" network topography; mwachisawawa, ma pod onse amalumikizana mwachindunji. Nthawi zina izi sizofunikira.
Vuto lomwe lingakhale lachitetezo ndikuti wowukira atha kugwiritsa ntchito pulogalamu imodzi yomwe ili pachiwopsezo kuti atumize kuchuluka kwa magalimoto onse pa intaneti. Monga momwe zilili ndi mbali zambiri zachitetezo, mfundo yochepetsera mwayi imagwira ntchito pano. Moyenera, ndondomeko za netiweki ziyenera kufotokoza momveka bwino kuti ndi kulumikizana kotani pakati pa ma pod ndi komwe sikuloledwa.
Mwachitsanzo, m'munsimu pali ndondomeko yosavuta yomwe imakana magalimoto onse omwe akubwera a malo enieni:
#!/bin/bash
sleep 3
PID=$(cat /run/nginx.pid)
nginx -s quit
while [ -d /proc/$PID ]; do
echo "Waiting while shutting down nginx..."
sleep 10
done
Paradigm ina yothandiza kwambiri ndikugwiritsa ntchito zotengera za init poyambira mapulogalamu enaake. Izi ndizothandiza makamaka ngati muli ndi njira yosunthika yotengera zinthu zomwe zikuyenera kuchitika pulogalamuyo isanayambe. Mukhozanso kufotokoza malire apamwamba pa ndondomekoyi popanda kukhazikitsa malire a ntchito yaikulu.
Chiwembu china chodziwika bwino ndikupeza zinsinsi mu chidebe cha init chomwe chimapereka zidziwitsozo ku gawo lalikulu, zomwe zimalepheretsa kupeza zinsinsi mosavomerezeka kuchokera ku gawo lalikulu la pulogalamuyo.
Monga mwachizolowezi, tchulani zolembedwazo: Zotengera zoyambira zimayendetsa mosamala ma code kapena zida zomwe zingachepetse chitetezo cha chidebe cha pulogalamuyo. Popatula zida zosafunikira, mumachepetsa mawonekedwe a chidebe cha pulogalamuyo.
Kodi zofunika makulitsidwe enieni ndi chiyani? Kodi pulogalamuyi ikhala ndi magalimoto ochuluka bwanji? Nanga bwanji za kuchuluka kwa magalimoto pamsewu?
Kodi ntchitoyo idzafunika kuonjezedwa kangati? Kodi ma pod atsopano amafunika kubweretsedwa pa intaneti mwachangu bwanji kuti alandire kuchuluka kwa magalimoto?
Kodi mungachepetse bwanji ziwopsezo zachitetezo ndikuchepetsa kuwonongeka kwa ma pod aliwonse omwe asokonezedwa? Kodi pali mautumiki omwe ali ndi zilolezo kapena mwayi womwe sakufuna?