K8S Multicluster Vwayaj

Hey Habr!

Nou reprezante ekip platfòm Exness la. Précédemment, kòlèg nou yo te deja ekri yon atik sou Imaj pwodiksyon-pare pou k8s. Jodi a nou vle pataje eksperyans nou nan migrasyon sèvis nan Kubernetes.

K8S Multicluster Vwayaj

Pou kòmanse, nou ofri w kèk nimewo pou yon pi bon konpreyansyon sou sa ki pral diskite:

  • Depatman devlopman nou an konsiste de plis pase 100 moun, ki gen ladan plis pase 10 ekip diferan ak pwosesis QA, DevOps ak Scrum endepandan. Pile devlopman - Python, PHP, C++, Java ak Golang. 
  • Gwosè tès ak pwodiksyon anviwònman yo se apeprè 2000 resipyan chak. Yo ap kouri Rancher v1.6 sou pwòp Virtualization yo ak anba VMware. 

Motivasyon

Kòm yo di, pa gen anyen ki dire pou tout tan, ak Rancher te anonse fen sipò pou vèsyon 1.6 byen lontan de sa. Wi, nan plis pase twazan nou te aprann kijan pou prepare li ak rezoud pwoblèm ki leve, men pi plis ak pi souvan nou fè fas ak pwoblèm ki pa janm ka korije. Rancher 1.6 tou gen yon sistèm osifye pou bay dwa, kote ou ka swa fè prèske tout bagay oswa pa gen anyen.

Malgre ke pwopriyetè Virtualization te bay pi gwo kontwòl sou depo done ak sekirite li yo, li te enpoze depans fonksyònman ki te difisil pou aksepte bay kwasans lan konstan nan konpayi an, kantite pwojè ak kondisyon pou yo.

Nou te vle swiv estanda IaC epi, si sa nesesè, jwenn kapasite byen vit, nan nenpòt kote jeyografik ak san yon seri machann, epi tou kapab byen vit abandone li.

Etap Premye

Premye a tout, nou te vle konte sou teknoloji modèn ak solisyon ki ta pèmèt ekip yo gen yon sik devlopman pi rapid epi minimize depans operasyonèl pou kominike avèk platfòm ki bay pouvwa a. 
 
Natirèlman, premye bagay ki te vin nan lespri nou se Kubernetes, men nou pa t 'te eksite epi nou te fè yon ti rechèch pou wè si se te bon chwa. Nou te evalye sèlman solisyon opensource, ak nan yon batay enjis, Kubernetes te genyen san kondisyon.  

Apre sa, te vin kesyon an nan chwazi yon zouti pou kreye grap. Nou konpare solisyon ki pi popilè yo: kops, kubespray, kubeadm.

Pou kòmanse, kubeadm te sanble yo se yon chemen twò konplike, pito tankou yon kalite envantè nan yon "bisiklèt," ak kops pa t 'gen ase fleksibilite.

Ak gayan an te:

K8S Multicluster Vwayaj

Nou te kòmanse fè eksperyans ak pwòp Virtualizasyon pa nou ak AWS, ap eseye rkree yon bagay ki sanble ak modèl jesyon resous anvan nou an, kote tout moun te pataje menm "gwoup." Epi kounye a nou gen premye gwoup nou an nan 10 ti machin vityèl, yon koup nan yo ki sitiye nan AWS. Nou te kòmanse eseye emigre ekip la, tout bagay te sanble yo dwe "bon", epi istwa a te kapab fini, men...

Premye pwoblèm

Ansible se sa ki kubespray bati sou, li se pa yon zouti ki pèmèt ou swiv IaC: lè komisyonin / dekomisyon nœuds, yon bagay toujou ap mal ale ak kèk kalite entèvansyon yo te obligatwa, ak lè w ap itilize diferan OS, playbook la konpòte yon fason diferan. . Kòm kantite ekip ak nœuds nan gwoup la te grandi, nou te kòmanse remake ke liv jwèt la t ap pran pi long ak plis tan pou konplete, e kòm rezilta, dosye nou an te 3,5 èdtan, e pa w la? 🙂

Epi li sanble ke kubespray se jis Ansible, ak tout bagay klè nan premye gade, men:

K8S Multicluster Vwayaj

Nan kòmansman vwayaj la, travay la se te lanse kapasite sèlman nan AWS ak sou Virtualization, men Lè sa a, kòm souvan rive, kondisyon yo chanje.
 
K8S Multicluster VwayajK8S Multicluster Vwayaj

Nan limyè de sa, li te vin klè ke ansyen modèl nou an nan konbine resous nan yon sèl sistèm òkestrasyon pa te apwopriye - nan ka a kote grap yo trè aleka epi yo jere pa founisè diferan. 

