Kubernetes maitiro akanaka. Kugadzira zvikumbiro zvezvishandiso uye miganhu

Kubernetes maitiro akanaka. Kugadzira midziyo midiki
Kubernetes maitiro akanaka. Sangano reKubernetes rine namespace
Kubernetes maitiro akanaka. Kusimbisa Kubernetes Kurarama neKugadzirira uye Kurarama Miedzo

Kune yega yega Kubernetes sosi, unogona kugadzirisa maviri marudzi ezvinodiwa - Zvikumbiro uye Miganhu. Yekutanga inotsanangura zvidiki zvinodiwa pakuwanikwa kwemahara node zviwanikwa zvinodiwa kuti umhanye mudziyo kana pod, yechipiri inoganhura zvakanyanya zviwanikwa zviripo kumudziyo.

Kana Kubernetes achironga mapods, zvakakosha kuti midziyo ine zviwanikwa zvakakwana kuti ishande nemazvo. Kana iwe uri kuronga kuendesa yakakura application pane resource-inomanikidzirwa node, zvinogoneka kuti haishande nekuti iyo node iri kuderera mundangariro kana kupera simba reCPU. Muchikamu chino, tichatarisa maitiro aungaita kuperevedza kwemagetsi ekombuta uchishandisa zvikumbiro zvezviwanikwa uye miganhu.

Zvikumbiro uye Miganho nzira dzinoshandiswa naKubernetes kubata zviwanikwa zvakaita seCPU uye ndangariro. Zvikumbiro ndizvo zvinoita kuti mudziyo ugamuchire sosi yakakumbirwa. Kana mudziyo ukakumbira sosi, Kubernetes anongozvironga pane node inogona kupa. Miganhu inodzora kuti zviwanikwa zvakakumbirwa nemudziyo hazvimbofa zvakapfuura imwe kukosha.

Kubernetes maitiro akanaka. Kugadzira zvikumbiro zvezvishandiso uye miganhu

Chigadziko chinogona kungowedzera simba rayo rekombuta kusvika kune imwe muganhu, mushure mezvo zvichave zvishoma. Ngationei kuti zvinoshanda sei. Saka, kune marudzi maviri ezviwanikwa - processor uye memory. Iyo Kubernetes scheduler inoshandisa data nezve izvi zviwanikwa kufunga kwekumhanyisa mapods ako. Iyo yakajairwa zviwanikwa zviwanikwa zvepodhi zvinoita seizvi.

Kubernetes maitiro akanaka. Kugadzira zvikumbiro zvezvishandiso uye miganhu

Imwe neimwe mudziyo mupodhi inogona kuseta yayo mibvunzo uye miganhu, zvese zvinowedzera. processor zviwanikwa zvinotsanangurwa mumillicores. Kana mudziyo wako uchida macores maviri akazara kuti umhanye, unoisa kukosha ku2000m. Kana mudziyo uchingoda simba re 1/4 yepakati, kukosha kuchave 250m. Ramba uchifunga kuti kana iwe ukagovera kukosha kweCPU yakakura kupfuura huwandu hwemacores eiyo node hombe, pod yako haizorongerwa kutanga zvachose. Mamiriro akafanana achaitika kana iwe uine Pod inoda macores mana, uye iyo Kubernetes cluster ine maviri chete makuru chaiwo emuchina.

Kunze kwekunge application yako yakarongedzerwa kutora mukana weakawanda cores (zvirongwa zvakaita seakaomarara sainzi komputa uye dhatabhesi mashandiro anouya mupfungwa), saka yakanakisa tsika ndeyekuseta CPU Zvikumbiro kune 1 kana kudzika uye wobva wamhanyisa zvimwe replicas kune scalability. Iyi mhinduro ichapa iyo sisitimu kuchinjika kukuru uye kuvimbika.

Kana zvasvika kune zvipimo zveCPU, zvinhu zvinowedzera kunakidza sezvo zvichionekwa sechinhu chinomanikidza. Kana application yako ikatanga kusvika kune processor simba remuganho, Kubernetes ichatanga kudzikisira mudziyo wako uchishandisa CPU Throttling - kuderedza processor frequency. Izvi zvinoreva kuti iyo CPU ichave yakatsikirirwa, ichipa iyo application inogona kuita zvakanyanya kuipa, asi maitiro acho haagumiswe kana kubviswa.

