Idozi oghere na ụyọkọ Kubernetes. Kpesa na transcript sitere na DevOpsConf

Pavel Selivanov, Southbridge Solution architect and Slurm teacher, nyere ihe ngosi na DevOpsConf 2019. Okwu a bụ akụkụ nke otu n'ime isiokwu nke ihe omimi dị omimi na Kubernetes "Slurm Mega".

Slurm Basic: Okwu Mmalite nke Kubernetes na-eme na Moscow na November 18-20.
Slurm Mega: na-ele anya n'okpuru mkpuchi Kubernetes — Moscow, Nọvemba 22-24.
Slurm Online: nkuzi Kubernetes abụọ dị mgbe niile.

N'okpuru ịkpụ bụ ndegharị nke akụkọ ahụ.

N'ehihie ọma, ndị ọrụ ibe na ndị na-emere ha ebere. Taa, m ga-ekwu maka nchekwa.

Ahụrụ m na enwere ọtụtụ ndị nchekwa na ụlọ nzukọ taa. Ana m arịọ gị mgbaghara tupu oge eruo ma ọ bụrụ na m na-eji usoro sitere na ụwa nchekwa ọ bụghị kpọmkwem dị ka ọ dị gị.

O mere na ihe dị ka ọnwa isii gara aga ahụrụ m otu ụyọkọ Kubernetes ọha. Ọhaneze pụtara na enwere ọnụọgụ nth nke oghere aha; na oghere aha ndị a enwere ndị ọrụ nọpụrụ iche na oghere aha ha. Ndị ọrụ a niile bụ nke ụlọ ọrụ dị iche iche. Ọfọn, e chere na ekwesịrị iji ụyọkọ a dị ka CDN. Ya bụ, ha na-enye gị ụyọkọ, ha na-enye gị onye ọrụ ebe ahụ, ị ​​na-aga ebe ahụ na aha gị, tinye ihu gị.

Ụlọ ọrụ m gara aga gbalịrị ire ọrụ dị otú ahụ. A gwara m ka m kpatụ ụyọkọ ahụ ka m mara ma ngwọta a ọ dabara ma ọ bụ na ọ bụghị.

Abịara m n'ụyọkọ a. Enyere m ikike oke, oke aha aha. Ụmụ okorobịa nọ ebe ahụ ghọtara ihe nchekwa bụ. Ha gụrụ gbasara njikwa ohere dabere na ọrụ (RBAC) na Kubernetes - ha gbagọrọ agbagọ ka m wee ghara ibido pọd iche iche na mbugharị. Anaghị m echeta nsogbu ahụ m na-agbalị idozi site n'ịkwalite pọd na-enweghị mbugharị, mana achọrọ m ịmalite naanị pọd. Maka ihu ọma, ekpebiri m ịhụ ikike ndị m nwere na ụyọkọ ahụ, ihe m nwere ike ime, ihe m na-enweghị ike ime, na ihe ha mebiela n'ebe ahụ. N'otu oge ahụ, m ga-agwa gị ihe ha haziri ezighi ezi na RBAC.

Ọ mere na na nkeji abụọ m natara admin ha ụyọkọ, anya na niile agbata obi namespaces, hụrụ n'ebe ahụ na-agba ọsọ mmepụta fronts nke ụlọ ọrụ ndị na-ama zụrụ ọrụ na deployed. Enweghị m ike ịkwụsị onwe m ịga n'ihu mmadụ na itinye okwu iyi egwu na isi peeji.

M ga-agwa gị ihe atụ ka m mere nke a na otu esi echebe onwe gị na nke a.

Ma nke mbụ, ka m kọwaa onwe m. Aha m bụ Pavel Selivanov. Abụ m onye na-ese ụkpụrụ ụlọ na Southbridge. Aghọtara m Kubernetes, DevOps na ụdị ọmarịcha ihe niile. Mụ na ndị injinia Southbridge na-ewu ihe a niile, ana m adụ ọdụ.

Na mgbakwunye na ọrụ anyị bụ isi, anyị amalitela ọrụ a na-akpọ Slurms n'oge na-adịbeghị anya. Anyị na-agbalị iweta ikike anyị na Kubernetes na-arụkọ ọrụ na ọha mmadụ, ịkụziri ndị ọzọ ka ha na K8 na-arụkwa ọrụ.

Kedu ihe m ga-ekwu maka taa? Isiokwu nke akụkọ ahụ doro anya - banyere nchekwa nke ụyọkọ Kubernetes. Ma achọrọ m ikwu ozugbo na isiokwu a buru ibu - ya mere achọrọ m ịkọwapụta ozugbo ihe m ga-ekwu maka ya. Agaghị m ekwu okwu gbasara hackneyed nke ejirilarị otu narị ugboro na ịntanetị. Ụdị RBAC na asambodo niile.