Pli lwen plis. Lè tout ekip yo travay nan menm gwoup la, plizyè sèvis ki gen NodeSelectors mal enstale yo te kapab vole ale nan lame "etranje" yon lòt ekip epi sèvi ak resous la, epi si tach te mete, te gen demann konstan ke youn oswa yon lòt sèvis pa t ap travay, pa distribye kòrèkteman akòz faktè imen. Yon lòt pwoblèm te kalkile pri a, espesyalman konsidere pwoblèm yo nan distribye sèvis atravè nœuds.

Yon istwa separe te emisyon dwa pou anplwaye yo: chak ekip te vle "nan tèt" gwoup la ak konplètman jere li, sa ki ka lakòz yon efondreman konplè, paske ekip yo fondamantalman endepandan youn ak lòt.

Ki jan yo dwe?

Lè nou konsidere sa ki pi wo a ak volonte ekip yo pou yo vin pi endepandan, nou te fè yon konklizyon senp: yon ekip - yon gwoup. 

Se konsa, nou te resevwa yon dezyèm:

K8S Multicluster Vwayaj

Apre sa, twazyèm gwoup la: 

K8S Multicluster Vwayaj

Lè sa a, nou te kòmanse panse: an n di ke nan yon ane ekip nou yo ap gen plis pase yon gwoup? Nan diferan zòn jeyografik, pa egzanp, oswa anba kontwòl diferan founisè? Ak kèk nan yo pral vle pou kapab byen vit deplwaye yon gwoup tanporè pou kèk tès. 

K8S Multicluster Vwayaj

Kubernetes konplè ta vini! Sa a se kèk kalite MultiKubernetes, li vire soti. 

An menm tan, nou tout pral bezwen yon jan kanmenm kenbe tout grap sa yo, kapab fasilman jere aksè a yo, osi byen ke kreye nouvo ak dezame ansyen yo san entèvansyon manyèl.

Gen kèk tan pase depi kòmansman vwayaj nou an nan mond Kubernetes, epi nou deside re-egzamine solisyon ki disponib yo. Li te tounen soti ke li deja egziste sou mache a - Rancher 2.2.

K8S Multicluster Vwayaj

Nan premye etap rechèch nou an, Rancher Labs te deja fè premye lage vèsyon 2 a, men byenke li te kapab ogmante trè vit lè yo lanse yon veso san depandans ekstèn ak yon koup nan paramèt oswa lè l sèvi avèk Tablo HELM ofisyèl la, li te sanble brit. pou nou, e nou pa t 'konnen si nou ta ka konte sou desizyon sa a si wi ou non li pral devlope oswa byen vit abandone. Gwoup = klik paradigm nan UI a li menm tou pa t 'koresponn ak nou, epi nou pa t' vle vin mare nan RKE, paske li se yon zouti olye etwat konsantre. 

Version Rancher 2.2 te deja gen yon aparans ki pi posib epi, ansanm ak sa yo anvan yo, te gen yon pakèt karakteristik enteresan soti nan bwat la, tankou entegrasyon ak anpil founisè ekstèn, yon sèl pwen nan distribisyon dwa ak dosye kubeconfig, lanse yon kubectl. imaj ki gen dwa w nan UI a, espas non enbrike aka pwojè. 

Te gen tou yon kominote ki te deja fòme alantou Rancher 2, epi yo te kreye yon founisè ki rele HashiCorp Terraform pou jere li, ki te ede nou mete tout bagay ansanm.

Sak pase

Kòm yon rezilta, nou te fini ak yon ti grap kouri Rancher, aksesib a tout lòt grap yo, osi byen ke anpil grap ki konekte ak li, yo ka akòde aksè a nenpòt nan yo menm jan tou senpleman ajoute yon itilizatè nan anyè ldap, kèlkeswa kote li ye ak ki resous founisè li itilize.

Sèvi ak gitlab-ci ak Terraform, yo te kreye yon sistèm ki pèmèt ou kreye yon gwoup nenpòt konfigirasyon nan founisè nwaj oswa pwòp enfrastrikti pa nou epi konekte yo ak Rancher. Tout bagay sa a se fè nan style la IaC, kote chak gwoup dekri pa yon depo, ak eta li yo vèsyon. An menm tan an, pifò modil yo konekte nan depo ekstèn pou tout sa ki rete se pase varyab oswa dekri konfigirasyon koutim ou pou egzanp, ki ede diminye pousantaj repetisyon kòd.

K8S Multicluster Vwayaj

Natirèlman, vwayaj nou an se byen lwen fini ak toujou gen anpil travay enteresan pi devan, tankou yon sèl pwen nan travay ak mòso bwa ak mezi nan nenpòt grap, may sèvis, gitops pou jere chaj nan yon multicluster ak plis ankò. Nou espere ou jwenn eksperyans nou enteresan! 

Atik la te ekri pa A. Antipov, A. Ganush, Platform Engineers. 

Sous: www.habr.com

Add nouvo kòmantè