A 'càradh tuill ann am buidheann Kubernetes. Aithisg agus tar-sgrìobhadh bho DevOpsConf

Thug Pavel Selivanov, ailtire fuasglaidhean Southbridge agus tidsear Slurm, seachad taisbeanadh aig DevOpsConf 2019. Tha an òraid seo mar phàirt de aon de chuspairean a’ chùrsa domhainn air Kubernetes “Slurm Mega”.

Slurm Basic: Ro-ràdh do Kubernetes a 'gabhail àite ann am Moscow air an t-Samhain 18-20.
Slurm Mega: a 'coimhead fo chochall Kubernetes - Moscow, Samhain 22-24.
Slurm Online: an dà chùrsa Kubernetes an-còmhnaidh ri fhaighinn.

Fon gearradh tha tar-sgrìobhadh den aithisg.

Feasgar math, co-obraichean agus an fheadhainn a tha co-fhaireachdainn leotha. An-diugh bruidhnidh mi mu shàbhailteachd.

Tha mi a’ faicinn gu bheil mòran gheàrdan tèarainteachd anns an talla an-diugh. Tha mi duilich dhut ro làimh ma chleachdas mi briathran bho shaoghal tèarainteachd chan ann dìreach mar a tha àbhaisteach dhut.

Tha e mar sin a thachair, timcheall air sia mìosan air ais thàinig mi tarsainn air aon bhuidheann poblach Kubernetes. Tha poblach a’ ciallachadh gu bheil an naoidheamh àireamh de dh’àiteachan ainm ann; anns na h-àiteachan ainm sin tha luchd-cleachdaidh aonaranach nan àite-ainm. Buinidh na cleachdaichean sin uile do chompanaidhean eadar-dhealaichte. Uill, bhathas a’ gabhail ris gum bu chòir an cruinneachadh seo a chleachdadh mar CDN. Is e sin, bidh iad a’ toirt brabhsair dhut, bidh iad a’ toirt cleachdaiche dhut an sin, bidh thu a’ dol ann chun àite-ainm agad, a’ cleachdadh na h-aghaidhean agad.

Dh’ fheuch a’ chompanaidh a bh’ agam roimhe ri leithid de sheirbheis a reic. Agus chaidh iarraidh orm am brabhsair a phutadh gus faicinn an robh am fuasgladh seo freagarrach no nach robh.

Thàinig mi chun a 'chlub seo. Chaidh còraichean cuibhrichte a thoirt dhomh, ainm cuibhrichte. Bha na balaich an sin a 'tuigsinn dè a bh' ann an sàbhailteachd. Leugh iad dè a th ’ann an smachd ruigsinneachd stèidhichte air dreuchd Kubernetes (RBAC) - agus thionndaidh iad e gus nach b’ urrainn dhomh pods a chuir air bhog air leth bho chleachdadh. Chan eil cuimhne agam air an duilgheadas a bha mi a’ feuchainn ri fhuasgladh le bhith a’ cur pod air bhog gun chleachdadh, ach bha mi dha-rìribh ag iarraidh dìreach pod a chuir air bhog. Airson deagh fhortan, chuir mi romham faicinn dè na còraichean a th’ agam anns a’ bhuidheann, dè as urrainn dhomh a dhèanamh, dè nach urrainn dhomh a dhèanamh, agus na tha iad air a dhol suas an sin. Aig an aon àm, innsidh mi dhut dè a tha iad air a rèiteachadh gu ceàrr ann an RBAC.

Tha e mar sin a thachair gun d’ fhuair mi rianadair don bhuidheann aca ann an dà mhionaid, gun tug mi sùil air na h-àiteachan ainm faisg air làimh, chunnaic mi an sin na h-aghaidhean toraidh a bha a’ ruith aig companaidhean a bha air an t-seirbheis a cheannach agus a chuir a-steach mar-thà. Is gann gum b’ urrainn dhomh stad a chuir orm bho bhith a’ dol gu beulaibh cuideigin agus a’ cur beagan mionnachaidh air a’ phrìomh dhuilleag.

Innsidh mi dhut le eisimpleirean mar a rinn mi seo agus mar as urrainn dhut thu fhèin a dhìon bho seo.

Ach an toiseach, leig dhomh mi fhìn a thoirt a-steach. Is e m ’ainm Pavel Selivanov. Tha mi nam ailtire aig Southbridge. Tha mi a’ tuigsinn Kubernetes, DevOps agus a h-uile seòrsa rud sùbailte. Tha na h-innleadairean Southbridge agus mise a 'togail seo gu lèir, agus tha mi a' co-chomhairleachadh.

A bharrachd air na prìomh ghnìomhachdan againn, tha sinn air pròiseactan leis an t-ainm Slurms a chuir air bhog o chionn ghoirid. Tha sinn a’ feuchainn ri ar comas a bhith ag obair le Kubernetes beagan a thoirt chun a’ mhòr-shluaigh, gus daoine eile a theagasg a bhith ag obair le K8n cuideachd.

