Ho tlatsa masoba sehlopheng sa Kubernetes. Tlaleha le ho ngola ho tsoa ho DevOpsConf

Pavel Selivanov, Southbridge solutions architect le mosuoe oa Slurm, o ile a fana ka tlhahiso ho DevOpsConf 2019. Puo ena ke karolo ea e 'ngoe ea lihlooho tsa thuto e tebileng ea Kubernetes "Slurm Mega".

Slurm Basic: Kenyelletso ea Kubernetes e etsahala Moscow ka November 18-20.
Slurm Mega: ho sheba ka tlas'a hood ea Kubernetes - Moscow, November 22-24.
Slurm Online: lithuto tse peli tsa Kubernetes e fumaneha kamehla.

Ka tlase ho sehiloeng ho na le sengoloa sa tlaleho.

Lumelang motšehare, basebetsi-'moho le ba nang le kutloelo-bohloko le bona. Kajeno ke tla bua ka polokeho.

Kea bona hore ho na le balebeli ba bangata ka holong kajeno. Ke kopa tšoarelo ho uena esale pele haeba ke sebelisa mantsoe a tsoang lefats'eng la ts'ireletso eseng joalo ka tloaelo ho uena.

Ho ile ha etsahala hore hoo e ka bang likhoeling tse tšeletseng tse fetileng ke ile ka kopana le sehlopha se le seng sa sechaba sa Kubernetes. Sechaba se bolela hore ho na le palo ea nth ea libaka tsa mabitso; libakeng tsena tsa mabitso ho na le basebelisi ba ikhethileng sebakeng sa bona sa mabitso. Basebelisi bana kaofela ke ba lik'hamphani tse fapaneng. Hantle, ho ne ho nahanoa hore sehlopha sena se lokela ho sebelisoa e le CDN. Ke hore, ba u fa sehlopha, ba u fa mosebelisi moo, u ea moo sebakeng sa hau sa mabitso, u tsamaisa li-fronts tsa hau.

Khampani ea ka ea pele e ile ea leka ho rekisa tšebeletso e joalo. 'Me ke ile ka kōptjoa ho phunya sehlopha ho bona hore na tharollo ena e nepahetse kapa che.

Ke fihlile sehlopheng sena. Ke ile ka fuoa litokelo tse fokolang, sebaka se lekanyelitsoeng sa mabitso. Mathaka a moo a ne a utloisisa hore na tšireletseho ke eng. Ba bala ka taolo ea phihlello e thehiloeng ho Role-based (RBAC) ho Kubernetes - mme ba e sotha hore ke se khone ho hlahisa li-pods ka thoko ho li-deployments. Ha ke hopole bothata boo ke neng ke leka ho bo rarolla ka ho qala pod ntle le ho romelloa, empa ke ne ke hlile ke batla ho qala pod feela. Ka lehlohonolo, ke nkile qeto ea ho bona hore na ke na le litokelo life sehlopheng, seo nka se etsang, seo ke sa khoneng ho se etsa, le seo ba se entseng moo. Ka nako e ts'oanang, ke tla u joetsa seo ba se lokiselitseng hampe ho RBAC.

Ho ile ha etsahala hore ka mor'a metsotso e 'meli ke fumane admin ho sehlopha sa bona, ka sheba libaka tsohle tsa boahelani tsa mabitso, ka bona moo ho nang le likarolo tsa tlhahiso ea lik'hamphani tse seng li rekile tšebeletso le ho sebelisoa. Ke ne ke sitoa ho ithiba ho ea ka pele ho motho e mong le ho beha mantsoe a rohakang leqepheng la sehlooho.

Ke tla u bolella ka mehlala hore na ke entse sena joang le hore na u ka itšireletsa joang ho sena.

Empa pele, e re ke itsebise. Lebitso la ka ke Pavel Selivanov. Ke setsebi sa meralo Southbridge. Ke utloisisa Kubernetes, DevOps le mefuta eohle ea lintho tse majabajaba. 'Na le lienjiniere tsa Southbridge re haha ​​​​tsena tsohle, 'me ke ntse ke buisana.

Ntle le mesebetsi ea rona ea mantlha, haufinyane re thakhotse merero e bitsoang Slurms. Re leka ho tlisa bokhoni ba rona ba ho sebetsa le Kubernetes hanyane ho bongata, ho ruta batho ba bang ho sebetsa le K8s.

Ke tla bua ka eng kajeno? Sehlooho sa tlaleho se hlakile - mabapi le ts'ireletso ea sehlopha sa Kubernetes. Empa ke batla ho bolela hang-hang hore sehlooho sena se seholo haholo - ka hona ke batla ho hlakisa hang-hang seo ke ke keng ka bua ka sona. Nke ke ka bua ka mantsoe a hackneyed a seng a sebelisitsoe ka makhetlo a lekholo ho Internet. Mefuta eohle ea RBAC le litifikeiti.