Memory resources inotsanangurwa mumabhaiti. Kazhinji kukosha kwezvirongwa kunoyerwa mu mebibytes Mib, asi iwe unogona kuseta chero kukosha, kubva ku bytes kusvika petabytes. Mamiriro akafanana anoshanda pano senge neCPU - kana iwe ukaisa chikumbiro chehuwandu hwekurangarira hukuru kupfuura huwandu hwendangariro pane ako node, iyo pod haizorongedzerwe kuita. Asi kusiyana neCPU zviwanikwa, ndangariro haina kumanikidzwa nekuti hapana nzira yekudzikamisa kushandiswa kwayo. Naizvozvo, kuurayiwa kwemudziyo kunomiswa nekukurumidza kana kwapfuura ndangariro yakagoverwa kwairi.

Kubernetes maitiro akanaka. Kugadzira zvikumbiro zvezvishandiso uye miganhu

Zvakakosha kuyeuka kuti haugone kugadzirisa zvikumbiro zvinodarika zviwanikwa zvaunokwanisa kupa. Akagovaniswa zviwanikwa zvemakina eGKE chaiwo anogona kuwanikwa mune zvinongedzo pazasi vhidhiyo iyi.

Munyika yakanaka, zvigadziriso zvemudziyo zvingave zvakakwana kuchengetedza mafambiro ebasa achimhanya zvakanaka. Asi iyo nyika chaiyo haina kudaro, vanhu vanogona kukanganwa nyore kugadzirisa kushandiswa kwezviwanikwa, kana hackers vachaisa zvikumbiro uye zvirambidzo zvinodarika kugona chaiko kwezvivakwa. Kuti udzivise mamiriro akadai kubva kuitika, unogona kugadzirisa ResourceQuota uye LimitRange zviwanikwa zviwanikwa.

Kana nzvimbo yezita yagadzirwa, inogona kuvharwa uchishandisa quotas. Semuyenzaniso, kana iwe uine prod uye dev namespaces, iyo pateni ndeyekuti hapana maquotas ekugadzira zvachose uye akanyanya kuomarara budiriro quotas. Izvi zvinobvumira prod, muchiitiko chekukwira kwakanyanya kwetraffic, kutora iyo yese iripo sosi, ichivharira zvachose dev.

The resource quota inogona kutaridzika seizvi. Mumuenzaniso uyu pane 4 zvikamu - izvi ndizvo 4 pasi mitsetse yekodhi.

Kubernetes maitiro akanaka. Kugadzira zvikumbiro zvezvishandiso uye miganhu

Ngatitarisei pane imwe neimwe yadzo. Zvikumbiro.cpu ndiyo nhamba yepamusoro yezvikumbiro zvakasanganiswa zveCPU zvinogona kubva mumidziyo yese iri munzvimbo yezita. Mumuenzaniso uyu, unogona kuva nemacontainer makumi mashanu ane zvikumbiro zve 50m, zvigubhu zvishanu zvine zvikumbiro zve 10m, kana mudziyo mumwe chete une zvikumbiro zve 100m. Chero bedzi nhamba yese yezvikumbiro.cpu yenzvimbo yakapihwa zita iri pasi pe500m, zvese zvichanaka.

Memory yakakumbirwa zvikumbiro.memory ndiyo yakanyanya kuwanda yezvakasanganiswa zvikumbiro zvendangariro zvinogona kuve nemidziyo yese munzvimbo yezita. Sezvakaitika kare, unogona kuva ne50 2 mib containers, shanu 20 mib containers, kana imwechete 100 mib container chero bedzi huwandu hwendangariro hunokumbirwa munzvimbo yezita huri pasi pe100 mebibytes.

Limits.cpu ndiyo yakanyanya kusanganiswa huwandu hweCPU simba inogona kushandiswa nemidziyo yese munzvimbo yezita. Tinogona kufunga izvi semuganho wekukumbira simba re processor.

Chekupedzisira, limits.memory ndiyo yakawandisa yendangariro yakagovaniswa inogona kushandiswa nemidziyo yese munzvimbo yezita. Uyu ndiwo muganho pane zvese zvikumbiro zvendangariro.
Saka, nekusarudzika, midziyo muKubernetes cluster inomhanya ine isina muganho compute zviwanikwa. Nemaresource quotas, vatariri vemapoka vanogona kudzikamisa mashandisirwo ezviwanikwa uye kugadzira zviwanikwa zvichienderana nenzvimbo yezita. Munzvimbo yezita, podhi kana mudziyo unogona kupedza simba rakawanda reCPU uye ndangariro sekutemerwa neiyo namespace resource quota. Nekudaro, pane kunetsekana kuti imwe podhi kana mudziyo unogona kutonga zvese zviripo zviwanikwa. Kudzivirira mamiriro aya, muganho unoshandiswa - mutemo wekudzikamisa kugoverwa kwezviwanikwa (yepods kana midziyo) munzvimbo yezita.