Dè mu dheidhinn a bhios mi a’ bruidhinn an-diugh? Tha cuspair na h-aithisg follaiseach - mu thèarainteachd buidheann Kubernetes. Ach tha mi airson a ràdh anns a 'bhad gu bheil a' chuspair seo glè mhòr - agus mar sin tha mi airson a shoilleireachadh sa bhad dè nach bi mi a 'bruidhinn gu cinnteach. Cha bhith mi a’ bruidhinn mu dheidhinn teirmean hackneyed a chaidh a chleachdadh ceud uair thairis air an eadar-lìn mar-thà. A h-uile seòrsa de RBAC agus teisteanasan.

Bruidhnidh mi mu na tha a’ cur dragh ormsa agus air mo cho-obraichean mu thèarainteachd ann am buidheann de Kubernetes. Chì sinn na duilgheadasan sin an dà chuid am measg sholaraichean a bheir seachad cruinneachaidhean Kubernetes agus am measg teachdaichean a thig thugainn. Agus eadhon bho luchd-dèiligidh a thig thugainn bho chompanaidhean rianachd comhairleachaidh eile. Is e sin, tha meud na bròn-chluich gu math mòr.

Gu litireil tha trì puingean air am bruidhinn mi an-diugh:

  1. Còraichean cleachdaiche vs còraichean pod. Chan e còraichean luchd-cleachdaidh agus còraichean pod an aon rud.
  2. A’ cruinneachadh fiosrachaidh mu dheidhinn a’ bhalaich. Seallaidh mi gun urrainn dhut a h-uile fiosrachadh a tha a dhìth ort a chruinneachadh bho bhuidheann gun chòraichean sònraichte a bhith agad sa bhuidheann seo.
  3. DoS ionnsaigh air a’ bhraisle. Mura h-urrainn dhuinn fiosrachadh a chruinneachadh, bidh e comasach dhuinn cruinneachadh a chuir air dòigh co-dhiù. Bruidhnidh mi mu ionnsaighean DoS air eileamaidean smachd brabhsair.

Is e rud coitcheann eile air an toir mi iomradh air na rinn mi deuchainn air a h-uile càil seo, air an urrainn dhomh a ràdh gu cinnteach gu bheil e uile ag obair.

Gabhaidh sinn mar bhunait airson cruinneachadh Kubernetes a chuir a-steach a’ cleachdadh Kubespray. Mura h-eil fios aig duine, is e seata de dhleastanasan a tha seo dha Ansible. Bidh sinn ga chleachdadh gu cunbhalach nar n-obair. Is e an rud math gun urrainn dhut a roiligeadh an àite sam bith - faodaidh tu a roiligeadh air pìosan iarainn no a-steach do sgòth am badeigin. Tha aon dòigh stàlaidh ag obair ann am prionnsabal airson a h-uile rud.

Anns a’ bhuidheann seo bidh Kubernetes v1.14.5. Tha an cruinneachadh Cube gu lèir, air am bi sinn a’ beachdachadh, air a roinn ann an àiteachan ainmean, buinidh gach àite-ainm do sgioba air leth, agus tha cothrom aig buill den sgioba seo air gach àite-ainm. Chan urrainn dhaibh a dhol gu diofar ainmean, dìreach chun fheadhainn aca fhèin. Ach tha cunntas rianachd sònraichte ann aig a bheil còraichean air a’ bhuidheann gu lèir.

A 'càradh tuill ann am buidheann Kubernetes. Aithisg agus tar-sgrìobhadh bho DevOpsConf

Gheall mi gur e a’ chiad rud a nì sinn còraichean rianachd fhaighinn air a’ bhuidheann. Feumaidh sinn pod a tha air ullachadh gu sònraichte a bhriseas cruinneachadh Kubernetes. Chan eil againn ach a chuir an sàs ann am buidheann Kubernetes.

kubectl apply -f pod.yaml

Ruigidh am pod seo gu aon de mhaighstirean buidheann Kubernetes. Agus às deidh seo tillidh am brabhsair thugainn gu toilichte faidhle ris an canar admin.conf. Ann an Cube, bidh am faidhle seo a’ stòradh a h-uile teisteanas rianadair, agus aig an aon àm a’ rèiteachadh an API brabhsair. Seo cho furasta ‘s a tha e cothrom rianachd fhaighinn, tha mi a’ smaoineachadh, 98% de chruinneachaidhean Kubernetes.

Bidh mi ag ath-aithris, chaidh am pod seo a dhèanamh le aon leasaiche sa bhuidheann agad aig a bheil cothrom air na molaidhean aige a chuir a-steach do aon àite ainm beag, tha e uile air a chlampadh le RBAC. Cha robh còraichean aige. Ach a dh’ aindeoin sin chaidh an teisteanas a thilleadh.

Agus a-nis mu dheidhinn pod air ullachadh gu sònraichte. Bidh sinn ga ruith air ìomhaigh sam bith. Gabhamaid debian:jessie mar eisimpleir.

Tha an rud seo againn:

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