Ke tla bua ka se nkutloisang bohloko 'na le basebetsi-'moho le 'na ka ts'ireletso sehlopheng sa Kubernetes. Re bona mathata ana har'a bafani ba fanang ka lihlopha tsa Kubernetes le har'a bareki ba tlang ho rona. Le ho tsoa ho bareki ba tlang ho rona ho tsoa ho lik'hamphani tse ling tsa boeletsi. Ke hore, tekanyo ea tlokotsi e hlile e kholo haholo.

Ho na le lintlha tse tharo tseo ke tla bua ka tsona kajeno:

  1. Litokelo tsa basebelisi vs litokelo tsa pod. Litokelo tsa basebelisi le litokelo tsa pod ha se ntho e le 'ngoe.
  2. Ho bokella tlhahisoleseding mabapi le sehlopha. Ke tla bontša hore u ka bokella lintlha tsohle tseo u li hlokang ho tsoa sehlopheng ntle le ho ba le litokelo tse khethehileng sehlopheng sena.
  3. DoS tlhaselo sehlopheng. Haeba re sa khone ho bokella tlhahisoleseling, re tla khona ho beha sehlopha ho sa tsotellehe boemo leha e le bofe. Ke tla bua ka litlhaselo tsa DoS ho likarolo tsa taolo ea lihlopha.

Ntho e 'ngoe e akaretsang eo ke tla e bua ke seo ke se lekileng sena sohle, moo nka reng tsohle lia sebetsa.

Re nka e le motheo oa ho kenya sehlopha sa Kubernetes ho sebelisa Kubespray. Haeba mang kapa mang a sa tsebe, ena ke karolo ea likarolo tsa Ansible. Re e sebelisa kamehla mosebetsing oa rona. Ntho e ntle ke hore o ka e phutholla kae kapa kae - o ka e phutholla likotong tsa tšepe kapa lerung kae-kae. Mokhoa o le mong oa ho kenya o sebetsa ka molao-motheo bakeng sa ntho e 'ngoe le e' ngoe.

Sehlopheng sena ke tla ba le Kubernetes v1.14.5. Sehlopha sohle sa Cube, seo re tla se hlahloba, se arotsoe ka libaka tsa mabitso, sebaka ka seng sa mabitso ke sa sehlopha se arohaneng, 'me litho tsa sehlopha sena li khona ho fumana sebaka ka seng sa mabitso. Ha ba khone ho ea libakeng tse fapaneng tsa mabitso, ho ea ho bona feela. Empa ho na le ak'haonte e itseng ea admin e nang le litokelo ho sehlopha sohle.

Ho tlatsa masoba sehlopheng sa Kubernetes. Tlaleha le ho ngola ho tsoa ho DevOpsConf

Ke tšepisitse hore ntho ea pele eo re tla e etsa ke ho fumana litokelo tsa admin ho cluster. Re hloka pod e lokiselitsoeng ka ho khetheha e tla senya sehlopha sa Kubernetes. Seo re hlokang ho se etsa feela ke ho e sebelisa ho sehlopha sa Kubernetes.

kubectl apply -f pod.yaml

Pod ena e tla fihla ho e mong oa beng ba sehlopha sa Kubernetes. 'Me ka mor'a sena sehlopha se tla khutlisetsa ho rona faele e bitsoang admin.conf ka thabo. Ho Cube, faele ena e boloka litifikeiti tsohle tsa batsamaisi, 'me ka nako e ts'oanang e lokisa sehlopha sa API. Ke kamoo ho leng bonolo ho fumana phihlello ea admin, ke nahana, 98% ea lihlopha tsa Kubernetes.

Kea pheta, pod ena e entsoe ke moqapi a le mong sehlopheng sa hau ea nang le monyetla oa ho kenya litlhahiso tsa hae sebakeng se le seng se senyenyane sa mabitso, kaofela se koaletsoe ke RBAC. O ne a sena ditshwanelo. Empa leha ho le joalo setifikeiti se ile sa khutlisoa.

'Me hona joale ka pod e lokiselitsoeng ka ho khetheha. Re e tsamaisa setšoantšong sefe kapa sefe. Ha re nke mohlala oa debian:jessie.

Re na le ntho ena:

tolerations:
-   effect: NoSchedule 
    operator: Exists 
nodeSelector: 
    node-role.kubernetes.io/master: "" 

Mamello ke eng? Li-masters tsa sehlopha sa Kubernetes hangata li tšoauoa ka ntho e bitsoang taint. 'Me moelelo oa "tšoaetso" ena ke hore e re li-pods li ke ke tsa abeloa ho laola li-node. Empa ha ho motho ea khathatsang ho bontša ka pod leha e le efe hore e mamella "tšoaetso". Karolo ea Toleration e re feela haeba node e itseng e na le NoSchedule, joale node ea rona e mamella tšoaetso e joalo - 'me ha ho na mathata.