M ga-ekwu maka ihe na-ewute mụ na ndị ọrụ ibe m maka nchekwa na ụyọkọ Kubernetes. Anyị na-ahụ nsogbu ndị a ma n'etiti ndị na-enye ndị na-enye ụyọkọ Kubernetes na n'etiti ndị ahịa na-abịakwute anyị. Na ọbụna site n'aka ndị ahịa na-abịakwute anyị site na ụlọ ọrụ nchịkwa ndị ọzọ. Ya bụ, ọnụ ọgụgụ nke ọdachi ahụ buru ibu n'ezie.

Enwere isi ihe atọ m ga-ekwu maka ya taa:

  1. Ikike onye ọrụ vs ikike pọd. Ikike onye ọrụ na ikike pọd abụghị otu ihe.
  2. Ịnakọta ozi gbasara ụyọkọ. M ga-egosi na ị nwere ike ịnakọta ozi niile ịchọrọ site na ụyọkọ na-enweghị ikike pụrụ iche na ụyọkọ a.
  3. DoS wakporo ụyọkọ ahụ. Ọ bụrụ na anyị enweghị ike ịnakọta ozi, anyị ga-enwe ike itinye ụyọkọ n'ọnọdụ ọ bụla. M ga-ekwu maka mwakpo DoS na ihe njikwa ụyọkọ.

Ihe ọzọ n'ozuzu nke m ga-ekwu bụ ihe m nwalere ihe a nile, na nke m nwere ike maa na-ekwu na ọ niile na-arụ ọrụ.

Anyị na-ewere dịka ntọala ntinye nke ụyọkọ Kubernetes na-eji Kubespray. Ọ bụrụ na onye ọ bụla amaghị, nke a bụ n'ezie usoro ọrụ maka onye nwere ike. Anyị na-eji ya eme ihe mgbe niile n'ọrụ anyị. Ihe dị mma bụ na ị nwere ike ịtụgharị ya ebe ọ bụla - ị nwere ike tụgharịa ya na mpempe ígwè ma ọ bụ n'ígwé ojii ebe. Otu usoro ntinye na-arụ ọrụ na ụkpụrụ maka ihe niile.

Na ụyọkọ a, m ga-enwe Kubernetes v1.14.5. A na-ekewa ụyọkọ Cube dum, nke anyị ga-atụle, n'ime oghere aha, oghere aha ọ bụla bụ nke otu dị iche iche, ndị otu a nwekwara ohere ịnweta aha ọ bụla. Ha enweghị ike ịga na oghere aha dị iche iche, naanị maka nke ha. Mana enwere akaụntụ admin nke nwere ikike maka ụyọkọ niile.

Idozi oghere na ụyọkọ Kubernetes. Kpesa na transcript sitere na DevOpsConf

M kwere nkwa na ihe mbụ anyị ga-eme bụ inweta ikike admin na ụyọkọ ahụ. Anyị chọrọ pọd a kwadebere nke ọma nke ga-agbaji ụyọkọ Kubernetes. Naanị ihe anyị ga-eme bụ itinye ya na ụyọkọ Kubernetes.

kubectl apply -f pod.yaml

Mpempe akwụkwọ a ga-erute otu n'ime ndị isi nke ụyọkọ Kubernetes. Ma mgbe nke a gasịrị ụyọkọ ahụ ga-eji obi ụtọ weghachi anyị faịlụ akpọrọ admin.conf. Na Cube, faịlụ a na-echekwa asambodo nchịkwa niile, ma n'otu oge ahụ na-ahazi ụyọkọ API. Nke a bụ otu ọ dị mfe ịnweta onye nchịkwa, echere m, 98% nke ụyọkọ Kubernetes.

M na-ekwughachi, otu onye nrụpụta na ụyọkọ gị mere pọd a nke nwere ike ibuga atụmatụ ya n'otu obere aha aha, ọ bụ RBAC kwadoro ya. O nweghị ikike. Mana ka o sina dị, eweghachiri asambodo ahụ.

Ma ugbu a banyere a pụrụ iche njikere pod. Anyị na-agba ya na ihe oyiyi ọ bụla. Ka anyị were debian:jessie dịka ọmụmaatụ.

Anyị nwere ihe a:

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

Gịnị bụ ndidi? A na-ejikarị ihe akpọrọ taint akara ndị nna ukwu na ụyọkọ Kubernetes. Na isi okwu nke "ọrịa" a bụ na ọ na-ekwu na enweghị ike ikenye pods ka ọ bụrụ ọnụ ọnụ. Ma ọ dịghị onye na-echegbu onwe ya iji gosi na pọd ọ bụla na ọ na-anabata "ọrịa" ahụ. Ngalaba Toleration na-ekwu naanị na ọ bụrụ na ụfọdụ ọnụ nwere NoSchedule, mgbe ahụ ọnụ anyị na-anabata ụdị ọrịa ahụ - na enweghị nsogbu.