Dè a th’ ann am fulangas? Mar as trice bidh maighstirean ann an cruinneachadh Kubernetes air an comharrachadh le rudeigin ris an canar taint. Agus is e brìgh an “gabhaltachd” seo gu bheil e ag ràdh nach urrainnear pods a thoirt do phrìomh nodan. Ach chan eil dragh air duine innse ann am pod sam bith gu bheil e fulangach don “gabhaltachd”. Tha an roinn Toleration dìreach ag ràdh ma tha NoSchedule aig nód air choireigin, gu bheil an nód againn fulangach ri leithid de ghalar - agus chan eil duilgheadasan ann.

A bharrachd air an sin, tha sinn ag ràdh gu bheil an ìre againn chan ann a-mhàin fulangach, ach cuideachd ag iarraidh a bhith ag amas gu sònraichte air a ’mhaighstir. Leis gu bheil an rud as blasta aig na maighstirean a dh 'fheumas sinn - na teisteanasan gu lèir. Mar sin, bidh sinn ag ràdh nodeSelector - agus tha leubail àbhaisteach againn air maighstirean, a leigeas leat taghadh bho na nodan gu lèir sa bhuidheann gu dìreach na nodan sin a tha nam maighstirean.

Leis an dà earrann so gu cinnteach thig e chum a' mhaighstir. Agus bidh cead aige fuireach ann.

Ach chan eil dìreach a bhith a 'tighinn chun a' mhaighstir gu leòr dhuinn. Cha toir seo dad dhuinn. Mar sin an ath rud tha an dà rud seo againn:

hostNetwork: true 
hostPID: true 

Bidh sinn a’ sònrachadh gum bi am pod againn, a bhios sinn a’ cur air bhog, a’ fuireach anns an ainm-àite kernel, ann an ainm-àite an lìonraidh, agus ann an àrainn ainmean PID. Cho luath ‘s a thèid am pod a chuir air bhog air a’ mhaighstir, bidh e comasach dha eadar-aghaidh fìor, beò an nód seo fhaicinn, èisteachd ris a h-uile trafaic agus PID a h-uile pròiseas fhaicinn.

An uairsin tha e na chùis de rudan beaga. Gabh etcd agus leugh na tha thu ag iarraidh.

Is e an rud as inntinniche am feart Kubernetes seo, a tha an làthair an sin gu bunaiteach.

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

Agus is e an rud a th’ ann gun urrainn dhuinn a ràdh anns a’ pod a chuireas sinn air bhog, eadhon às aonais còirichean air a’ bhuidheann seo, gu bheil sinn airson meud de sheòrsa hostPath a chruthachadh. Tha seo a 'ciallachadh a bhith a' gabhail na slighe bhon òstair air an cuir sinn air bhog - agus ga thoirt mar tomhas-lìonaidh. Agus an uairsin is e ainm a chanas sinn ris: aoigheachd. Bidh sinn a ’cur suas an hostPath seo gu lèir taobh a-staigh a’ pod. San eisimpleir seo, chun an eòlaire / aoigheachd.

Nì mi a-rithist e. Dh'iarr sinn air a 'phoit a thighinn chun a' mhaighstir, faigh an hostNetwork agus hostPID an sin - agus cuir a-steach freumh iomlan a 'mhaighstir am broinn a' phod seo.

Tha thu a’ tuigsinn gu bheil bash ruith againn ann an Debian, agus tha am bash seo a’ ruith fo fhreumh. Is e sin, tha sinn dìreach air freumh fhaighinn air a’ mhaighstir, gun chòraichean sam bith a bhith againn ann am buidheann Kubernetes.

An uairsin is e an obair gu lèir a dhol chun fho-eòlaire / host / etc / kubernetes / pki, mura h-eil mi ceàrr, tog a h-uile prìomh theisteanas den bhuidheann an sin agus, mar sin, a bhith nad rianadair brabhsair.

Ma choimheadas tu air san dòigh seo, is iad seo cuid de na còraichean as cunnartaiche ann am pods - ge bith dè na còraichean a th’ aig an neach-cleachdaidh:
A 'càradh tuill ann am buidheann Kubernetes. Aithisg agus tar-sgrìobhadh bho DevOpsConf

Ma tha na còraichean agam pod a ruith ann an cuid de dh’ ainmean a’ bhraisle, tha na còraichean sin aig a’ pod seo gu bunaiteach. Is urrainn dhomh pods sochair a ruith, agus sa chumantas tha iad sin uile nan còraichean, gu ìre mhòr freumhaichte air an nód.

Is e an neach-cleachdaidh Root as fheàrr leam. Agus tha an roghainn Run As Non-Root aig Kubernetes. Is e seo seòrsa de dhìon bho neach-tarraing. A bheil fios agad dè a th’ ann am “bhìoras Moldavian”? Ma tha thu gu h-obann nad neach-tarraing agus gun tig thu chun bhuidheann Kubernetes agam, an uairsin bidh sinne, luchd-rianachd bochd, a’ faighneachd: “Feuch an innis thu anns na pods agad leis am bi thu a’ slaodadh mo bhraisle, a ’ruith mar neo-fhreumh. Rud eile, tachraidh e gun ruith thu am pròiseas sa pod agad fo fhreumh, agus bidh e gu math furasta dhut mo sheacadh. Feuch an dìon thu thu fhèin."