Ho feta moo, re re ba tlas'a rona ha ba mamelle feela, empa hape ba batla ho lebisa tlhokomelo ho monghali. Hobane benghali ba na le ntho e monate ka ho fetisisa eo re e hlokang - litifikeiti tsohle. Ka hona, re re nodeSelector - 'me re na le lengolo le tloaelehileng ho li-masters, tse u lumellang hore u khethe ho tsoa ho li-node tsohle sehlopheng hantle hantle li-node tseo e leng masters.

Ka likarolo tsena tse peli ka sebele o tla tla ho monghali. 'Me o tla lumelloa ho lula moo.

Empa ho tla ho monghali ha hoa lekana bakeng sa rona. Sena se ke ke sa re fa letho. Kahoo, re na le lintlha tsena tse peli:

hostNetwork: true 
hostPID: true 

Re hlakisa hore pod ea rona, eo re e hlahisang, e tla lula sebakeng sa mabitso sa kernel, sebakeng sa mabitso sa marang-rang, le sebakeng sa mabitso sa PID. Hang ha pod e qalisoa ho monghali, e tla khona ho bona li-interfaces tsohle tsa sebele, tse phelang tsa node ena, ho mamela sephethephethe sohle le ho bona PID ea mekhoa eohle.

Ebe ke taba ea lintho tse nyane. Nka etcd 'me u bale seo u se batlang.

Ntho e khahlisang ka ho fetesisa ke tšobotsi ena ea Kubernetes, e teng ka ho sa feleng.

volumeMounts:
- mountPath: /host 
  name: host 
volumes:
- hostPath: 
    path: / 
    type: Directory 
  name: host 

'Me moelelo oa eona ke hore re ka bua ka pod eo re e hlahisang, esita le ntle le litokelo tsa sehlopha sena, hore re batla ho etsa palo ea mofuta oa hostPath. Sena se bolela ho nka tsela ho tsoa ho moamoheli eo re tla qala ho eona - le ho e nka joalo ka molumo. Ebe re e bitsa lebitso: moamoheli. Re kenya hostPath ena kaofela ka har'a pod. Mohlaleng ona, ho /host directory.

Ke tla e pheta hape. Re ile ra bolella pod hore e tle ho monghali, e fumane hostNetwork le hostPID moo - 'me u kenye motso oohle oa monghali ka hare ho pod ena.

Ua utloisisa hore ho Debian re na le bash e sebetsang, 'me bash ena e sebetsa tlas'a motso. Ke hore, re sa tsoa fumana motso ho monghali, ntle le ho ba le litokelo leha e le life sehlopheng sa Kubernetes.

Joale mosebetsi oohle ke ho ea ho sub directory / host / etc / kubernetes / pki, haeba ke sa fose, nka litifikeiti tsohle tse kholo tsa sehlopha moo, 'me, ka hona, e be mookameli oa sehlopha.

Haeba u e sheba ka tsela ena, tsena ke tse ling tsa litokelo tse kotsi ka ho fetisisa ho li-pods - ho sa tsotellehe hore na mosebedisi o na le litokelo life:
Ho tlatsa masoba sehlopheng sa Kubernetes. Tlaleha le ho ngola ho tsoa ho DevOpsConf

Haeba ke na le litokelo tsa ho tsamaisa pod sebakeng se seng sa mabitso sa sehlopha, joale pod ena e na le litokelo tsena ka ho sa feleng. Ke khona ho tsamaisa li-pods tse lehlohonolo, 'me tsena ka kakaretso ke litokelo tsohle, ka metso ho node.

Seo ke se ratang haholo ke Root user. Mme Kubernetes e na le khetho ena ea Run As Non-Root. Ena ke mofuta oa tšireletso ho motho ea senyang. Na ua tseba hore na "vaerase ea Moldavian" ke eng? Haeba ka tšohanyetso u le senokoane 'me u tla sehlopheng sa ka sa Kubernetes, rona, batsamaisi ba futsanehileng, rea botsa: "Ka kopo, bonts'a ka har'a li-pods tsa hau tseo u tla senya sehlopha sa ka ka tsona, u tsamaee joalo ka ha e se motso. Ho seng joalo, ho tla etsahala hore u tsamaise tshebetso ka pod ea hao tlas'a motso, 'me ho tla ba bonolo haholo hore u hack' na. Ke kopa o itšireletse ho uena.

Bophahamo ba tsela ea moamoheli, ka maikutlo a ka, ke tsela e potlakileng ea ho fumana sephetho se lakatsehang ho tsoa ho sehlopha sa Kubernetes.

