K8S Multicluster Irin ajo

Hey Habr!

A ṣe aṣoju ẹgbẹ Syeed Exness. Ni iṣaaju, awọn ẹlẹgbẹ wa tẹlẹ kọ nkan kan nipa Awọn aworan ti o ṣetan fun awọn k8. Loni a fẹ pin iriri wa ti awọn iṣẹ iṣikiri si Kubernetes.

K8S Multicluster Irin ajo

Lati bẹrẹ pẹlu, a fun ọ ni awọn nọmba kan fun oye ti o dara julọ ti ohun ti yoo jiroro:

  • Ẹka idagbasoke wa ni awọn eniyan 100+, pẹlu diẹ sii ju awọn ẹgbẹ oriṣiriṣi 10 pẹlu QA ti ara ẹni, DevOps ati awọn ilana Scrum. Akopọ idagbasoke - Python, PHP, C ++, Java ati Golang. 
  • Iwọn ti idanwo ati awọn agbegbe iṣelọpọ jẹ nipa awọn apoti 2000 kọọkan. Wọn nṣiṣẹ Rancher v1.6 lori agbara-ara wọn ati labẹ VMware. 

Iwuri

Bi wọn ṣe sọ, ko si ohun ti o duro lailai, ati Rancher kede opin atilẹyin fun ẹya 1.6 ni igba pipẹ sẹhin. Bẹ́ẹ̀ ni, ní ohun tí ó lé ní ọdún mẹ́ta a ti kẹ́kọ̀ọ́ bí a ṣe lè múra rẹ̀ sílẹ̀ kí a sì yanjú àwọn ìṣòro tí ó wáyé, ṣùgbọ́n lọ́pọ̀ ìgbà a ń kojú àwọn ìṣòro tí a kò lè ṣàtúnṣe láé. Rancher 1.6 tun ni eto ossified fun ipinfunni awọn ẹtọ, nibiti o le ṣe boya ohun gbogbo tabi nkankan.

Botilẹjẹpe agbara ohun-ini pese iṣakoso nla lori ibi ipamọ data ati aabo rẹ, o paṣẹ awọn idiyele iṣẹ ti o nira lati gba fun idagbasoke igbagbogbo ti ile-iṣẹ, nọmba awọn iṣẹ akanṣe ati awọn ibeere fun wọn.

A fẹ lati tẹle awọn iṣedede IaC ati, ti o ba jẹ dandan, gba agbara ni iyara, ni eyikeyi ipo agbegbe ati laisi titiipa ataja, ati tun ni anfani lati fi silẹ ni iyara.

Awọn igbesẹ akọkọ

Ni akọkọ, a fẹ lati gbẹkẹle awọn imọ-ẹrọ ode oni ati awọn solusan ti yoo gba awọn ẹgbẹ laaye lati ni ọna idagbasoke iyara ati dinku awọn idiyele iṣẹ fun ibaraenisọrọ pẹlu pẹpẹ ti o pese agbara. 
 
Nitoribẹẹ, ohun akọkọ ti o wa si ọkan wa ni Kubernetes, ṣugbọn a ko ni itara ati ṣe iwadii diẹ lati rii boya o jẹ yiyan ti o tọ. A ṣe ayẹwo awọn ojutu orisun ṣiṣi nikan, ati ninu ogun aiṣododo, Kubernetes bori lainidi.  

Nigbamii ti o wa ibeere ti yiyan ọpa kan fun ṣiṣẹda awọn iṣupọ. A ṣe afiwe awọn ojutu olokiki julọ: kops, kubespray, kubeadm.

Lati bẹrẹ, kubeadm dabi ẹni pe o ni idiju ipa-ọna kan, dipo bii iru olupilẹṣẹ “keke,” ati pe kops ko ni irọrun to.

Ati olubori ni:

K8S Multicluster Irin ajo

A bẹrẹ idanwo pẹlu agbara tiwa ati AWS, ni igbiyanju lati tun ṣe nkan kan ni aijọju si apẹẹrẹ iṣakoso awọn orisun iṣaaju wa, nibiti gbogbo eniyan ti pin “iṣupọ” kanna. Ati ni bayi a ni iṣupọ akọkọ wa ti awọn ẹrọ foju kekere 10, tọkọtaya kan ti o wa ni AWS. A bẹrẹ igbiyanju lati lọ si awọn ẹgbẹ nibẹ, ohun gbogbo dabi pe o jẹ "dara", ati pe itan naa le pari, ṣugbọn ...