Ọzọkwa, anyị na-ekwu na anyị n'okpuru bụ bụghị nanị na-anabata, ma na-chọrọ kpọmkwem nwaa nna ukwu. N'ihi na ndị nna ukwu nwere ihe kacha atọ ụtọ anyị chọrọ - niile asambodo. Ya mere, anyị na-ekwu nodeSelector - na anyị nwere ọkọlọtọ labelụ na nna ukwu, nke na-enye gị ohere ịhọrọ site niile ọnụ na ụyọkọ kpọmkwem ọnụ ndị ahụ bụ nna ukwu.

Na ngalaba abụọ a ọ ga-abụrịrị na ọ ga-abịakwute nna ukwu. A ga-ahapụkwa ya ka ọ biri n’ebe ahụ.

Mana naanị ịbịakwute nna ukwu ezughị anyị. Nke a agaghị enye anyị ihe ọ bụla. Ya mere, anyị nwere ihe abụọ a:

hostNetwork: true 
hostPID: true 

Anyị na-akọwapụta na pọd anyị, nke anyị malitere, ga-ebi na oghere aha kernel, na oghere aha netwọkụ, yana na oghere aha PID. Ozugbo etinyere pọd ahụ na nna ukwu ahụ, ọ ga-enwe ike ịhụ ihe niile dị adị, dị ndụ nke ọnụ ọnụ a, gee ntị na okporo ụzọ niile wee hụ PID nke usoro niile.

Mgbe ahụ, ọ bụ okwu nke obere ihe. Were etcd gụọ ihe ị chọrọ.

Ihe kacha adọrọ mmasị bụ njirimara Kubernetes a, nke dị ebe ahụ na ndabara.

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

Na isi ya bụ na anyị nwere ike ikwu na pọd ahụ anyị na-amalite, ọbụlagodi na-enweghị ikike nke ụyọkọ a, na anyị chọrọ ịmepụta olu ụdị hostPath. Nke a pụtara iwere ụzọ n'aka onye ọbịa nke anyị ga-amalite na ya - ma were ya dị ka olu. Mgbe ahụ, anyị na-akpọ ya aha: onye ọbịa. Anyị na-ebuli ụzọ nnabata a niile n'ime pọd. N'ihe atụ a, gaa na ndekọ ndekọ aha/host.

Aga m ekwugharị ya ọzọ. Anyị gwara pọd ahụ ka ọ bịakwute nna ukwu, nweta hostNetwork na hostPID n'ebe ahụ - ma tinye mgbọrọgwụ nke nna ukwu n'ime pod a.

Ị ghọtara na na Debian anyị nwere bash na-agba ọsọ, bash a na-agbakwa n'okpuru mgbọrọgwụ. Ya bụ, anyị nwetara mgbọrọgwụ na nna ukwu, na-enweghị ikike ọ bụla na ụyọkọ Kubernetes.

Mgbe ahụ, ọrụ niile bụ ịga na sub directory / host /etc/kubernetes/pki, ọ bụrụ na anaghị m emejọ, buru akwụkwọ ikike niile nke ụyọkọ ahụ ma, ya mere, ghọọ onye nchịkwa ụyọkọ.

Ọ bụrụ na i lee ya anya otu a, ndị a bụ ụfọdụ ikike dị ize ndụ na pọd - n'agbanyeghị ikike onye ọrụ nwere:
Idozi oghere na ụyọkọ Kubernetes. Kpesa na transcript sitere na DevOpsConf

Ọ bụrụ na enwere m ikike ịme pọd n'ụfọdụ aha oghere nke ụyọkọ, mgbe ahụ pọd a nwere ikike ndị a na ndabara. Enwere m ike ịgba ọsọ pọd ndị nwere ohere, ndị a bụ ikike niile, na-agbanye mgbọrọgwụ na ọnụ.

ọkacha mmasị m bụ onye ọrụ mgbọrọgwụ. Na Kubernetes nwere nhọrọ a na-agba ọsọ dị ka ndị na-abụghị mgbọrọgwụ. Nke a bụ ụdị nchebe site na onye na-agba ọsọ. Ị maara ihe bụ "Moldavian virus"? Ọ bụrụ na ị bụ onye hacker na mberede wee bịa na ụyọkọ Kubernetes m, anyị, ndị nchịkwa dara ogbenye, jụọ: “Biko gosi na pọd gị nke ị ga-eji mebie ụyọkọ m, na-agba ọsọ dị ka enweghị mgbọrọgwụ. Ma ọ bụghị ya, ọ ga-eme na ị na-agba ọsọ usoro na pod gị n'okpuru mgbọrọgwụ, ọ ga-adịkwa gị mfe mbanye anataghị ikike. Biko chebe onwe gị pụọ na onwe gị."