Is e meud slighe aoigheachd, nam bheachd-sa, an dòigh as luaithe air an toradh a tha thu ag iarraidh fhaighinn bho bhuidheann Kubernetes.

Ach dè a nì thu le seo uile?

Is e an smuain a bu chòir a thighinn gu rianadair àbhaisteach sam bith a choinnicheas ri Kubernetes: “Seadh, thuirt mi riut, chan eil Kubernetes ag obair. Tha tuill innte. Agus tha an Cube gu lèir na tharbh." Gu dearbh, tha leithid de rud ann ri sgrìobhainnean, agus ma choimheadas tu an sin, tha earrann ann Poileasaidh tèarainteachd pod.

Is e rud yaml a tha seo - is urrainn dhuinn a chruthachadh ann am buidheann Kubernetes - a bhios a’ cumail smachd air taobhan tèarainteachd gu sònraichte anns an tuairisgeul air na pods. Is e sin, gu dearbh, bidh e a’ cumail smachd air na còraichean gus hostNetwork, hostPID, cuid de sheòrsan meud a tha anns na pods aig àm tòiseachaidh a chleachdadh. Le cuideachadh bho Poileasaidh Tèarainteachd Pod, faodar seo uile a mhìneachadh.

Is e an rud as inntinniche mu Phoileasaidh Tèarainteachd Pod nach eil a h-uile neach-stàlaidh PSP dìreach air a mhìneachadh ann an dòigh sam bith ann an cruinneachadh Kubernetes, gu bheil iad dìreach ciorramach gu bunaiteach. Tha Poileasaidh Tèarainteachd Pod air a chomasachadh leis a’ plugan inntrigidh.

Ceart gu leòr, leig leinn Poileasaidh Tèarainteachd Pod a chuir a-steach don bhuidheann, canaidh sinn gu bheil cuid de pods seirbheis againn san ainm-àite, air nach eil cothrom ach aig luchd-rianachd. Canaidh sinn, anns a h-uile cùis eile, tha còraichean cuibhrichte aig pods. Leis nach fheum luchd-leasachaidh as coltaiche pods sochair a ruith anns a’ bhuidheann agad.

Agus tha e coltach gu bheil a h-uile dad gu math leinn. Agus chan urrainnear ar cruinneachadh Kubernetes a sheacadh ann an dà mhionaid.

Tha duilgheadas ann. Is coltaiche, ma tha cruinneachadh Kubernetes agad, gu bheil sgrùdadh air a chuir a-steach don bhuidheann agad. Bhithinn eadhon a’ dol cho fada ri ro-innse ma tha sgrùdadh aig a’ bhuidheann agad, gur e Prometheus a chanar ris.

Bidh na tha mi gu bhith ag innse dhut dligheach airson an dà chuid gnìomhaiche Prometheus agus Prometheus air a lìbhrigeadh na fhìor chruth. Is e a’ cheist mura h-urrainn dhomh rianadair fhaighinn a-steach don bhuidheann cho luath, tha seo a’ ciallachadh gum feum mi coimhead nas motha. Agus is urrainn dhomh sgrùdadh a dhèanamh le cuideachadh bhon sgrùdadh agad.

Is dòcha gun leugh a h-uile duine na h-aon artaigilean air Habré, agus tha an sgrùdadh suidhichte anns an àite ainm sgrùdaidh. Canar cairt Helm timcheall air an aon rud airson a h-uile duine. Tha mi a’ smaoineachadh ma stiùireas tu stàball/prometheus a stàladh, gum bi timcheall air na h-aon ainmean agad. Agus is coltaiche nach fheum mi eadhon tomhas a dhèanamh air an ainm DNS anns a’ bhuidheann agad. Leis gu bheil e àbhaisteach.

A 'càradh tuill ann am buidheann Kubernetes. Aithisg agus tar-sgrìobhadh bho DevOpsConf

An ath rud tha innealan sònraichte againn, anns an urrainn dhut pod sònraichte a ruith. Agus an uairsin bhon pod seo tha e gu math furasta rudeigin mar seo a dhèanamh:

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

Tha prometheus-kube-state-metrics mar aon de na às-mhalairt Prometheus a bhios a’ tional meatrach bhon Kubernetes API fhèin. Tha tòrr dàta an sin, dè tha a’ ruith sa bhuidheann agad, dè a th’ ann, dè na duilgheadasan a th’ agad leis.

Mar eisimpleir sìmplidh:

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

Le bhith a’ dèanamh iarrtas curl sìmplidh bho pod gun bhuannachd, gheibh thu am fiosrachadh a leanas. Mura h-eil fios agad dè an dreach de Kubernetes a tha thu a’ ruith, innsidh e dhut gu furasta.