Empa ho etsahala'ng ka see sohle?

Mohopolo o lokelang ho tla ho molaoli ofe kapa ofe ea tloaelehileng ea kopanang le Kubernetes ke: "Ee, ke u joetse, Kubernetes ha e sebetse. Ho na le masoba ho eona. 'Me Cube eohle ke poho. ” Ha e le hantle, ho na le ntho e kang litokomane, 'me haeba u sheba moo, ho na le karolo Leano la Tšireletso ea Pod.

Ena ke ntho ea yaml - re ka e theha ka har'a sehlopha sa Kubernetes - se laolang likarolo tsa ts'ireletso ka ho khetheha tlhalosong ea li-pods. Ke hore, ha e le hantle, e laola litokelo tsa ho sebelisa hostNetwork leha e le efe, hostPID, mefuta e itseng ea molumo e leng li-pods qalong. Ka thuso ea Pod Security Policy, sena sohle se ka hlalosoa.

Ntho e khahlang ka ho fetesisa ka Leano la Ts'ireletso la Pod ke hore sehlopheng sa Kubernetes, li-installer tsohle tsa PSP ha li hlalosoe ka tsela efe kapa efe, li holofalitsoe feela. Pholisi ea Ts'ireletso ea Pod e nolofalitsoe ho sebelisoa plugin ea kamohelo.

Ho lokile, ha re ke re kenye Leano la Ts'ireletso la Pod sehlopheng, ha re re re na le li-pods tsa lits'ebeletso sebakeng sa mabitso, tseo ke li-admins feela tse nang le phihlello ho tsona. Ha re re, maemong a mang kaofela, li-pods li na le litokelo tse fokolang. Hobane mohlomong bahlahisi ha ba hloke ho tsamaisa li-pods tse khethehileng sehlopheng sa hau.

'Me ntho e' ngoe le e 'ngoe e bonahala e tsamaea hantle le rona. Mme sehlopha sa rona sa Kubernetes se ke ke sa qhekelloa ka metsotso e 'meli.

Ho na le bothata. Ho ka etsahala, haeba u na le sehlopha sa Kubernetes, joale ho kengoa leihlo ho sehlopha sa hau. Nka ba ka ea ho fihlela joale ho bolela esale pele hore haeba sehlopha sa hau se na le leihlo, se tla bitsoa Prometheus.

Seo ke tlil'o u bolella sona se tla sebetsa bakeng sa opereishene ea Prometheus le Prometheus e fanoeng ka mokhoa o hloekileng. Potso ke hore haeba ke sa khone ho kenya admin ka har'a sehlopha ka potlako, joale sena se bolela hore ke hloka ho sheba haholoanyane. 'Me nka batlisisa ka thuso ea tlhokomelo ea hau.

Mohlomong motho e mong le e mong o bala lingoloa tse tšoanang ka Habré, 'me tlhahlobo e fumaneha sebakeng sa mabitso. Helm chate e bitsoa ka mokhoa o ts'oanang ho motho e mong le e mong. Ke nahana hore haeba u etsa helm install stable/prometheus, u tla qetella u e-na le mabitso a batlang a tšoana. 'Me mohlomong ha ke sa tla tlameha ho hakanya lebitso la DNS sehlopheng sa hau. Hobane ke maemo.

Ho tlatsa masoba sehlopheng sa Kubernetes. Tlaleha le ho ngola ho tsoa ho DevOpsConf

Ka mor'a moo re na le li-dev ns tse itseng, tseo ho tsona u ka tsamaisang pod e itseng. 'Me ho tloha pod ena ho bonolo haholo ho etsa ntho e kang ena:

$ curl http://prometheus-kube-state-metrics.monitoring 

prometheus-kube-state-metrics ke e mong oa barekisi ba Prometheus ba bokellang metrics ho Kubernetes API ka boeona. Ho na le data e ngata moo, ke eng e sebetsang sehlopheng sa hau, hore na ke eng, ke mathata afe ao u nang le 'ona ka eona.

E le mohlala o bonolo:

