Kubernetes machitidwe abwino. Kukhazikitsa zopempha zothandizira ndi malire

Kubernetes machitidwe abwino. Kupanga zotengera zazing'ono
Kubernetes machitidwe abwino. Bungwe la Kubernetes lomwe lili ndi dzina
Kubernetes machitidwe abwino. Kutsimikizira Kubernetes Liveness ndi Kukonzekera ndi Kuyesa Moyo

Pachinthu chilichonse cha Kubernetes, mutha kukhazikitsa mitundu iwiri ya zofunika - Zopempha ndi Malire. Yoyamba ikufotokoza zofunikira zochepa za kupezeka kwa zida zaulere za node zofunika kuyendetsa chidebe kapena pod, chachiwiri chimachepetsa kwambiri zinthu zomwe zingapezeke ku chidebecho.

Kubernetes akamakonza ma pod, ndikofunikira kwambiri kuti zotengerazo zikhale ndi zinthu zokwanira kuti zigwire bwino ntchito. Ngati mukukonzekera kuyika pulogalamu yayikulu pamfundo yolephereka, ndizotheka kuti sizingayende chifukwa node ikugwira ntchito pokumbukira kapena kutha mphamvu ya CPU. M'nkhaniyi, tiwona momwe mungathetsere kuchepa kwa magetsi pamakompyuta pogwiritsa ntchito zopempha ndi malire.

Zopempha ndi Malire ndi njira zomwe Kubernetes amagwiritsa ntchito kuyang'anira zinthu monga CPU ndi kukumbukira. Zopempha ndizomwe zimatsimikizira kuti chotengeracho chikulandira zomwe mwapempha. Ngati chidebe chikapempha chithandizo, Kubernetes amangochikonza pa node yomwe ingapereke. Malire amawongolera kuti zinthu zomwe zafunsidwa ndi kontena sizidzapitilira mtengo wake.

Kubernetes machitidwe abwino. Kukhazikitsa zopempha zothandizira ndi malire

Chidebe chimangowonjezera mphamvu zake zamakompyuta mpaka malire ena, pambuyo pake chizikhala chochepa. Tiyeni tiwone momwe zimagwirira ntchito. Choncho, pali mitundu iwiri ya chuma - purosesa ndi kukumbukira. Wokonza Kubernetes amagwiritsa ntchito zambiri zazinthu izi kuti adziwe komwe mungayendetse ma pod anu. Zomwe zimagwiritsidwa ntchito pa pod zimawoneka ngati izi.

Kubernetes machitidwe abwino. Kukhazikitsa zopempha zothandizira ndi malire

Chidebe chilichonse mu pod chikhoza kukhazikitsa mafunso ake ndi malire, zonse ndizowonjezera. Zida zama processor zimatanthauzidwa mu millicores. Ngati chidebe chanu chikufunika ma cores awiri athunthu kuti muyendetse, mumayika mtengo wake kukhala 2000m. Ngati chidebecho chimangofuna mphamvu ya 1/4 ya pachimake, mtengo udzakhala 250m. Kumbukirani kuti ngati mupereka mtengo wa CPU wokulirapo kuposa kuchuluka kwa ma cores a node yayikulu kwambiri, pod yanu sidzakonzekera konse. Zofananazi zidzachitika ngati muli ndi Pod yomwe ikufunika ma cores anayi, ndipo gulu la Kubernetes lili ndi makina awiri okha.