Olu ụzọ ndị ọbịa bụ, n'uche nke m, ụzọ kachasị ọsọ iji nweta nsonaazụ achọrọ site na ụyọkọ Kubernetes.

Ma gịnị ka a ga-eme ihe a niile?

Echiche kwesịrị ịbịara onye nchịkwa nkịtị ọ bụla zutere Kubernetes bụ: "Ee, a gwara m gị, Kubernetes anaghị arụ ọrụ. Enwere oghere na ya. Na Cube dum bụ oke egwu. " N'ezie, enwere ihe dị ka akwụkwọ, ma ọ bụrụ na ị na-ele anya n'ebe ahụ, e nwere ngalaba Amụma Nchekwa Pod.

Nke a bụ ihe yaml - anyị nwere ike ịmepụta ya na ụyọkọ Kubernetes - nke na-achịkwa akụkụ nchekwa kpọmkwem na nkọwa nke pọd. Nke ahụ bụ, n'ezie, ọ na-achịkwa ikike iji ọ bụla hostNetwork, hostPID, ụfọdụ ụdị olu dị na pọd na mmalite. Site n'enyemaka nke Pod Security Policy, enwere ike ịkọwa ihe a niile.

Ihe kacha adọrọ mmasị gbasara amụma nchekwa Pod bụ na na ụyọkọ Kubernetes anaghị akọwapụta ndị nrụpụta PSP niile n'ụzọ ọ bụla, naanị na ndabara nwere nkwarụ. Agbanyere amụma nchekwa Pod site na iji ngwa mgbakwunye nnabata.

Ọ dị mma, ka anyị bufee amụma nchekwa Pod n'ime ụyọkọ ahụ, ka anyị kwuo na anyị nwere ụfọdụ pọd ọrụ na oghere aha, nke naanị ndị nchịkwa nwere ohere. Ka anyị kwuo, n'ọnọdụ ndị ọzọ niile, pọd nwere oke ikike. N'ihi na o yikarịrị ka ndị mmepe adịghị mkpa ịme pọd ndị nwere ohere na ụyọkọ gị.

Na ihe niile yiri ka ọ dị mma na anyị. Enweghị ike ịwachi ụyọkọ Kubernetes anyị n'ime nkeji abụọ.

Enwere nsogbu. O yikarịrị, ọ bụrụ na ị nwere ụyọkọ Kubernetes, mgbe ahụ, etinyere nleba anya na ụyọkọ gị. Aga m aga n'ihu ikwu na ọ bụrụ na ụyọkọ gị nwere nlekota, a ga-akpọ ya Prometheus.

Ihe m ga-agwa gị ga-adị mma maka ma onye ọrụ Prometheus na Prometheus ewepụtara n'ụdị ya dị ọcha. Ajụjụ a bụ na ọ bụrụ na enweghị m ike ịnweta admin n'ime ụyọkọ ahụ ngwa ngwa, nke a pụtara na ọ dị m mkpa ileba anya karịa. Enwere m ike ịchọ site n'enyemaka nke nlekota gị.

Eleghị anya, onye ọ bụla na-agụ otu akụkọ ahụ na Habré, na nleba anya dị na ebe nchekwa aha. A na-akpọ chaatị Helm ihe fọrọ nke nta ka ọ bụrụ otu maka onye ọ bụla. Ana m eche na ọ bụrụ na ị na-eme helm install stable/prometheus, ị ga-ejedebe na roughly otu aha. Ma eleghị anya, agaghị m echedị aha DNS na ụyọkọ gị. N'ihi na ọ bụ ọkọlọtọ.

Idozi oghere na ụyọkọ Kubernetes. Kpesa na transcript sitere na DevOpsConf

Ọzọ anyị nwere ụfọdụ dev ns, nke ị nwere ike ịgba ọsọ ụfọdụ pod. Mgbe ahụ site na pọd a, ọ dị mfe ịme ihe dị ka nke a:

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

prometheus-kube-state-metrics bụ otu n'ime ndị na-ebupụ Prometheus na-anakọta metrik site na Kubernetes API n'onwe ya. Enwere otutu data n'ebe ahụ, ihe na-agba ọsọ na ụyọkọ gị, ihe ọ bụ, nsogbu ndị ị nwere na ya.

Dịka ọmụmaatụ dị mfe:

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

Site na ịrịọ arịrịọ curl dị mfe site na pọd na-enweghị ohere, ị nwere ike nweta ozi ndị a. Ọ bụrụ na ịmaghị ụdị Kubernetes ị na-agba, ọ ga-adị mfe ịgwa gị.

Ihe kacha atọ ụtọ bụ na na mgbakwunye na ịnweta kube-state-metrics, ị nwere ike ịnweta Prometheus n'onwe ya ozugbo. Ị nwere ike ịnakọta metrik si ebe ahụ. Ị nwere ike si ebe ahụ wuo metrik. Ọbụna n'echiche, ị nwere ike wulite ajụjụ dị otú ahụ site na ụyọkọ na Prometheus, nke ga-agbanyụ ya. Na nlekota gị ga-akwụsị ịrụ ọrụ site na ụyọkọ ahụ kpamkpam.