kube_pod_container_info{namespace=“kube-system”,pod=”kube-apiserver-k8s- 1″,container=”kube-apiserver”,image=

"gcr.io/google-containers/kube-apiserver:v1.14.5"

,image_id=»docker-pullable://gcr.io/google-containers/kube- apiserver@sha256:e29561119a52adad9edc72bfe0e7fcab308501313b09bf99df4a96 38ee634989″,container_id=»docker://7cbe7b1fea33f811fdd8f7e0e079191110268f2 853397d7daf08e72c22d3cf8b»} 1

Ka ho etsa kopo e bonolo ea curl ho tsoa ho pod e se nang tokelo, o ka fumana lintlha tse latelang. Haeba u sa tsebe hore na u sebelisa mofuta ofe oa Kubernetes, e tla u bolella habonolo.

'Me ntho e khahlisang ka ho fetesisa ke hore ntle le ho fihlella kube-state-metrics, o ka fihlella Prometheus ka boyona habonolo feela. U ka bokella metrics ho tloha moo. U ka etsa metrics ho tloha moo. Le ha ho le joalo, o ka theha potso e joalo ho tsoa sehlopheng sa Prometheus, se tla e tima feela. 'Me tlhokomelo ea hau e tla emisa ho sebetsa ho tloha sehlopheng ka ho feletseng.

'Me mona ho hlaha potso ea hore na ho na le tlhahlobo ea kantle e behang leihlo leihlo la hau. Ke sa tsoa fumana monyetla oa ho sebetsa sehlopheng sa Kubernetes ntle le litlamorao ho nna. U ke ke ua tseba le hore ke sebetsa moo, kaha ha ho sa na monitoring.

Joalo ka PSP, ho utloahala eka bothata ke hore litheknoloji tsena tsohle tse majabajaba - Kubernetes, Prometheus - ha li sebetse ebile li tletse masoba. E seng joalo hantle.

Ho na le ntho e joalo - Leano la Marang-rang.

Haeba u le molaoli ea tloaelehileng, ho ka etsahala hore ebe u tseba ka Network Policy hore ena ke yaml e 'ngoe feela, eo ho eona ho seng ho ntse ho e-na le tse ngata tsa tsona sehlopheng. Mme Maano a mang a Marang-rang ha a hlokehe. 'Me le haeba u bala hore na Network Policy ke eng, hore ke laml firewall ea Kubernetes, e u lumella ho fokotsa litokelo tsa ho fihlella pakeng tsa libaka tsa mabitso, pakeng tsa li-pods, joale ka sebele u ile ua etsa qeto ea hore firewall ka mokhoa oa yaml ho Kubernetes e itšetlehile ka lintlha tse latelang. ... Che, che. Sena ha se hlile ha se hlokahale.

Le ha o sa ka oa bolella litsebi tsa hau tsa ts'ireletso hore o sebelisa Kubernetes ea hau o ka theha firewall e bonolo haholo le e bonolo haholo ho eona. Haeba ba ntse ba sa tsebe sena mme ba sa u khathatse: "Joale, mphe, mphe ..." Joale ho sa tsotellehe boemo leha e le bofe, u hloka Network Policy ho thibela ho fihlella libakeng tse ling tsa litšebeletso tse ka huloang ho tloha sehlopheng sa hau. ntle le tumello efe kapa efe.

Joalo ka mohlala oo ke faneng ka ona, o ka hula metrics ea kube state ho tsoa sebakeng sefe kapa sefe sa mabitso sehlopheng sa Kubernetes ntle le ho ba le litokelo tsa ho etsa joalo. Melao ea marang-rang e koetse phihlello ho tloha libakeng tse ling tsohle tsa mabitso ho ea sebakeng sa mabitso sa ho beha leihlo mme ke phetho: ha ho na phihlello, ha ho mathata. Ho lichate tsohle tse teng, ka bobeli Prometheus le Prometheus e sebetsang ho opareitara, ho na le khetho feela ho boleng ba helm ho ba nolofalletsa maano a marang-rang. U hloka feela ho e bulela 'me li tla sebetsa.

Ho hlile ho na le bothata bo le bong mona. Kaha u na le litelu tse tloaelehileng, mohlomong u entse qeto ea hore maano a marang-rang ha a hlokehe. 'Me ka mor'a ho bala mefuta eohle ea lihlooho tse mabapi le lisebelisoa tse kang Habr, u entse qeto ea hore flannel, haholo-holo ka mokhoa oa ho amohela baeti, ke ntho e molemo ka ho fetisisa eo u ka e khethang.

Ke lokela ho etsa eng?

U ka leka ho khutlisetsa tharollo ea marang-rang eo u nang le eona sehlopheng sa hau sa Kubernetes, leka ho e nkela sebaka ka ntho e 'ngoe e sebetsang haholoanyane. Bakeng sa Calico e tšoanang, mohlala. Empa ke batla ho bolela hang-hang hore mosebetsi oa ho fetola tharollo ea marang-rang sehlopheng sa ho sebetsa sa Kubernetes ha se ntho e nyenyane. Ke e rarolle habeli (makhetlo a mabeli, leha ho le joalo, ka theory), empa re bile re bonts'a mokhoa oa ho e etsa ho Slurms. Bakeng sa liithuti tsa rona, re bontšitse mokhoa oa ho fetola tharollo ea marang-rang sehlopheng sa Kubernetes. Ha e le hantle, u ka leka ho etsa bonnete ba hore ha ho na nako ea ho theoha sehlopheng sa tlhahiso. Empa mohlomong u ke ke ua atleha.

'Me bothata bo hlile bo rarolloa ka mokhoa o bonolo haholo. Ho na le litifikeiti sehlopheng, 'me ua tseba hore litifikeiti tsa hau li tla felloa ke nako ka mor'a selemo. Hantle, 'me hangata tharollo e tloaelehileng e nang le litifikeiti sehlopheng - ke hobane'ng ha re tšoenyehile, re tla phahamisa sehlopha se secha haufi le moo, re tlohele sa khale hore se bole,' me re sebelise ntho e 'ngoe le e' ngoe hape. Ke 'nete, ha e se e bolile, re tla tlameha ho lula letsatsi, empa sehlopha se secha ke sena.

Ha o phahamisa sehlopha se secha, ka nako e ts'oanang kenya Calico sebakeng sa flannel.

Seo u lokelang ho se etsa haeba litifikeiti tsa hau li fanoe ka lilemo tse lekholo 'me u sa tlo tsosolosa sehlopha? Ho na le ntho e kang Kube-RBAC-Proxy. Ena ke nts'etsopele e pholileng haholo, e u lumellang hore u ikakhele ka setotsoana joalo ka setshelo sa koloi e ka thoko ho pod efe kapa efe sehlopheng sa Kubernetes. 'Me e hlile e eketsa tumello ho pod ena ka RBAC ea Kubernetes ka boeona.

Ho na le bothata bo le bong. Pejana, tharollo ena ea Kube-RBAC-Proxy e ne e hahiloe ho Prometheus ea opereishene. Empa joale o ne a ile. Hona joale liphetolelo tsa morao-rao li itšetlehile ka taba ea hore u na le leano la marang-rang 'me u le koale u sebelisa tsona. 'Me ka hona re tla tlameha ho ngola chate hanyenyane. Ha e le hantle, haeba u ea ho polokelong ena, ho na le mehlala ea mokhoa oa ho sebelisa sena e le li-sidecars, 'me lichate li tla tlameha ho ngoloa bocha hanyenyane.

Ho na le bothata bo bong hape bo bonyenyane. Prometheus ha se eena feela ea fanang ka metrics ea eona ho mang kapa mang. Likarolo tsohle tsa rona tsa lihlopha tsa Kubernetes le tsona li khona ho khutlisa metrics ea tsona.

Empa joalo ka ha ke se ke boletse, haeba u sa khone ho fihlella sehlopha le ho bokella tlhahisoleseling, bonyane u ka ntša kotsi.

Kahoo ke tla potlakela ho bontša litsela tse peli kamoo sehlopha sa Kubernetes se ka senyehang kateng.

U tla tšeha ha ke u bolella sena, tsena ke linyeoe tse peli tsa sebele tsa bophelo.

Mokhoa oa pele. Ho fokotseha ha lisebelisoa.

Ha re qaleng pod e 'ngoe e khethehileng. E tla ba le karolo e kang ena.

resources: 
    requests: 
        cpu: 4 
        memory: 4Gi 

Joalo ka ha u tseba, likopo ke palo ea CPU le memori e bolokiloeng ho moamoheli bakeng sa li-pods tse itseng tse nang le likopo. Haeba re na le moamoheli oa mantlha a mane sehlopheng sa Kubernetes, 'me li-pods tse nne tsa CPU li fihla moo ka likopo, ho bolela hore ha ho na li-pods tse nang le likopo tse tla khona ho tla ho moamoheli enoa.

Haeba ke tsamaisa pod e joalo, ke tla tsamaisa taelo:

$ kubectl scale special-pod --replicas=...

Joale ha ho motho e mong ea tla khona ho kenya sehlopha sa Kubernetes. Hobane li-node tsohle li tla felloa ke likopo. Kahoo ke tla emisa sehlopha sa hau sa Kubernetes. Haeba ke etsa sena mantsiboeeng, nka emisa li-deployments nako e telele.

Haeba re sheba hape litokomane tsa Kubernetes, re tla bona ntho ena e bitsoang Limit Range. E beha lisebelisoa bakeng sa lintho tsa sehlopha. O ka ngola ntho ea Limit Range ho yaml, oa e sebelisa libakeng tse itseng tsa mabitso - ebe sebakeng sena sa mabitso u ka re u na le lisebelisoa tsa kamehla, tse phahameng le tse fokolang bakeng sa li-pods.

Ka thuso ea ntho e joalo, re ka fokotsa basebelisi libakeng tse ikhethileng tsa lihlahisoa tsa lihlopha ka bokhoni ba ho bonts'a mefuta eohle ea lintho tse mpe ho li-pods tsa bona. Empa ka bomalimabe, leha o ka bolella mosebelisi hore a ke ke a qala li-pods ka likopo tsa CPU e fetang e le 'ngoe, ho na le taelo e makatsang joalo, kapa ba ka etsa sekala ka dashboard.

'Me mona ke moo mokhoa oa bobeli o hlahang teng. Re thakhola 11 pods. Ke libilione tse leshome le motso o mong. Sena ha se hobane ke tlile ka palo e joalo, empa hobane ke e bone.

Pale ea sebele. Mantsiboea ke ne ke le mothating oa ho tsoa ka ofising. Ke bona sehlopha sa batho ba ntlafatsang ba lutse hukung, ba tsielehile ba etsa ho hong ka lilaptop tsa bona. Ke ea ho bashanyana ’me ka ba botsa: “Ho etsahetse’ng ka lōna?”

Pejana, hoo e ka bang ka hora ea borobong mantsiboea, e mong oa bahlahisi o ne a itokisetsa ho khutlela hae. Mme ka etsa qeto: “Jwale ke tla theolela kopo ya ka ho e nngwe.” Ke ile ka tobetsa e le 'ngoe, empa Marang-rang a fokotseha hanyane. A tobetsa e nngwe hape, a tobetsa e nngwe, mme a tobetsa Enter. Ke ne ke bala ntho e 'ngoe le e 'ngoe eo nka e khonang. Joale Marang-rang a phela - 'me ntho e' ngoe le e 'ngoe ea qala ho theohela palo ena.

Ke 'nete, pale ena ha ea ka ea etsahala ho Kubernetes; ka nako eo e ne e le Nomad. E ile ea fela ka taba ea hore ka mor'a hora ea boiteko ba rona ba ho thibela Nomad boitekong bo phehellang ba ho hola, Nomad o ile a araba ka hore a ke ke a khaotsa ho phahamisa 'me a ke ke a etsa letho le leng. "Ke khathetse, kea tsamaea." Mme a phuthela.

Ka tlhaho, ke lekile ho etsa se tšoanang ho Kubernetes. Kubernetes o ne a sa thaba ka li-pods tse limilione tse likete tse leshome le motso o mong, o itse: "Ha ke khone. E feta balebeli ba molomo ba ka hare." Empa li-pods tse 1 li ka khona.

Ho arabela bilione e le 'ngoe, Cube ha ea ka ea ikhula ho eona. O ile a qala ka ho hlaka. Ha ts'ebetso e ntse e tsoela pele, ho ile ha mo nka nako e ngata ho etsa li-pods tse ncha. Empa leha ho le joalo ts'ebetso e ile ea tsoela pele. Bothata feela ke hore haeba ke khona ho hlahisa li-pods ka mokhoa o sa lekanyetsoang sebakeng sa ka sa mabitso, joale le ntle le likopo le meeli ke khona ho hlahisa li-pods tse ngata ka mesebetsi e itseng hoo ka thuso ea mesebetsi ena li-node li tla qala ho eketsa mohopolong, ho CPU. Ha ke qala li-pods tse ngata, boitsebiso bo tsoang ho bona bo lokela ho kena polokelong, ke hore, joalo-joalo. Mme ha tlhaiso-leseling e ngata e fihla moo, polokelo e qala ho khutla butle haholo - mme Kubernetes e qala ho ba lerootho.

'Me bothata bo bong hape ... Joalokaha u tseba, likarolo tsa taolo ea Kubernetes hase ntho e le' ngoe e bohareng, empa likarolo tse 'maloa. Ka ho khetheha, ho na le mookameli oa molaoli, mohlophisi, joalo-joalo. Bashanyana bana bohle ba tla qala ho etsa mosebetsi o sa hlokahaleng, o hlokang kelello ka nako e le 'ngoe, eo ka mor'a nako e tla qala ho nka nako e eketsehileng. Motsamaisi oa taolo o tla etsa li-pods tse ncha. Scheduler e tla leka ho ba fumanela node e ncha. Mohlomong u tla felloa ke li-node tse ncha sehlopheng sa hau haufinyane. Sehlopha sa Kubernetes se tla qala ho sebetsa butle le butle.

Empa ke ile ka etsa qeto ea ho fetela pele. Joalokaha u tseba, ho Kubernetes ho na le ntho e joalo e bitsoang tšebeletso. Le ha ho le joalo, ka ho sa feleng lihlopheng tsa hau, mohlomong, ts'ebeletso e sebetsa e sebelisa litafole tsa IP.

Haeba u sebelisa li-pods tse bilione, mohlala, ebe u sebelisa sengoloa ho qobella Kubernetis ho theha lits'ebeletso tse ncha:

for i in {1..1111111}; do
    kubectl expose deployment test --port 80  
        --overrides="{"apiVersion": "v1", 
           "metadata": {"name": "nginx$i"}}"; 