Agus is e an rud as inntinniche, a bharrachd air faighinn gu kube-state-metrics, gum faigh thu a cheart cho furasta faighinn gu Prometheus fhèin gu dìreach. Faodaidh tu metrics a chruinneachadh às an sin. Faodaidh tu eadhon metrics a thogail às an sin. Fiù ‘s gu teòiridheach, faodaidh tu a leithid de cheist a thogail bho bhuidheann ann am Prometheus, a chuireas dheth e. Agus stadaidh an sgrùdadh agad ag obair bhon bhuidheann gu tur.

Agus an seo tha a’ cheist ag èirigh a bheil sgrùdadh taobh a-muigh sam bith a’ cumail sùil air an sgrùdadh agad. Fhuair mi an cothrom a bhith ag obair ann am buidheann Kubernetes gun bhuil sam bith dhomh fhìn. Cha bhith fios agad eadhon gu bheil mi ag obair ann, leis nach eil sgrùdadh ann tuilleadh.

Dìreach mar a tha leis an PSP, tha e a’ faireachdainn gur e an duilgheadas a th’ ann gu bheil na teicneòlasan sùbailte sin uile - Kubernetes, Prometheus - dìreach nach eil ag obair agus gu bheil iad làn tuill. Chan eil idir.

Tha leithid de rud ann - Poileasaidh Lìonra.

Mas e rianaire àbhaisteach a th’ annad, is coltaiche gu bheil fios agad mu Phoileasaidh Lìonra gur e dìreach yaml eile a tha seo, agus tha tòrr dhiubh anns a’ bhuidheann mu thràth. Agus gu cinnteach chan eil feum air cuid de Phoileasaidhean Lìonra. Agus eadhon ged a leughas tu dè a th’ ann am Poileasaidh Lìonra, gur e balla-teine ​​​​yaml de Kubernetes a th’ ann, leigidh e leat còraichean-slighe a chuingealachadh eadar ainmean, eadar pods, an uairsin cho-dhùin thu gu cinnteach gu bheil am balla-teine ​​​​ann an cruth yaml ann an Kubernetes stèidhichte air na h-ath gheàrr-chunntasan. ... Chan eil, chan eil. Chan eil seo gu cinnteach riatanach.

Fiù mura h-eil thu air innse dha na h-eòlaichean tèarainteachd agad le bhith a’ cleachdadh do Kubernetes faodaidh tu balla-teine ​​​​gu math furasta agus sìmplidh a thogail, agus fear gu math granular aig an àm sin. Mura h-eil iad eòlach air seo fhathast agus nach cuir iad dragh ort: “Uill, thoir dhomh, thoir dhomh ...” An uairsin co-dhiù, feumaidh tu Poileasaidh Lìonra gus casg a chuir air ruigsinneachd gu cuid de dh’ àiteachan seirbheis a dh’ fhaodar a tharraing bhon bhuidheann agad. gun chead sam bith.

Mar a tha san eisimpleir a thug mi seachad, faodaidh tu metrics stàite kube a tharraing suas bho àite-ainm sam bith ann am buidheann Kubernetes gun chòraichean sam bith sin a dhèanamh. Tha poileasaidhean lìonraidh air ruigsinneachd a dhùnadh bho gach àite ainm eile chun àite-ainm sgrùdaidh agus sin e: gun ruigsinneachd, gun duilgheadas sam bith. Anns a h-uile clàr a tha ann, an dà chuid Prometheus àbhaisteach agus an Prometheus a tha sa ghnìomhaiche, tha dìreach roghainn ann an luachan an stiùir gus poileasaidhean lìonra a chomasachadh dhaibh. Feumaidh tu dìreach tionndadh air agus obraichidh iad.

Tha dha-rìribh aon duilgheadas an seo. Le bhith nad rianaire feusagach àbhaisteach, tha e coltach gun do cho-dhùin thu nach eil feum air poileasaidhean lìonraidh. Agus às deidh dhut a h-uile seòrsa artaigil a leughadh air goireasan leithid Habr, cho-dhùin thu gur e flannel, gu sònraichte le modh geata aoigheachd, an rud as fheàrr as urrainn dhut a thaghadh.

Dè bu chòir dhomh a dhèanamh?

Faodaidh tu feuchainn ris an fhuasgladh lìonra a tha agad sa bhuidheann Kubernetes agad ath-shuidheachadh, feuch ri rudeigin nas gnìomhaiche a chuir na àite. Airson an aon Calico, mar eisimpleir. Ach tha mi airson a ràdh sa bhad gu bheil an obair a bhith ag atharrachadh fuasgladh lìonra ann am buidheann obrach Kubernetes gu math neo-bheag. Dh ’fhuasgail mi e dà uair (an dà uair, ge-tà, gu teòiridheach), ach sheall sinn eadhon mar a nì sinn e aig Slurms. Dha na h-oileanaich againn, sheall sinn mar a dh’ atharraicheas sinn am fuasgladh lìonra ann am buidheann Kubernetes. Ann am prionnsapal, faodaidh tu feuchainn ri dèanamh cinnteach nach eil ùine downt air a’ bhuidheann toraidh. Ach is dòcha nach soirbhich leat.