Na ebe a ajụjụ na-ebilite ma ọ bụla mpụga nlekota oru nlekota gị nlekota oru. Enwetara m ohere ịrụ ọrụ na ụyọkọ Kubernetes na-enweghị nsonaazụ ọ bụla maka onwe m. Ị gaghị ama na m na-arụ ọrụ ebe ahụ, ebe ọ bụ na ọ dịghịzi nlekota.

Dị ka ọ dị na PSP, ọ dị ka nsogbu bụ na teknụzụ ndị a mara mma - Kubernetes, Prometheus - ha anaghị arụ ọrụ ma juputara na oghere. Ọ bụchaghị.

Enwere ihe dị otú ahụ - Amụma netwọkụ.

Ọ bụrụ na ị bụ onye nchịkwa nkịtị, mgbe ahụ ọ ga-abụ na ị maara maka iwu netwọkụ na nke a bụ yaml ọzọ, nke enweelarị ọtụtụ n'ime ha na ụyọkọ ahụ. Ụfọdụ amụma netwọk adịghịkwa mkpa. Ọbụlagodi na ị gụrụ ihe amụma netwọkụ bụ, na ọ bụ yaml firewall nke Kubernetes, ọ na-enye gị ohere ịmachi ikike ohere n'etiti oghere aha, n'etiti pods, mgbe ahụ ị kpebiri n'ezie na firewall na usoro yaml na Kubernetes dabere na abstractions na-esote. ... Mba, mba . Nke a doro anya adịghị mkpa.

Ọbụlagodi na ị gwaghị ndị ọkachamara nchekwa gị na iji Kubernetes gị, ị nwere ike wuo firewall dị mfe ma dị mfe, yana nnukwu ihe na nke ahụ. Ọ bụrụ na ha amabeghị nke a ma ghara inye gị nsogbu: "Ọfọn, nye m, nye m..." Mgbe ahụ, n'ọnọdụ ọ bụla, ị chọrọ Network Policy igbochi ohere ụfọdụ ọrụ ebe enwere ike ịdọrọ na ụyọkọ gị. na-enweghị ikike ọ bụla.

Dị ka n'ihe atụ m nyere, ị nwere ike ibuli kube steeti metrics site na aha aha ọ bụla na ụyọkọ Kubernetes na-enweghị ikike ime ya. Atumatu netwọkụ emechiela ohere site na oghere aha ndị ọzọ gaa na ebe nleba anya na nke ahụ bụ ya: enweghị ohere, enweghị nsogbu. Na eserese niile dị, ma ọkọlọtọ Prometheus na Prometheus nke dị na onye na-arụ ọrụ, enwere nhọrọ dị na ụkpụrụ hel iji mee ka iwu netwọkụ rụọ ọrụ maka ha. Naanị ị ga-agbanye ya na ha ga-arụ ọrụ.

Enwere otu nsogbu ebe a. N'ịbụ onye nchịkwa afụ ọnụ nkịtị, o yikarịrị ka ị kpebiri na atumatu netwọkụ adịghị mkpa. Ma mgbe ị gụchara ụdị akụkọ dị iche iche na akụrụngwa dịka Habr, ị kpebiri na flannel, ọkachasị na ọnọdụ ọnụ ụzọ nnabata, bụ ihe kacha mma ị nwere ike họrọ.

Kedu ihe m kwesịrị ime?