done 

Likarolong tsohle tsa sehlopha, melao e mengata e ncha ea iptables e tla hlahisoa hoo e ka bang ka nako e le 'ngoe. Ho feta moo, melao ea li-iptable tse limilione tse likete e tla hlahisoa bakeng sa tšebeletso ka 'ngoe.

Ke hlahlobile ntho ena kaofela ho likete tse 'maloa, ho fihla ho leshome. Mme bothata ke hore e se e le mothating ona ho na le bothata ho etsa ssh ho node. Hobane lipakete, tse tsamaeang ka liketane tse ngata, li qala ho ikutloa li se monate haholo.

'Me sena, le sona, se rarolloa ka thuso ea Kubernetes. Ho na le ntho e joalo ea quota ea Resource. E beha palo ea lisebelisoa le lintho tse fumanehang bakeng sa sebaka sa mabitso sehlopheng. Re ka theha ntho ea yaml sebakeng se seng le se seng sa mabitso sa sehlopha sa Kubernetes. Re sebelisa ntho ena, re ka re re na le palo e itseng ea likopo le meeli e fanoeng bakeng sa sebaka sena sa mabitso, ebe re ka re sebakeng sena sa mabitso hoa khoneha ho etsa litšebeletso tse 10 le li-pods tse 10. 'Me moqapi a le mong a ka ikhama bonyane mantsiboea. Kubernetes o tla re ho eena: "U ke ke ua phahamisa li-pods tsa hau ho fihlela moo, hobane mohloli o feta tekano." Ke eona, bothata bo rarollotsoe. Litokomane mona.