Awọn iṣoro akọkọ

O ṣeeṣe ni ohun ti kubespray ti wa ni itumọ ti lori, kii ṣe ohun elo ti o fun ọ laaye lati tẹle IaC: nigbati o ba n ṣiṣẹ / piparẹ awọn apa, ohunkan n lọ aṣiṣe nigbagbogbo ati pe o nilo iru ilowosi kan, ati nigbati o ba lo awọn OS oriṣiriṣi, iwe-iṣere naa ṣe iyatọ. . Bi nọmba awọn ẹgbẹ ati awọn apa inu iṣupọ naa ti dagba, a bẹrẹ si ṣe akiyesi pe iwe-iṣere n gba to gun ati gun lati pari, ati bi abajade, igbasilẹ wa jẹ wakati 3,5, kini nipa tirẹ? 🙂

Ati pe o dabi pe kubespray jẹ o kan Ansible, ati pe ohun gbogbo jẹ kedere ni wiwo akọkọ, ṣugbọn:

K8S Multicluster Irin ajo

Ni ibẹrẹ ti irin-ajo naa, iṣẹ-ṣiṣe ni lati ṣe ifilọlẹ awọn agbara nikan ni AWS ati lori iṣojuuwọn, ṣugbọn lẹhinna, bi igbagbogbo ṣẹlẹ, awọn ibeere yipada.
 
K8S Multicluster Irin ajoK8S Multicluster Irin ajo

Ni ina ti eyi, o han gbangba pe aṣa atijọ wa ti apapọ awọn orisun sinu eto orchestration kan ko dara - ni ọran nibiti awọn iṣupọ naa ti jinna pupọ ati ti iṣakoso nipasẹ awọn olupese oriṣiriṣi. 

Siwaju sii. Nigbati gbogbo awọn ẹgbẹ ba ṣiṣẹ laarin iṣupọ kanna, awọn iṣẹ lọpọlọpọ pẹlu NodeSelectors ti a fi sori ẹrọ ti ko tọ le fo si agbalejo “ajeji” ti ẹgbẹ miiran ati lo awọn orisun nibẹ, ati pe ti a ba ṣeto taint, awọn ibeere igbagbogbo wa pe iṣẹ kan tabi miiran ko ṣiṣẹ, ko pin ni deede nitori ifosiwewe eniyan. Iṣoro miiran ni ṣiṣe iṣiro idiyele, paapaa ni imọran awọn iṣoro ni pinpin awọn iṣẹ kaakiri awọn apa.

Itan ti o yatọ ni ipinfunni awọn ẹtọ si awọn oṣiṣẹ: ẹgbẹ kọọkan fẹ lati wa “ni ori” ti iṣupọ ati ṣakoso rẹ patapata, eyiti o le fa idamu patapata, nitori awọn ẹgbẹ jẹ ipilẹ ominira ti ara wọn.

Bawo ni lati jẹ?

Ti o ba ṣe akiyesi ohun ti o wa loke ati awọn ifẹ ti awọn ẹgbẹ lati ni ominira diẹ sii, a ṣe ipari ti o rọrun: ẹgbẹ kan - iṣupọ kan. 

Nitorina a ni keji:

K8S Multicluster Irin ajo

Ati lẹhinna iṣupọ kẹta: 

K8S Multicluster Irin ajo

Lẹhinna a bẹrẹ si ronu: jẹ ki a sọ pe ni ọdun kan awọn ẹgbẹ wa yoo ni iṣupọ ju ọkan lọ? Ni awọn agbegbe agbegbe ti o yatọ, fun apẹẹrẹ, tabi labẹ iṣakoso ti awọn olupese oriṣiriṣi? Ati pe diẹ ninu wọn yoo fẹ lati ni anfani lati yara ran iṣupọ igba diẹ fun diẹ ninu awọn idanwo. 

K8S Multicluster Irin ajo

Kubernetes ni kikun yoo wa! Eyi jẹ diẹ ninu awọn MultiKubernetes, o wa ni jade. 

Ni akoko kanna, gbogbo wa yoo nilo lati tọju bakan gbogbo awọn iṣupọ wọnyi, ni anfani lati ni irọrun ṣakoso iraye si wọn, bakannaa ṣẹda awọn tuntun ati yọkuro awọn atijọ laisi ilowosi afọwọṣe.