Ị nwere ike ịnwa ịmegharị ngwọta netwọk nke ị nwere na ụyọkọ Kubernetes gị, gbalịa iji ihe na-arụ ọrụ dochie ya. Maka otu Calico, dịka ọmụmaatụ. Ma achọrọ m ikwu ozugbo na ọrụ nke ịgbanwe ihe ngwọta netwọkụ na ụyọkọ ọrụ Kubernetes bụ ihe na-adịghị mkpa. Adoziri m ya ugboro abụọ (mgbe abụọ, Otú ọ dị, n'ụzọ doro anya), ma anyị gosipụtara ọbụna otu esi eme ya na Slurms. Maka ụmụ akwụkwọ anyị, anyị gosiri otu esi agbanwe ngwọta netwọk na ụyọkọ Kubernetes. Na ụkpụrụ, ị nwere ike ịgbalị ijide n'aka na ọ dịghị oge nkwụsịtụ na ụyọkọ mmepụta. Ma eleghị anya, ị gaghị aga nke ọma.

A na-edozikwa nsogbu ahụ n'ezie. Enwere asambodo na ụyọkọ ahụ, ị ​​makwa na asambodo gị ga-agwụ n'ime otu afọ. Ọ dị mma, na-abụkarị ihe ngwọta nkịtị nwere asambodo dị na ụyọkọ - gịnị kpatara anyị ji na-echegbu onwe anyị, anyị ga-ebulite ụyọkọ ọhụrụ dị nso, hapụ nke ochie ka rere ure, ma megharịa ihe niile. N'ezie, mgbe ọ rere ure, anyị ga-anọdụ ala otu ụbọchị, mana nke a bụ ụyọkọ ọhụrụ.

Mgbe ị na-ebuli ụyọkọ ọhụrụ, tinye Calico n'otu oge kama flannel.

Kedu ihe ị ga-eme ma ọ bụrụ na enyere asambodo gị otu narị afọ ma ịgaghị emegharị ụyọkọ ahụ? Enwere ihe dị ka Kube-RBAC-proxy. Nke a bụ mmepe mara mma nke ukwuu, ọ na-enye gị ohere itinye onwe ya dịka akpa akụkụ n'akụkụ ọ bụla n'ime ụyọkọ Kubernetes. Ọ na-agbakwunye ikike na pọd a site na RBAC nke Kubernetes n'onwe ya.

Enwere otu nsogbu. Na mbụ, a rụnyere ngwọta Kube-RBAC-Proxy n'ime Prometheus onye ọrụ. Ma mgbe ahụ ọ pụọ. Ugbu a ụdị ọgbara ọhụrụ dabere n'eziokwu na ị nwere amụma netwọkụ wee mechie ya site na iji ha. Ya mere, anyị ga-edegharị chaatị ahụ ntakịrị. N'ezie, ọ bụrụ na ị na-aga ebe nchekwa a, e nwere ihe atụ nke otú e si eji nke a dị ka sidecars, na chaatị a ga-ga-na-dere ntakịrị.

Enwere otu obere nsogbu ọzọ. Prometheus abụghị naanị onye na-enyefe metrik ya naanị onye ọ bụla. Ngwakọta ụyọkọ Kubernetes anyị nwekwara ike iweghachi metrik nke ha.

Mana dịka m kwurula, ọ bụrụ na ịnweghị ike ịnweta ụyọkọ ahụ wee nakọta ozi, mgbe ahụ ị nwere ike imerụ ma ọ dịkarịa ala.

Ya mere, m ga-egosi ngwa ngwa ụzọ abụọ ka a ga-esi mebie ụyọkọ Kubernetes.

Ị ga-achị ọchị mgbe m gwara gị ihe a, ndị a bụ ikpe abụọ n'ezie.

Usoro nke mbụ. Mbelata akụrụngwa.

Ka anyị malite pọọdụ pụrụ iche ọzọ. Ọ ga-enwe ngalaba dị ka nke a.

resources: 
    requests: 
        cpu: 4 
        memory: 4Gi 

Dị ka ị maara, arịrịọ bụ ọnụọgụ CPU na ebe nchekwa echekwara na onye ọbịa maka pọd ndị nwere arịrịọ. Ọ bụrụ na anyị nwere onye ọbịa anọ nwere isi na ụyọkọ Kubernetes, na pọd CPU anọ na-abịarute ebe ahụ na arịrịọ, ọ pụtara na ọ nweghị ihe ọzọ pods nwere arịrịọ ga-enwe ike ịbịakwute onye ọbịa a.

Ọ bụrụ na m na-agba ọsọ dị otú ahụ pod, mgbe ahụ, m ga-agba ọsọ iwu:

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

Mgbe ahụ ọ nweghị onye ọzọ ga-enwe ike ibuga na ụyọkọ Kubernetes. N'ihi na oghere niile ga-agwụ na arịrịọ. Ma otu a ka m ga-akwụsị ụyọkọ Kubernetes gị. Ọ bụrụ na m mee nke a na mgbede, enwere m ike ịkwụsị ọrụ ndị ahụ ruo ogologo oge.

Ọ bụrụ na anyị elee anya ọzọ na akwụkwọ Kubernetes, anyị ga-ahụ ihe a na-akpọ oke oke. Ọ na-edobe akụrụngwa maka ụyọkọ ihe. Ị nwere ike dee ihe oke oke na yaml, tinye ya na ụfọdụ oghere aha - ma n'ime aha aha a ị nwere ike ịsị na ị nwere ihe ndabara, kacha na nke kacha nta maka pọd.

Site n'enyemaka nke ihe dị otú ahụ, anyị nwere ike ịmachi ndị ọrụ na kpọmkwem ngwaahịa aha oghere nke otu n'ime ike na-egosi ụdị nile nke mkparị ihe na ha pọd. Mana ọ dị nwute, ọbụlagodi na ị gwa onye ọrụ na ha enweghị ike ibido pods na arịrịọ maka ihe karịrị otu CPU, enwere iwu oke dị oke egwu, ma ọ bụ ha nwere ike ịme nha site na dashboard.

Na nke a bụ ebe usoro nke abụọ si. Anyị na-ewepụta 11 pọd. Nke ahụ bụ ijeri iri na otu. Nke a abụghị n'ihi na m wepụtara nọmba dị otú ahụ, kama n'ihi na m hụrụ ya n'onwe m.

Ezigbo akụkọ. N'uhuruchi, m na-achọ ịpụ n'ọfịs. Ahụrụ m otu ndị mmepe ka ha nọ ọdụ na nkuku, na-eji nkụda mmụọ na-eme ihe na laptọọpụ ha. M na-agakwuru ụmụ okorobịa ahụ, jụọ: "Gịnị mere unu?"

Obere oge tupu, n'ihe dị ka elekere itoolu nke mgbede, otu n'ime ndị mmepe na-akwado ịla n'ụlọ. M wee kpebie: "Ugbu a, m ga-ebuli ngwa m ruo otu." M pịa otu, mana ịntanetị akwụsịla ntakịrị. O wee pịa nke ọzọ, pịa nke ahụ, wee pịa Tinye. Ahụrụ m ihe niile m nwere ike ime. Mgbe ahụ, ịntanetị bịara dị ndụ - ihe niile wee malite ịdaba na ọnụ ọgụgụ a.

N'ezie, akụkọ a emeghị na Kubernetes; n'oge ahụ ọ bụ Nomad. Ọ kwụsịrị n'eziokwu na mgbe otu awa nke mgbalị anyị ịkwụsị Nomad site na mgbalị na-aga n'ihu n'ịba ụba, Nomad zara na ya agaghị akwụsị ịchacha na ọ gaghị eme ihe ọ bụla ọzọ. " Ike gwụrụ m, m na-apụ." O wee gbatịa.

Dị ka o kwesịrị ịdị, agbalịrị m ime otu ihe ahụ na Kubernetes. Kubernetes enweghị obi ụtọ na ijeri pọd iri na otu, o kwuru, sị: “Enweghị m ike. Gafere ndị nche ọnụ n'ime." Mana 1 pọd nwere ike.

Na nzaghachi na otu ijeri, Cube ewepụghị n'ime onwe ya. Ọ malitere n'ezie scaling. Ka usoro ahụ na-aga n'ihu, ka ọ na-ewekwu oge iji mepụta pọd ọhụrụ. Mana ka usoro ahụ gara n'ihu. Nanị nsogbu bụ na ọ bụrụ na m nwere ike ịmalite pods na-enweghị njedebe na aha m, mgbe ahụ ọbụna na-enweghị arịrịọ na njedebe m nwere ike ịmalite ọtụtụ pods na ụfọdụ ọrụ na site n'enyemaka nke ọrụ ndị a ọnụ ọgụgụ ga-amalite ịgbakwunye na ebe nchekwa, na CPU. Mgbe m malitere ọtụtụ pọd, ozi sitere na ha kwesịrị ịbanye na nchekwa, ya bụ, wdg. Na mgbe ọtụtụ ozi rutere ebe ahụ, nchekwa ahụ na-amalite ịlaghachi nwayọọ nwayọọ - Kubernetes na-amalite ịda mbà.

Na otu nsogbu ọzọ ... Dị ka ị maara, ihe nchịkwa Kubernetes abụghị otu ihe dị mkpa, mana ọtụtụ ihe. Karịsịa, enwere onye njikwa njikwa, onye nhazi oge, na ihe ndị ọzọ. Ụmụ okorobịa ndị a niile ga-amalite ịrụ ọrụ na-adịghị mkpa, ndị nzuzu n'otu oge, nke na-aga n'ihu ga-amalite iwepụtakwu oge. Onye njikwa njikwa ga-emepụta pọd ọhụrụ. Onye nhazi oge ga-agbalị ịchọta ọnụ ụzọ ọhụrụ maka ha. O yikarịrị ka ị ga-agwụcha oghere ọhụrụ na ụyọkọ gị n'oge adịghị anya. Ụyọkọ Kubernetes ga-amalite ịrụ ọrụ nwayọ na nwayọ.

Ma ekpebiri m ịga n'ihu. Dị ka ị maara, na Kubernetes enwere ihe a na-akpọ ọrụ. Ọfọn, na ndabara na ụyọkọ gị, o yikarịrị, ọrụ ahụ na-arụ ọrụ site na iji tebụl IP.

Ọ bụrụ na ị na-agba otu ijeri pọd, dịka ọmụmaatụ, wee jiri edemede ịmanye Kubernetis ịmepụta ọrụ ọhụrụ:

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

N'ọnụ ụzọ niile nke ụyọkọ ahụ, a ga-ewepụtakwu iwu iptables ọhụrụ ihe dịka otu oge. Ọzọkwa, a ga-ewepụta otu ijeri iwu iptables maka ọrụ ọ bụla.

Ahụrụ m ihe a niile n'ọtụtụ puku, ruo iri. Ma nsogbu bụ na ugbua na ọnụ ụzọ a ọ na-enwe nnukwu nsogbu ime ssh na node. N'ihi na ngwugwu, na-agafe ọtụtụ agbụ, na-amalite inwe mmetụta adịghị mma.

Ma nke a, kwa, a na-edozi ya niile site n'enyemaka nke Kubernetes. Enwere ihe oke akụrụngwa dị otú ahụ. Hazie ọnụọgụ akụrụngwa yana ihe dị maka oghere aha na ụyọkọ ahụ. Anyị nwere ike ịmepụta ihe yaml na oghere aha ọ bụla nke ụyọkọ Kubernetes. N'iji ihe a eme ihe, anyị nwere ike ịsị na anyị nwere ọnụ ọgụgụ ụfọdụ nke arịrịọ na njedebe ekenyela maka aha aha a, mgbe ahụ, anyị nwere ike ịsị na na aha aha a, ọ ga-ekwe omume ịmepụta ọrụ 10 na 10 pods. Na otu onye nrụpụta nwere ike ọ dịkarịa ala kpagbuo onwe ya na mgbede. Kubernetes ga-agwa ya: "Ị nweghị ike ịtụba pọd gị ruo ego ahụ, n'ihi na akụrụngwa karịrị oke." Ọ bụ ya, edozila nsogbu. Akwụkwọ ebe a.

Otu isi ihe na-akpata nsogbu na-ebilite na nke a. Ọ na-adị gị ka ọ siri sie ike ịmepụta oghere aha na Kubernetes. Iji mepụta ya, anyị kwesịrị iburu ọtụtụ ihe n'uche.

Oke akụrụngwa + oke oke + RBAC
• Mepụta oghere aha
• Mepụta oke n'ime
• Mepụta n'ime oke akụrụngwa
• Mepụta akaụntụ ọrụ maka CI
• Mepụta ọrụ maka CI na ndị ọrụ
• Nhọrọ malite pọd ọrụ dị mkpa

Ya mere, ọ ga-amasị m iji ohere a kesaa mmepe m. Enwere ihe a na-akpọ onye ọrụ SDK. Nke a bụ ụzọ ụyọkọ Kubernetes si ede ndị ọrụ maka ya. Ị nwere ike dee nkwupụta site na iji Azịza.

Na mbụ edere ya n'asụsụ Apụrụiche, mgbe ahụ ahụrụ m na enwere onye na-arụ ọrụ SDK wee degharịa ọrụ ahụ nwere ike ịbụ onye ọrụ. Nkwupụta a na-enye gị ohere ịmepụta ihe na ụyọkọ Kubernetes a na-akpọ iwu. N'ime iwu, ọ na-enye gị ohere ịkọwa gburugburu maka iwu a na yaml. Na n'ime gburugburu otu, ọ na-enye anyị ohere ịkọwa na anyị na-ekenye ọtụtụ ihe onwunwe.

Obere na-eme ka usoro a dum dị mgbagwoju anya dị mfe.

Na n'ikpeazụ. Kedu ihe a ga-eme na ihe a niile?
Mbụ. Amụma nchekwa Pod dị mma. Na agbanyeghị na ọ nweghị onye nrụnye Kubernetes na-eji ha ruo taa, ị ka kwesịrị iji ha na ụyọkọ gị.

Iwu netwọkụ abụghị naanị ihe ọzọ na-adịghị mkpa. Nke a bụ ihe achọrọ n'ezie na ụyọkọ.

LimitRange/ResourceQuota - oge eruola iji ya. Anyị malitere iji nke a ogologo oge gara aga, ma ruo ogologo oge ejiri m n'aka na onye ọ bụla na-eji ya. Ọ tụgharịrị na nke a dị ụkọ.

Na mgbakwunye na ihe m kwuru n'oge akụkọ ahụ, enwere atụmatụ na-enweghị akwụkwọ na-enye gị ohere ịwakpo ụyọkọ ahụ. Ewepụtara na nso nso a nyocha sara mbara nke adịghị ike Kubernetes.

Ihe ụfọdụ na-ewute ya nke ukwuu. Dịka ọmụmaatụ, n'okpuru ọnọdụ ụfọdụ, cubelets na ụyọkọ Kubernetes nwere ike ịnye onye ọrụ na-enyeghị ikike ọdịnaya nke ndekọ ndekọ agha.

ebe a Enwere ntuziaka maka otu esi emepụtaghachi ihe niile m gwara gị. Enwere faịlụ nwere ihe atụ mmepụta nke ihe ResourceQuota na Amụma Nchekwa Pod dị ka. Na ị nwere ike imetụ ihe a niile aka.

Ekele dịrị mmadụ niile.

isi: www.habr.com

Tinye a comment