Ho hlaha ntlha e 'ngoe e thata tabeng ena. U ikutloa hore ho thata hakae ho theha sebaka sa mabitso ho Kubernetes. Ho e theha, ho hlokahala hore re nahane ka lintho tse ngata.

Karolo ea lisebelisoa + Limit Range + RBAC
• Etsa sebaka sa mabitso
• Etsa moeli oa moeli ka hare
• Theha ka hare ho resourcequota
• Etsa akhaonto ea tšebeletso bakeng sa CI
• Etsa karolo e tlamang CI le basebelisi
• Ka boikhethelo bula li-pods tse hlokahalang tsa tšebeletso

Ka hona, ke rata ho nka monyetla ona ho arolelana tsoelopele ea ka. Ho na le ntho e joalo e bitsoang opareitara ea SDK. Ena ke mokhoa oa hore sehlopha sa Kubernetes se ngolle basebetsi bakeng sa sona. U ka ngola lipolelo u sebelisa Ansible.

Qalong e ne e ngotsoe ka Ansible, 'me joale ke ile ka bona hore ho na le opareitara ea SDK mme ka ngola hape karolo ea Ansible ho opareitara. Polelo ena e u lumella ho theha ntho ho sehlopha sa Kubernetes se bitsoang taelo. Ka har'a taelo, e u lumella ho hlalosa tikoloho ea taelo ena ka yaml. 'Me ka har'a tikoloho ea sehlopha, e re lumella ho hlalosa hore re aba lisebelisoa tse ngata haholo.