Pokhapokha ngati pulogalamu yanu idapangidwa kuti igwiritse ntchito ma cores angapo (mapulogalamu monga makompyuta ovuta asayansi ndi ma database amabwera m'maganizo), ndiye kuti njira yabwino ndikukhazikitsa Zopempha za CPU kukhala 1 kapena kutsitsa ndikuyendetsa zofananira zambiri kuti scalability. Yankholi lidzapatsa dongosololi kusinthasintha komanso kudalirika.

Zikafika pakuchepetsa kwa CPU, zinthu zimakhala zosangalatsa kwambiri chifukwa zimawonedwa ngati gwero lokhazikika. Ngati pulogalamu yanu iyamba kuyandikira malire a purosesa, Kubernetes ayamba kuchepetsa chidebe chanu pogwiritsa ntchito CPU Throttling - kuchepetsa kuchuluka kwa purosesa. Izi zikutanthauza kuti CPU idzagwedezeka mwachisawawa, ndikupangitsa kuti ntchitoyo ikhale yoipitsitsa, koma ntchitoyi siidzatha kapena kuchotsedwa.

Zida zokumbukira zimatanthauzidwa mwa ma byte. Nthawi zambiri mtengo wamakonzedwe umayesedwa mu mebibytes Mib, koma mutha kuyika mtengo uliwonse, kuyambira ma byte mpaka ma petabytes. Zomwezo zikugwiranso ntchito pano monga ndi CPU - ngati muyika pempho la kukumbukira kukumbukira kwakukulu kuposa kuchuluka kwa kukumbukira pamfundo zanu, podyo sidzakonzekera kuchita. Koma mosiyana ndi zida za CPU, kukumbukira sikukanikizidwa chifukwa palibe njira yochepetsera kugwiritsa ntchito kwake. Chifukwa chake, kuchitidwa kwa chidebecho kuyimitsidwa mukangodutsa kukumbukira komwe adapatsidwa.

Kubernetes machitidwe abwino. Kukhazikitsa zopempha zothandizira ndi malire

Ndikofunika kukumbukira kuti simungathe kukhazikitsa zopempha zomwe zimaposa zomwe node zanu zingapereke. Zogawana zomwe zidagawana pamakina apakompyuta a GKE zitha kupezeka pamalumikizidwe omwe ali pansipa vidiyoyi.

M'dziko labwino, zoikidwiratu za chidebecho zitha kukhala zokwanira kuti ntchito ziyende bwino. Koma dziko lenileni silili choncho, anthu amatha kuyiwala mosavuta kukonza kugwiritsa ntchito zinthu, kapena owononga adzakhazikitsa zopempha ndi zoletsa zomwe zimaposa mphamvu zenizeni za zomangamanga. Kuti izi zisachitike, mutha kukhazikitsa ResourceQuota ndi LimitRange resource quotas.

Malo a mayina akapangidwa, amatha kutsekedwa pogwiritsa ntchito ma quotas. Mwachitsanzo, ngati muli ndi ma prod ndi dev namespaces, chitsanzo chake ndi chakuti palibe magawo opangira komanso magawo okhwima okhwima. Izi zimathandiza kuti prod, pakachitika kuchulukana kwa magalimoto, kuti atenge chilichonse chomwe chilipo, ndikutsekereza dev.

Gawo lazachuma litha kuwoneka chonchi. Mu chitsanzo ichi pali magawo 4 - awa ndi mizere 4 yapansi ya code.

Kubernetes machitidwe abwino. Kukhazikitsa zopempha zothandizira ndi malire

Tiyeni tione aliyense wa iwo. Requests.cpu ndiye kuchuluka kwa zopempha za CPU zophatikizidwa zomwe zitha kubwera kuchokera kuzinthu zonse zomwe zili m'malo a mayina. Muchitsanzo ichi, mutha kukhala ndi zotengera 50 zokhala ndi zopempha za 10m, zotengera zisanu zofunsira 100m, kapena chidebe chimodzi chokha chokhala ndi zopempha 500m. Malingana ngati chiwerengero chonse cha requests.cpu cha malo opatsidwa ndi osakwana 500m, zonse zikhala bwino.

Memory requested requests.memory ndiye kuchuluka kwa zopempha zophatikizika zomwe zida zonse zomwe zili m'malo a mayina zitha kukhala nazo. Monga momwe zinalili m'mbuyomu, mutha kukhala ndi zotengera 50 2 mib, zotengera zisanu za 20 mib, kapena chidebe chimodzi cha 100 mib bola kuchuluka kwa kukumbukira komwe kufunsidwa mumalo a mayina sikukwana ma mebibytes 100.

Limits.cpu ndiye kuchuluka kwamphamvu kophatikizana kwa CPU komwe zida zonse zomwe zili m'malo a mayina zitha kugwiritsa ntchito. Titha kuganiza kuti izi ndi malire a zopempha zamphamvu za purosesa.

Pomaliza, limits.memory ndiye kuchuluka kwa kukumbukira komwe kumagawana komwe zida zonse zomwe zili m'malo a mayina zitha kugwiritsa ntchito. Awa ndi malire pazopempha zonse zokumbukira.
Chifukwa chake, mwachikhazikitso, zotengera mugulu la Kubernetes zimayendetsedwa ndi zinthu zopanda malire. Ndi magawo azinthu, oyang'anira magulu amatha kuchepetsa kugwiritsa ntchito zinthu ndi kupanga zida potengera malo a mayina. M'malo a mayina, poto kapena chidebe chitha kudya mphamvu zambiri za CPU ndi kukumbukira monga momwe zimakhalira ndi gawo lazothandizira. Komabe, pali nkhawa kuti poto kapena chidebe chimodzi chikhoza kulamulira zonse zomwe zilipo. Pofuna kupewa izi, malire amagwiritsidwa ntchito - ndondomeko yochepetsera kugawidwa kwazinthu (kwa pods kapena makontena) mu malo a mayina.

Malire osiyanasiyana amapereka zoletsa zomwe zingathe:

  • Onetsetsani kuti mukugwiritsa ntchito zochepa komanso zochulukirapo zamakompyuta pagawo lililonse kapena chidebe chomwe chili m'malo a mayina;
  • khazikitsani zopempha zosungirako zocheperako komanso zochulukirapo za Starage Request pa PersistentVolumeClaim iliyonse m'malo a mayina;
  • khazikitsani mgwirizano pakati pa Pempho ndi Malire azinthu zomwe zili mumalo a mayina;
  • khazikitsani Zopempha / Malire osakhazikika kuti muwerenge zinthu zomwe zili m'malo a mayina ndikuzilowetsa m'makontena panthawi yothamanga.

Mwanjira iyi mutha kupanga malire mumalo anu a mayina. Mosiyana ndi gawo, lomwe limakhudza malo onse a mayina, Limit Range imagwiritsidwa ntchito pazotengera zilizonse. Izi zitha kulepheretsa ogwiritsa ntchito kupanga zing'onozing'ono kwambiri kapena, mosiyana, zotengera zazikulu mkati mwa dzina. Limit Range ikhoza kuwoneka chonchi.

Kubernetes machitidwe abwino. Kukhazikitsa zopempha zothandizira ndi malire

Monga momwe zinalili m'mbuyomu, zigawo 4 zitha kusiyanitsa apa. Tiyeni tione chilichonse.
Gawo losakhazikika limakhazikitsa malire a chidebe chomwe chili mu pod. Ngati muyika zikhalidwe izi mopitilira muyeso, ndiye kuti zotengera zilizonse zomwe sizinakhazikitsidwe momveka bwino zimatsata zikhalidwe zosasinthika.

Chigawo chopempha chosasinthika chimapanga zopempha zosasinthika za chidebe chomwe chili mu pod. Apanso, ngati muyika zikhalidwe izi mopitilira muyeso, ndiye kuti zotengera zilizonse zomwe sizikuyika momveka bwino zosankhazi zidzasintha pazotsatira izi.

Gawo lalikulu limatchula malire apamwamba omwe angakhazikitsidwe pa chidebe chomwe chili mu pod. Miyezo mu gawo losakhazikika ndi malire a zotengera sangathe kukhazikitsidwa kupitilira malire awa. Ndikofunika kuzindikira kuti ngati mtengo wayikidwa ku max ndipo palibe gawo losasinthika, ndiye kuti mtengo wapamwamba umakhala wokhazikika.

The min section imatchula zopempha zochepa zomwe zingakhazikitsidwe pa chidebe mu pod. Komabe, zikhalidwe zomwe zili mugawo lokhazikika ndi mafunso a chidebecho sangayikidwe pansi pa malire awa.

Apanso, ndikofunikira kuzindikira kuti ngati mtengowu wakhazikitsidwa, kusakhazikika sikuli, ndiye kuti mtengo wocheperako umakhala wokhazikika.

Zopempha izi zimagwiritsidwa ntchito ndi Kubernetes scheduler kuti akwaniritse ntchito zanu. Kuti mukonze zotengera zanu moyenera, ndikofunikira kumvetsetsa momwe zimagwirira ntchito. Tiyerekeze kuti mukufuna kuyendetsa ma pod angapo mugulu lanu. Pongoganiza kuti zolemba za pod ndizovomerezeka, ndondomeko ya Kubernetes idzagwiritsa ntchito kusinthasintha kwa robin kuti musankhe node yoyendetsa ntchitoyo.

Kubernetes machitidwe abwino. Kukhazikitsa zopempha zothandizira ndi malire

Kubernetes adzayang'ana ngati Node 1 ili ndi zothandizira zokwanira kuti akwaniritse zopempha kuchokera ku zotengera za pod, ndipo ngati sizitero, zidzapita kumalo otsatira. Ngati palibe node m'dongosololi lomwe lingathe kukwaniritsa zopempha, ma pod apita ku Pending state. Pogwiritsa ntchito injini za Google Kubernetes monga node autoscaling, GKE imatha kuzindikira nthawi yodikirira ndikupanga ma node ena angapo.

Mukatha mphamvu ya node, autoscaling idzachepetsa kuchuluka kwa node kuti mupulumutse ndalama. Ichi ndichifukwa chake Kubernetes amakonza ma pod kutengera zopempha. Komabe, malirewo akhoza kukhala apamwamba kuposa zopempha, ndipo nthawi zina node ikhoza kutha kwenikweni. Izi timazitcha dziko overcommitment state.

Kubernetes machitidwe abwino. Kukhazikitsa zopempha zothandizira ndi malire

Monga ndanenera, zikafika ku CPU, Kubernetes ayamba kuchepetsa ma pod. Poda iliyonse ilandila monga momwe idafunira, koma ngati sichifika malire, kugunda kumayamba kugwira ntchito.

Zikafika pazinthu zokumbukira, Kubernetes amakakamizika kupanga zisankho za pods kuti azichotsa ndi zomwe ayenera kusunga mpaka mutamasula zida zamakina kapena dongosolo lonselo liwonongeka.

Tiyeni tiyerekeze zomwe muli ndi makina omwe akutha kukumbukira - Kubernetes angathane nazo bwanji?

Kubernetes ayang'ana ma pod omwe akugwiritsa ntchito zinthu zambiri kuposa zomwe adapempha. Chifukwa chake ngati zotengera zanu zilibe Zopempha konse, zikutanthauza kuti akungogwiritsa ntchito zambiri kuposa zomwe adapempha, chifukwa sanapemphe kalikonse! Zotengera zotere zimakhala zofunika kwambiri kuzimitsa. Otsatirawo ndi makontena omwe akwaniritsa zopempha zawo zonse koma akadali ocheperapo.

Chifukwa chake ngati Kubernetes apeza ma pod angapo omwe apitilira zomwe adapempha, amawasankha mwachitsogozo kenako ndikuchotsa zoyambira zotsika kwambiri. Ngati ma pod onse ali ndi zofunikira zofanana, ndiye kuti Kubernetes adzathetsa ma pods omwe amaposa zopempha zawo kuposa ma pod ena.

Nthawi zina, Kubernetes amatha kutaya ma pod omwe akadali mkati mwazopempha zawo. Izi zikhoza kuchitika pamene zigawo zofunikira za dongosolo monga Kubelet wothandizira kapena Docker zimayamba kudya zinthu zambiri kuposa zomwe zinasungidwa kwa iwo.
Chifukwa chake, koyambirira kwamakampani ang'onoang'ono, gulu la Kubernetes limatha kugwira bwino ntchito popanda kukhazikitsa zopempha ndi zoletsa, koma magulu anu ndi mapulojekiti anu akayamba kukula, mumakhala pachiwopsezo chokumana ndi mavuto mdera lino. Kuonjezera mafunso ndi zolepheretsa ku ma modules anu ndi malo a mayina kumafuna khama lowonjezera pang'ono ndipo kungapulumutse zovuta zambiri.

Kubernetes machitidwe abwino. Kuyimitsa koyenera Kuyimitsa

Zotsatsa zina πŸ™‚

Zikomo chifukwa chokhala nafe. Kodi mumakonda zolemba zathu? Mukufuna kuwona zambiri zosangalatsa? Tithandizeni potipatsa oda kapena kulimbikitsa anzathu, mtambo VPS kwa opanga kuchokera ku $ 4.99, ma analogi apadera a ma seva olowera, omwe adakupangirani inu: Chowonadi chonse chokhudza VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps kuchokera $19 kapena momwe mungagawire seva? (ikupezeka ndi RAID1 ndi RAID10, mpaka 24 cores mpaka 40GB DDR4).

Dell R730xd 2x yotsika mtengo ku Equinix Tier IV data center ku Amsterdam? Pokhapokha 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV kuchokera $199 ku Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - kuchokera $99! Werengani za Momwe mungamangire Infrastructure Corp. kalasi pogwiritsa ntchito ma seva a Dell R730xd E5-2650 v4 ofunika ma euro 9000 pa khobiri?

Source: www.habr.com

Kuwonjezera ndemanga