Agus gu dearbh tha an duilgheadas air a fuasgladh gu math sìmplidh. Tha teisteanasan anns a’ bhuidheann, agus tha fios agad gun tig na teisteanasan agad gu crìch ann am bliadhna. Uill, mar as trice fuasgladh àbhaisteach le teisteanasan ann am brabhsair - carson a tha dragh oirnn, togaidh sinn cruinneachadh ùr faisg air làimh, leig leis an t-seann fhear a dhol grodadh, agus ath-shuidheachadh a h-uile càil. Fìor, nuair a thèid e grodadh, feumaidh sinn suidhe airson latha, ach seo buidheann ùr.

Nuair a thogas tu cruinneachadh ùr, aig an aon àm cuir a-steach Calico an àite flannel.

Dè a nì thu ma thèid na teisteanasan agad a thoirt a-mach airson ceud bliadhna agus nach eil thu a’ dol a chuir a-steach don bhuidheann? Tha leithid de rud ann ri Kube-RBAC-Proxy. Is e leasachadh fìor fhionnar a tha seo, leigidh e leat e fhèin fhighe a-steach mar inneal-càr taobh ri pod sam bith ann am buidheann Kubernetes. Agus gu dearbh tha e a’ cur ùghdarras ris a’ pod seo tro RBAC de Kubernetes fhèin.

Tha aon duilgheadas ann. Roimhe sin, chaidh am fuasgladh Kube-RBAC-Proxy seo a thoirt a-steach do Prometheus a’ ghnìomhaiche. Ach an uairsin bha e air falbh. A-nis tha dreachan ùr-nodha an urra ris gu bheil poileasaidh lìonra agad agus dùin e le bhith gan cleachdadh. Agus mar sin feumaidh sinn an clàr ath-sgrìobhadh beagan. Gu dearbh, ma thèid thu gu an tasgaidh seo, tha eisimpleirean ann air mar a chleachdas tu seo mar chàraichean-taobh, agus feumar na clàran ath-sgrìobhadh cho beag 'sa ghabhas.

Tha aon duilgheadas beag eile ann. Chan e Prometheus an aon fhear a bhios a’ sgaoileadh a mheatairean gu dìreach duine sam bith. Tha e comasach dha na pàirtean cnuasachaidh Kubernetes againn uile na meatrach aca fhèin a thilleadh.

Ach mar a thuirt mi mu thràth, mura h-urrainn dhut faighinn chun bhuidheann agus fiosrachadh a chruinneachadh, faodaidh tu co-dhiù beagan cron a dhèanamh.

Mar sin seallaidh mi gu sgiobalta dà dhòigh mar as urrainn cruinneachadh Kubernetes a mhilleadh.

Nì thu gàire nuair a dh’ innseas mi seo dhut, is e dà chùis fìor a tha seo.

Dòigh a h-aon. Lùghdachadh stòrais.

Nach cuir sinn air bhog pod sònraichte eile. Bidh earrann mar seo aige.

resources: 
    requests: 
        cpu: 4 
        memory: 4Gi 

Mar a tha fios agad, is e iarrtasan an ìre de CPU agus cuimhne a tha glèidhte air an òstair airson pods sònraichte le iarrtasan. Ma tha aoigheachd ceithir-cridhe againn ann an cruinneachadh Kubernetes, agus ceithir pods CPU a’ ruighinn an sin le iarrtasan, tha e a’ ciallachadh nach bi e comasach dha barrachd pods le iarrtasan tighinn chun aoigh seo.

Ma ruitheas mi a leithid de pod, ruithidh mi an àithne:

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

An uairsin cha bhith e comasach dha duine sam bith eile a chuir gu buidheann Kubernetes. Leis gun ruith a h-uile nodan a-mach à iarrtasan. Agus mar sin cuiridh mi stad air do bhuidheann Kubernetes. Ma nì mi seo san fheasgar, is urrainn dhomh stad a chuir air an cleachdadh airson ùine mhòr.

Ma choimheadas sinn a-rithist air sgrìobhainnean Kubernetes, chì sinn an rud seo ris an canar Limit Range. Bidh e a’ suidheachadh ghoireasan airson nithean cnuasachaidh. Faodaidh tu rud Raon Crìochan a sgrìobhadh ann an yaml, a chuir an sàs ann an àiteachan ainmean sònraichte - agus an uairsin san ainm-àite seo faodaidh tu a ràdh gu bheil goireasan bunaiteach, as àirde agus as ìsle agad airson na pods.

Le cuideachadh bho leithid de rud, is urrainn dhuinn luchd-cleachdaidh a chuingealachadh ann an ainmean toraidh sònraichte sgiobaidhean anns a ’chomas a h-uile seòrsa de dhroch rud a chomharrachadh air na pods aca. Ach gu mì-fhortanach, eadhon ged a dh'innseas tu don neach-cleachdaidh nach urrainn dhaibh pods a chuir air bhog le iarrtasan airson barrachd air aon CPU, tha òrdugh sgèile cho iongantach ann, no faodaidh iad sgèile a dhèanamh tron ​​​​deas-bhòrd.