The limit range inopa zvirambidzo zvinogona:

  • Ita shuwa kushoma uye yakanyanya kushandiswa kwekombuta zviwanikwa kune yega module kana mudziyo uri munzvimbo yezita;
  • simbisa zvishoma uye zvakanyanya Starage Chikumbiro chekuchengetedza zvikumbiro zvePersistentVolumeClaim yega yega munzvimbo yezita;
  • simbisa hukama pakati peChikumbiro uye Muganho wechishandiso munzvimbo yezita;
  • set default Zvikumbiro / Miganhu yekombuta zviwanikwa munzvimbo yezita uye otozvipinza mumidziyo panguva yekumhanya.

Nenzira iyi iwe unogona kugadzira muganhu wepakati munzvimbo yako yezita. Kusiyana nekota, iyo inoshanda kune yese namespace, Limit Range inoshandiswa kune yega midziyo. Izvi zvinogona kudzivirira vashandisi kubva kugadzira zvidiki zvakanyanya kana, zvinopesana, midziyo mihombe mukati mezita rezita. Iyo Limit Range inogona kutaridzika seizvi.

Kubernetes maitiro akanaka. Kugadzira zvikumbiro zvezvishandiso uye miganhu

Sezvakaitika kare, 4 zvikamu zvinogona kusiyaniswa pano. Ngatitarisei pane imwe neimwe.
Chikamu chekusarudzika chinoisa miganho yakasarudzika yemudziyo uri mupodhi. Kana iwe ukaisa aya ma values ​​kune yakanyanyisa renji, saka chero midziyo isina kuisirwa tsika idzi zvakajeka ichatevera iyo default values.

Icho chikamu chekukumbira chisingaperi chinogadzirisa zvikumbiro zvechigadziro chemudziyo uri mupodhi. Zvekare, kana iwe ukaisa aya hunhu kune yakanyanyisa renji, saka chero midziyo isinganyatso gadzirisa izvi sarudzo ichave yakasarudzika kune aya maitiro.

Iyo max chikamu inotsanangura iyo yakanyanya miganho inogona kusetwa yegaba riri mupodhi. Hwaro muchikamu chekusarudzika uye muganho wemidziyo haugone kusetwa pamusoro pemuganho uyu. Zvakakosha kucherechedza kuti kana kukosha kwakaiswa kune max uye pasina chikamu chekupedzisira, ipapo kukosha kwepamusoro kunova kukosha kwekutanga.

Chikamu chemin chinotsanangura zvikumbiro zvishoma zvinogona kusetwa mugaba riri mupodhi. Nekudaro, iwo kukosha muchikamu cheiyo default uye mibvunzo yemudziyo haigone kusetwa pazasi pemuganhu uyu.

Zvekare, zvakakosha kuziva kuti kana kukosha uku kwakaiswa, kusarudzika hakusi, saka iyo shoma kukosha inova iyo default kukurumidza.

Izvi zvikumbiro zvekushandisa zvinozopedzisira zvashandiswa neKubernetes scheduler kuita mabasa ako. Kuti iwe ugadzirise midziyo yako nemazvo, zvakakosha kuti unzwisise kuti inoshanda sei. Ngatiti iwe unoda kumhanyisa akawanda mapodhi musumbu rako. Tichifunga kuti zvirevo zvepod zvinoshanda, iyo Kubernetes hurongwa ichashandisa kutenderera robin kuyera kusarudza node yekumhanyisa basa.

Kubernetes maitiro akanaka. Kugadzira zvikumbiro zvezvishandiso uye miganhu

Kubernetes inotarisa kana Node 1 ine zviwanikwa zvakakwana zvekuzadzisa zvikumbiro kubva kumidziyo yepod, uye kana ikasadaro, inoenda kune inotevera node. Kana pasina imwe yemanodhi muhurongwa inokwanisa kugutsa zvikumbiro, mapodhi anozopinda muPending state. Uchishandisa Google Kubernetes enjini maficha akadai node autoscaling, GKE inogona kuona otomatiki mamiriro ekumirira uye kugadzira akati wandei mamwe manodhi.