E nyenyane ho etsa hore mokhoa ona o rarahaneng o be bonolo.

'Me qetellong. Ho etsa eng ka see sohle?
Ea pele. Pod Security Policy e ntle. Mme leha e le hore ha ho le ea mong oa li-installer tsa Kubernetes ea li sebelisang ho fihlela kajeno, o ntse o hloka ho li sebelisa ka har'a lihlopha tsa hau.

Network Policy ha se tšobotsi e 'ngoe feela e sa hlokahaleng. Sena ke sona se hlileng se hlokahalang sehlopheng.

LimitRange/ResourceQuota - ke nako ea ho e sebelisa. Re qalile ho sebelisa sena khale, 'me ka nako e telele ke ne ke kholisehile hore bohle ba e sebelisa. Ho ile ha fumaneha hore sena ke seoelo.

Ho phaella ho seo ke se buileng nakong ea tlaleho, ho na le likarolo tse sa ngolisoang tse u lumellang ho hlasela sehlopha. E lokollotsoe haufinyane tlhahlobo e pharaletseng ea bofokoli ba Kubernetes.

Lintho tse ling li bohloko ebile li utloisa bohloko. Ka mohlala, tlas'a maemo a itseng, li-cubelets ka har'a sehlopha sa Kubernetes li ka fana ka litaba tsa buka ea warlocks ho mosebedisi ea sa lumelloeng.

mona Ho na le litaelo tsa mokhoa oa ho hlahisa ntho e 'ngoe le e' ngoe eo ke u boleletseng eona. Ho na le lifaele tse nang le mehlala ea tlhahiso ea hore na ResourceQuota le Pod Security Policy li shebahala joang. Mme o ka ama tsena tsohle.

Ke leboha bohle.

Source: www.habr.com

Eketsa ka tlhaloso