Diẹ ninu awọn akoko ti kọja lati ibẹrẹ ti irin-ajo wa ni agbaye ti Kubernetes, ati pe a pinnu lati tun ṣayẹwo awọn ojutu ti o wa. O wa ni jade pe o ti wa tẹlẹ lori ọja - Rancher 2.2.

K8S Multicluster Irin ajo

Ni ipele akọkọ ti iwadii wa, Rancher Labs ti ṣe itusilẹ akọkọ ti ẹya 2, ṣugbọn botilẹjẹpe o le dide ni iyara pupọ nipa ifilọlẹ eiyan laisi awọn igbẹkẹle ita pẹlu awọn aye meji tabi lilo iwe aṣẹ HELM osise, o dabi ẹni pe o robi. si wa, ati awọn ti a ko mọ ti o ba a le gbekele lori yi ipinnu boya o yoo wa ni idagbasoke tabi ni kiakia abandoned. Iṣupọ = paragim tẹ ni UI funrararẹ tun ko baamu wa, ati pe a ko fẹ lati di tiso si RKE, nitori o jẹ ohun elo idojukọ dín kuku. 

Ẹya Rancher 2.2 ti ni irisi iṣẹ diẹ sii ati, pẹlu awọn ti tẹlẹ, ni ọpọlọpọ awọn ẹya ti o nifẹ lati inu apoti, gẹgẹbi isọpọ pẹlu ọpọlọpọ awọn olupese ita, aaye kan ti pinpin awọn ẹtọ ati awọn faili kubeconfig, ifilọlẹ kubectl kan aworan pẹlu awọn ẹtọ rẹ ni UI, awọn aaye orukọ itẹle aka awọn iṣẹ akanṣe. 

Agbegbe tun wa ti o ti ṣẹda tẹlẹ ni ayika Rancher 2, ati pe olupese kan ti a pe ni HashiCorp Terraform ni a ṣẹda lati ṣakoso rẹ, eyiti o ṣe iranlọwọ fun wa lati fi ohun gbogbo papọ.

Kini o ti ṣẹlẹ

Bi abajade, a pari pẹlu iṣupọ kekere kan ti n ṣiṣẹ Rancher, wiwọle si gbogbo awọn iṣupọ miiran, bakanna bi ọpọlọpọ awọn iṣupọ ti o sopọ mọ rẹ, iraye si eyikeyi eyiti o le funni ni irọrun bii fifi olumulo kan kun si itọsọna ldap, laibikita ibi ti o ti wa ni be ati eyi ti olupese ká oro ti o nlo.

Lilo gitlab-ci ati Terraform, a ṣẹda eto kan ti o fun ọ laaye lati ṣẹda iṣupọ ti eyikeyi iṣeto ni awọn olupese awọsanma tabi awọn amayederun tiwa ati so wọn pọ si Rancher. Gbogbo eyi ni a ṣe ni aṣa IaC, nibiti iṣupọ kọọkan ti ṣe apejuwe nipasẹ ibi ipamọ kan, ati pe ipo rẹ jẹ ẹya. Ni akoko kanna, ọpọlọpọ awọn modulu ni asopọ lati awọn ibi ipamọ ita nitori pe gbogbo ohun ti o ku ni lati kọja awọn oniyipada tabi ṣe apejuwe iṣeto aṣa rẹ fun awọn apẹẹrẹ, eyiti o ṣe iranlọwọ lati dinku ipin ogorun ti atunwi koodu.

K8S Multicluster Irin ajo

Nitoribẹẹ, irin-ajo wa jinna lati pari ati pe ọpọlọpọ awọn iṣẹ ṣiṣe ti o nifẹ si tun wa niwaju, gẹgẹbi aaye kan ti iṣẹ pẹlu awọn akọọlẹ ati awọn metiriki ti eyikeyi awọn iṣupọ, mesh iṣẹ, awọn gitops fun ṣiṣakoso awọn ẹru ni multicluster ati pupọ diẹ sii. A lero ti o ri wa iriri awon! 

Nkan ti a kọ nipasẹ A. Antipov, A. Ganush, Platform Engineers. 

orisun: www.habr.com

Fi ọrọìwòye kun