Kana iwe ukazopera simba renode, autoscaling inoderedza huwandu hwemanodhi kuti uchengetedze mari. Ichi ndicho chikonzero Kubernetes inoronga pods zvichienderana nezvikumbiro. Nekudaro, muganho unogona kunge wakakwira kupfuura zvikumbiro, uye mune dzimwe nguva node inogona kupera zviwanikwa. Isu tinodaidza nyika iyi overcommitment state.

Kubernetes maitiro akanaka. Kugadzira zvikumbiro zvezvishandiso uye miganhu

Sezvandakataura, kana zvasvika kuCPU, Kubernetes ichatanga kudzikamisa mapodhi. Imwe neimwe pod inogashira yakawanda sezvayakakumbira, asi kana ikasasvika painogumira, throttling inotanga kushanda.

Kana zvasvika kune zviwanikwa zvendangariro, Kubernetes anomanikidzwa kuita sarudzo dzekuti ndedzipi pods yekudzima uye yekuchengeta kusvika wasunungura zviwanikwa zvehurongwa kana iyo system yese ichaparara.

Ngatimbofungidzira mamiriro ezvinhu apo iwe une muchina uri kupera mundangariro - Kubernetes aizozvibata sei izvozvo?

Kubernetes ichatsvaga mapods ari kushandisa zviwanikwa zvakawanda kupfuura zvavakakumbira. Saka kana midziyo yako isina maRequests, zvinoreva kuti vari kutadza kushandisa zvakawandisa kupfuura zvavakakumbira, nekuti havana chavakakumbira zvachose! Midziyo yakadaro inova vanyori vekutanga kuvharwa. Vanotevera vakwikwidzi macontainer anenge agutsa zvikumbiro zvavo zvese asi achiri pasi pemuganho mukuru.

Saka kana Kubernetes ikawana mapodhi akati wandei akapfuura maparamendi ekukumbira, inoarongedza nekutanga uye yozobvisa iyo yakaderera podhi podhi. Kana mapodhi ese aine chinhu chakafanana, ipapo Kubernetes achagumisa iwo mapodhi akadarika zvikumbiro zvavo kupfuura mamwe mapodhi.

Muzviitiko zvisingawanzoitiki, Kubernetes anogona kubvisa mapodhi achiri mukati mechikamu chezvikumbiro zvavo. Izvi zvinogona kuitika kana zvakakosha system zvikamu senge Kubelet mumiriri kana Docker atanga kushandisa zviwanikwa zvakawanda pane izvo zvakachengeterwa ivo.
Saka, mumatanho ekutanga emakambani madiki, Kubernetes cluster inogona kushanda zvakanaka pasina kuseta zvikumbiro uye zvirambidzo, asi sezvo zvikwata zvako nemapurojekiti anotanga kukura muhukuru, unomhanyisa njodzi yekusangana nematambudziko munzvimbo ino. Kuwedzera mibvunzo uye zvipingaidzo kumamodule ako uye nzvimbo dzemazita kunoda kushoma kuwedzeredza uye zvinogona kuchengetedza zvakawanda zvinonetsa.

Kubernetes maitiro akanaka. Kudzima kwakaringana Kugumisa

Dzimwe ads πŸ™‚

Ndinokutendai nekugara nesu. Unoda zvinyorwa zvedu here? Unoda kuona zvimwe zvinonakidza zvemukati? Titsigire nekuisa odha kana kukurudzira kushamwari, Cloud VPS yevagadziri kubva kumadhora 4.99, yakasarudzika analogue yekupinda-level maseva, iyo yakagadzirwa nesu kuti iwe: Chokwadi chese nezveVPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps kubva pamadhora makumi maviri kana kugovera sevha? (inowanikwa neRAID1 uye RAID10, kusvika ku24 cores uye kusvika ku40GB DDR4).

Dell R730xd 2 nguva yakachipa muEquinix Tier IV data center muAmsterdam? Chete pano 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV kubva $199 muNetherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - kubva pamadhora makumi mapfumbamwe nemapfumbamwe! Verenga nezve Nzira yekuvaka Infrastructure Corp. kirasi nekushandiswa kweDell R730xd E5-2650 v4 maseva anokosha 9000 euros penny?

Source: www.habr.com

Voeg