Agus seo cò às a tha modh àireamh a dhà a’ tighinn. Bidh sinn a’ cur air bhog 11 pods. Sin aon billean deug. Chan ann air sgàth 's gun tàinig mi suas le leithid de àireamh, ach a chionn' s gum faca mi mi fhìn e.

Sgeulachd fìor. Anmoch air an fheasgar bha mi an impis an oifis fhàgail. Chì mi buidheann de luchd-leasachaidh nan suidhe san oisean, gu fiadhaich a’ dèanamh rudeigin leis na coimpiutairean-uchd aca. Bidh mi a’ dol suas gu na balaich agus a’ faighneachd: “Dè thachair dhut?”

Beagan na bu thràithe, timcheall air naoi san fheasgar, bha fear den luchd-leasachaidh ag ullachadh airson a dhol dhachaigh. Agus cho-dhùin mi: “Leanaidh mi a-nis an tagradh agam sìos gu aon.” Bhrùth mi fear, ach chaidh an eadar-lìn sìos beagan. Bhrùth e am fear a-rithist, bhrùth e am fear, agus bhriog e Enter. Phòg mi a h-uile dad a b’ urrainn dhomh. An uairsin thàinig an eadar-lìn beò - agus thòisich a h-uile càil a ’dol sìos chun àireamh seo.

Fìor, cha do thachair an sgeulachd seo air Kubernetes; aig an àm sin b 'e Nomad a bh' ann. Thàinig e gu crìch leis an fhìrinn, às deidh uair a thìde de ar n-oidhirpean gus stad a chuir air Nomad bho oidhirpean leantainneach air sgèile, fhreagair Nomad nach stadadh e sgèileadh agus nach dèanadh e dad eile. "Tha mi sgìth, tha mi a 'falbh." Agus chrom e suas.

Gu nàdarra, dh'fheuch mi ris an aon rud a dhèanamh air Kubernetes. Cha robh Kubernetes toilichte le aon-deug billean pods, thuirt e: “Chan urrainn dhomh. A’ dol thairis air geàrdan beul a-staigh." Ach dh’ fhaodadh 1 pods.

Mar fhreagairt do bhillean, cha do tharraing an Cube a-mach ann fhèin. Thòisich e dha-rìribh a ’sgèileadh. Mar as fhaide a chaidh am pròiseas, is ann as motha a bheir e air pods ùra a chruthachadh. Ach chaidh am pròiseas air adhart fhathast. Is e an aon duilgheadas a th’ ann mas urrainn dhomh pods a chuir air bhog gun chrìoch anns an àite ainm agam, eadhon às aonais iarrtasan agus crìochan is urrainn dhomh uimhir de pods a chuir air bhog le cuid de ghnìomhan a thòisicheas le cuideachadh bho na gnìomhan sin a ’cur suas na nodan mar chuimhneachan, ann an CPU. Nuair a chuireas mi na h-uimhir de phodan air bhog, bu chòir am fiosrachadh bhuapa a dhol a-steach don stòradh, is e sin, msaa. Agus nuair a ruigeas cus fiosrachaidh an sin, tòisichidh an stòradh a ’tilleadh ro shlaodach - agus bidh Kubernetes a’ tòiseachadh a ’fàs dòrainneach.

Agus aon duilgheadas eile... Mar a tha fios agad, chan e aon phrìomh rud a th’ anns na h-eileamaidean smachd Kubernetes, ach grunn phàirtean. Gu sònraichte, tha manaidsear smachd, clàr-ama, agus mar sin air adhart. Tòisichidh na daoine sin uile air obair neo-riatanach, gòrach a dhèanamh aig an aon àm, a thòisicheas thar ùine a ’toirt barrachd is barrachd ùine. Cruthaichidh am manaidsear smachd pods ùra. Feuchaidh an clàr-ama ri nód ùr a lorg dhaibh. Tha e coltach gun ruith thu a-mach à nodan ùra sa bhuidheann agad a dh’ aithghearr. Tòisichidh buidheann Kubernetes ag obair nas slaodaiche agus nas slaodaiche.

Ach cho-dhùin mi a dhol eadhon nas fhaide. Mar a tha fios agad, ann an Kubernetes tha leithid de rud ris an canar seirbheis. Uill, gu bunaiteach anns na cruinneachaidhean agad, is coltaiche, bidh an t-seirbheis ag obair a ’cleachdadh clàran IP.

Ma ruitheas tu billean pods, mar eisimpleir, agus an uairsin cleachd sgriobt gus toirt air Kubernetis seirbheisean ùra a chruthachadh:

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

Air a h-uile nod den bhuidheann, thèid barrachd is barrachd riaghailtean ùra iptables a chruthachadh timcheall air an aon àm. A bharrachd air an sin, thèid billean riaghailtean iptables a chruthachadh airson gach seirbheis.

