m'munda resources.requested kuchokera ku mafotokozedwe Pod ndi chimodzi mwazinthu zomwe zimagwiritsidwa ntchito kupeza mfundo zomwe mukufuna. Mutha kukonzekera kale kutumiza kwa Pod kwa izo. Kodi node yoyenera mumaipeza bwanji?
Kubernetes imakhala ndi zigawo zingapo, kuphatikiza master node kapena master node (Kubernetes Control Plane). Master node ili ndi njira zingapo: kube-apiserver, kube-controller-manager ndi kube-scheduler.
Ndondomeko ya kube-scheduler ili ndi udindo wowunika ma pod omwe angopangidwa kumene ndikupeza malo ogwira ntchito omwe amagwirizana ndi zopempha zonse, kuphatikiza kuchuluka kwazinthu zomwe zafunsidwa. Mndandanda wamanode omwe adapezeka ndi kube-scheduler adayikidwa. Pod imakonzedwa pa node yokhala ndi zigoli zambiri.
Kodi Pod yofiirira iyikidwa kuti?
Pachithunzichi mutha kuwona kuti kube-scheduler akuyenera kukonza Pod yatsopano yofiirira. Gulu la Kubernetes lili ndi mfundo ziwiri: A ndi B. Monga mukuonera, kube-scheduler sangathe kukonza Pod pa node A - zomwe zilipo (zosafunsidwa) sizikugwirizana ndi zopempha za Pod yofiirira. Chifukwa chake, kukumbukira kwa 1 GB kofunsidwa ndi Pod yofiirira sikukwanira pa node A, popeza kukumbukira komwe kulipo ndi 0,5 GB. Koma node B ili ndi zothandizira zokwanira. Zotsatira zake, kube-scheduler aganiza kuti kopita kwa Purple Pod ndi node B.
Tsopano tikudziwa momwe zomwe zapemphedwa zimakhudzira kusankha kwa node kuyendetsa Pod. Koma zotsatira za zinthu zocheperako ndi zotani?
Malire azinthu ndi malire omwe CPU/MEM singadutse. Komabe, gwero la CPU ndi losinthika, kotero zotengera zomwe zimafikira malire awo a CPU sizingapangitse Pod kutuluka. M'malo mwake, CPU throttling idzayamba. Ngati malire ogwiritsira ntchito MEM afikira, chidebecho chidzayimitsidwa chifukwa cha OOM-Killer ndikuyambiranso ngati chiloledwa ndi RestartPolicy.
Anapempha ndi pazipita chuma mwatsatanetsatane
Kulumikizana kwazinthu pakati pa Docker ndi Kubernetes
Njira yabwino yofotokozera momwe zopempha zothandizira ndi malire azinthu zimagwirira ntchito ndikuyambitsa ubale pakati pa Kubernetes ndi Docker. Mu chithunzi pamwambapa mutha kuwona momwe minda ya Kubernetes ndi mbendera zoyambira za Docker zimayenderana.
Monga tafotokozera pamwambapa, kukumbukira kumayesedwa ndi ma byte. Kutengera Kubernetes zolemba, tikhoza kufotokoza kukumbukira ngati nambala. Kawirikawiri ndi chiwerengero, mwachitsanzo 2678 - ndiko kuti, 2678 bytes. Mukhozanso kugwiritsa ntchito suffixes G ΠΈ Gi, chinthu chachikulu ndikukumbukira kuti sali ofanana. Choyamba ndi decimal ndipo chachiwiri ndi binary. Monga chitsanzo chotchulidwa muzolemba za k8s: 128974848, 129e6, 129M, 123Mi - iwo ali pafupifupi ofanana.
Kubernetes njira limits.memory zimagwirizana ndi mbendera --memory kuchokera ku Docker. Ngati request.memory Palibe muvi wa Docker chifukwa Docker sagwiritsa ntchito gawoli. Mutha kufunsa, kodi izi ndizofunikira? Inde kufunikira. Monga ndanena kale, gawoli likufunika kwa Kubernetes. Kutengera zomwe zachokera, kube-scheduler amasankha pa node yoti akonzere Pod.
Kodi chimachitika ndi chiyani ngati muyika kukumbukira kosakwanira pa pempho?
Ngati chidebecho chafika malire a kukumbukira kofunsidwa, ndiye Pod imayikidwa mu gulu la Pods lomwe limayima pamene palibe kukumbukira kokwanira mu node.
Kodi chimachitika ndi chiyani mukakhazikitsa malire okumbukira?
Nthawi zambiri tikulimbikitsidwa kukhazikitsa mtengo womwewo request.memory ΠΈ limit.memory. Izi zimatsimikizira kuti Kubernetes sadzakonza Pod pa mfundo yomwe ili ndi kukumbukira kokwanira kuyendetsa Pod koma osakwanira kuyendetsa. Kumbukirani: Kubernetes Pod kukonzekera kumangoganizira requests.memoryndi limits.memory sichiganizira.
Ndi CPU zonse zimakhala zovuta kwambiri. Kubwerera ku chithunzi cha ubale pakati pa Kubernetes ndi Docker, mutha kuwona request.cpu zimayenderana --cpu-shares, pomwe limit.cpu zimagwirizana ndi mbendera cpus ku Docker.
CPU yomwe Kubernetes amapempha imachulukitsidwa ndi 1024, gawo la ma CPU ozungulira. Ngati mukufuna kupempha 1 maziko onse, muyenera kuwonjezera cpu: 1monga momwe tawonetsera pamwambapa.
Kupempha kernel yathunthu (gawo = 1024) sizikutanthauza kuti chidebe chanu chidzachilandira. Ngati makina anu osungira ali ndi core imodzi yokha ndipo mukuyendetsa chidebe chimodzi, ndiye kuti zotengera zonse ziyenera kugawana CPU yomwe ilipo pakati pawo. Kodi izi zimachitika bwanji? Tiyeni tione chithunzichi.
Kufunsira kwa CPU - Single Core System
Tiyerekeze kuti muli ndi zotengera zamtundu umodzi wapakati. Amayi (Kubernetes) adaphika chitumbuwa (CPU) ndipo akufuna kugawa pakati pa ana (zotengera). Ana atatu akufuna chitumbuwa chathunthu (gawo = 1024), mwana wina akufuna theka la chitumbuwa (512). Amayi akufuna kuchita chilungamo ndipo amawerengera mosavuta.
Kutengera kuwerengera, ana atatu adzalandira 28% ya pachimake, osati pachimake chonse. Mwana wachinayi adzalandira 14% ya kernel yonse, osati theka. Koma zinthu zikhala zosiyana ngati muli ndi ma multi-core system.
Kufunsira kwa CPU - Multi-Core (4) System
Mu chithunzi pamwambapa mukhoza kuona kuti ana atatu akufuna chitumbuwa chonse, ndipo mmodzi akufuna theka. Popeza amayi anaphika ma pie anayi, aliyense wa ana awo adzapeza zochuluka mmene angafunire. Mu dongosolo lamitundu yambiri, zothandizira purosesa zimagawidwa pama processor cores onse omwe amapezeka. Ngati chidebe chili chochepera pamtundu umodzi wathunthu wa CPU, chikhoza kuzigwiritsa ntchito pa 100%.
Kuwerengera pamwambapa ndi kosavuta kuti mumvetsetse momwe CPU imagawidwira pakati pa zotengera. Zachidziwikire, kupatula zotengerazo, palinso njira zina zomwe zimagwiritsanso ntchito zida za CPU. Zochita mu chidebe chimodzi sizigwira ntchito, ena amatha kugwiritsa ntchito gwero lake. CPU: "200m" zimayenderana CPU: 0,2, zomwe zikutanthauza pafupifupi 20% ya pachimake chimodzi.
Tsopano tiyeni tikambirane limit.cpu. CPU yomwe Kubernetes amaletsa imachulukitsidwa ndi 100. Zotsatira zake ndi kuchuluka kwa nthawi yomwe chidebe chimatha kugwiritsa ntchito 100 Β΅s iliyonse (cpu-period).
limit.cpu zimagwirizana ndi mbendera ya Docker --cpus. Izi ndizophatikiza zatsopano zakale --cpu-period ΠΈ --cpu-quota. Poyiyika, tikuwonetsa kuchuluka kwa zida za CPU zomwe chidebecho chingagwiritse ntchito kwambiri chisanayambe kugunda:
Kodi chimachitika ndi chiyani mukayika malire a CPU otsika kwambiri?
Popeza gwero la CPU ndi losinthika, throttling imayatsidwa.
Kodi chimachitika ndi chiyani ngati simutchula pempho la CPU?
Mofanana ndi kukumbukira, mtengo wopempha ndi wofanana ndi malire.
Kodi chimachitika ndi chiyani ngati simutchula malire a CPU?
Chidebecho chidzagwiritsa ntchito CPU yochuluka momwe ikufunikira. Ngati ndondomeko ya CPU yokhazikika (LimitRange) yatanthauzidwa mu malo a mayina, ndiye kuti malirewo amagwiritsidwanso ntchito pa chidebecho.
Kodi chimachitika ndi chiyani ngati simutchula pempho kapena malire a CPU?
Monga ndi kukumbukira, izi ndizovuta kwambiri. Wokonza ndandanda sakudziwa kuti ndi zinthu zingati zomwe chidebe chanu chimafuna, ndipo izi zitha kuyambitsa mavuto akulu pa node. Kuti mupewe izi, muyenera kukhazikitsa malire osasinthika a malo a mayina (LimitRange).
Kumbukirani: ngati mupempha CPU yochulukirapo kuposa momwe ma node angapereke, Pod sidzakonzedwa. Requests.cpu - osati mtengo wocheperako, koma mtengo wokwanira kuyambitsa Pod ndikugwira ntchito popanda zolephera. Ngati pulogalamuyo sichita mawerengedwe ovuta, njira yabwino ndikuyika request.cpu <= 1 ndi kuyambitsa zofanizira zambiri momwe zingafunikire.