Thug mi sùil air an rud seo gu lèir air grunn mhìltean, suas ri deich. Agus is e an duilgheadas a th ’ann gu bheil e gu math duilich ssh a dhèanamh chun nód aig an ìre seo mar-thà. Leis gu bheil pacaidean, a’ dol tro uimhir de shlabhraidhean, a’ tòiseachadh a’ faireachdainn nach eil iad glè mhath.

Agus tha seo, cuideachd, uile air fhuasgladh le cuideachadh Kubernetes. Tha leithid de nì cuota Goireas ann. Suidhich an àireamh de ghoireasan agus nithean a tha rim faighinn airson an àrainn ainmean sa bhuidheann. Is urrainn dhuinn nì yaml a chruthachadh anns gach ainm-àite ann an cruinneachadh Kubernetes. A’ cleachdadh an nì seo, faodaidh sinn a ràdh gu bheil àireamh shònraichte de dh’ iarrtasan agus chrìochan air an riarachadh airson an àrainn ainm seo, agus an uairsin faodaidh sinn a ràdh gu bheil e comasach san ainm-àite seo 10 seirbheisean agus 10 pods a chruthachadh. Agus faodaidh aon leasaiche co-dhiù e fhèin a thachdadh air an fheasgar. Innsidh Kubernetes dha: “Chan urrainn dhut na pods agad a sgèileadh chun na h-ìre sin, leis gu bheil an goireas nas àirde na a’ chuota. ” Sin e, duilgheadas air fhuasgladh. Sgrìobhainnean an seo.

Tha aon phuing trioblaideach ag èirigh a thaobh seo. Tha thu a’ faireachdainn cho duilich ‘s a tha e àite-ainm a chruthachadh ann an Kubernetes. Gus a chruthachadh, feumaidh sinn tòrr rudan a thoirt fa-near.

Cuota stòrais + Raon Limit + RBAC
• Cruthaich àrainn ainm
• Cruthaich limitrange taobh a-staigh
• Cruthaich taobh a-staigh resourcequota
• Cruthaich cunntas seirbheis airson CI
• Cruthaich dreuchd-cheangail airson CI agus luchd-cleachdaidh
• Optionally a chur air bhog na pods seirbheis riatanach

Mar sin, bu mhath leam an cothrom seo a ghabhail gus na leasachaidhean agam a cho-roinn. Tha leithid de rud ann ris an canar gnìomhaiche SDK. Is e seo dòigh airson buidheann de Kubernetes gnìomhaichean a sgrìobhadh air a shon. Faodaidh tu aithrisean a sgrìobhadh a’ cleachdadh Ansible.

An toiseach chaidh a sgrìobhadh ann an Ansible, agus an uairsin chunnaic mi gu robh gnìomhaiche SDK ann agus rinn mi ath-sgrìobhadh air an dreuchd Ansible gu gnìomhaiche. Leigidh an aithris seo leat rud a chruthachadh ann am buidheann Kubernetes ris an canar àithne. Taobh a-staigh àithne, leigidh e leat cunntas a thoirt air an àrainneachd airson an àithne seo ann an yaml. Agus taobh a-staigh àrainneachd na sgioba, leigidh e leinn innse gu bheil sinn a’ riarachadh uimhir de ghoireasan.

Aon bheag a’ dèanamh a’ phròiseas iom-fhillte seo gu lèir nas fhasa.

Agus ann an co-dhùnadh. Dè a dhèanamh le seo uile?
A’ chiad. Tha Poileasaidh Tèarainteachd Pod math. Agus a dh’ aindeoin nach eil gin de luchd-stàlaidh Kubernetes gan cleachdadh chun an latha an-diugh, feumaidh tu fhathast an cleachdadh anns na cruinneachaidhean agad.

Chan e dìreach feart neo-riatanach eile a th’ ann am Poileasaidh Lìonra. Is e seo a tha dha-rìribh a dhìth ann am buidheann.

LimitRange/ResourceQuota - tha an t-àm ann a chleachdadh. Thòisich sinn air seo a chleachdadh o chionn fhada, agus airson ùine mhòr bha mi cinnteach gu robh a h-uile duine ga chleachdadh. Thionndaidh e a-mach gu bheil seo tearc.

A bharrachd air na dh’ainmich mi san aithisg, tha feartan gun sgrìobhainn ann a leigeas leat ionnsaigh a thoirt air a’ bhuidheann. Air fhoillseachadh o chionn ghoirid mion-sgrùdadh farsaing air so-leòntachd Kubernetes.

Tha cuid de rudan cho brònach agus gort. Mar eisimpleir, fo chumhachan sònraichte, faodaidh cubelets ann an cruinneachadh Kubernetes susbaint an eòlaire warlocks a thoirt do neach-cleachdaidh gun chead.

an seo Tha stiùireadh ann air mar as urrainn dhut a h-uile dad a dh ’innis mi dhut ath-riochdachadh. Tha faidhlichean ann le eisimpleirean cinneasachaidh de choltas ResourceQuota agus Poileasaidh Tèarainteachd Pod. Agus faodaidh tu suathadh air seo uile.

Mòran taing dha na h-uile.

Source: www.habr.com

Cuir beachd ann