K8S Multicluster Vjaġġ

Ħej Habr!

Aħna nirrappreżentaw it-tim tal-pjattaforma Exness. Preċedentement, il-kollegi tagħna diġà kitbu artiklu dwar Immaġini lesti għall-produzzjoni għal k8s. Illum irridu naqsmu l-esperjenza tagħna fil-migrazzjoni tas-servizzi lejn Kubernetes.

K8S Multicluster Vjaġġ

Biex tibda, noffrulek xi numri biex tifhem aħjar dak li se jiġi diskuss:

  • Id-dipartiment tal-iżvilupp tagħna jikkonsisti minn 100+ persuna, inklużi aktar minn 10 timijiet differenti bi proċessi awtosuffiċjenti ta’ QA, DevOps u Scrum. Munzell ta 'żvilupp - Python, PHP, C++, Java u Golang. 
  • Id-daqs tal-ambjenti tat-test u tal-produzzjoni huwa ta 'madwar 2000 kontenitur kull wieħed. Huma qed imexxu Rancher v1.6 fuq il-virtwalizzazzjoni tagħhom stess u taħt VMware. 

Motivazzjoni

Kif jgħidu, xejn ma jdum għal dejjem, u Rancher ħabbar it-tmiem tal-appoġġ għall-verżjoni 1.6 pjuttost żmien ilu. Iva, f’aktar minn tliet snin tgħallimna kif nippreparawh u nsolvu problemi li jinqalgħu, imma aktar u aktar spiss niffaċċjaw problemi li qatt mhu se jiġu kkoreġuti. Rancher 1.6 għandu wkoll sistema ossifikata għall-ħruġ ta 'drittijiet, fejn tista' jew tagħmel kważi kollox jew xejn.

Għalkemm il-virtwalizzazzjoni proprjetarja pprovdiet kontroll akbar fuq il-ħażna tad-dejta u s-sigurtà tagħha, imponiet spejjeż operattivi li kienu diffiċli biex jiġu aċċettati minħabba t-tkabbir kostanti tal-kumpanija, in-numru ta 'proġetti u rekwiżiti għalihom.

Ridna nsegwu l-istandards IaC u, jekk meħtieġ, niksbu kapaċità malajr, fi kwalunkwe post ġeografiku u mingħajr lock tal-bejjiegħ, u wkoll inkunu nistgħu nabbandunawha malajr.

Ewwel Passi

L-ewwelnett, ridna niddependu fuq teknoloġiji u soluzzjonijiet moderni li jippermettu lit-timijiet li jkollhom ċiklu ta 'żvilupp aktar mgħaġġel u jimminimizzaw l-ispejjeż operattivi għall-interazzjoni mal-pjattaforma li tipprovdi l-enerġija. 
 
Ovvjament, l-ewwel ħaġa li ġiet f'moħħna kienet Kubernetes, iżda ma ħadniex eċċitati u għamilna ftit riċerka biex naraw jekk kinitx l-għażla t-tajba. Aħna evalwajna biss soluzzjonijiet opensource, u f'battalja inġusta, Kubernetes rebaħ bla kundizzjoni.  

Wara ġiet il-kwistjoni tal-għażla ta 'għodda għall-ħolqien ta' clusters. Aħna qabblu l-aktar soluzzjonijiet popolari: kops, kubespray, kubeadm.

Biex tibda, kubeadm dehrilna li kienet triq ikkumplikata wisq, pjuttost bħal tip ta 'inventur ta' "rota," u kops ma kellhomx biżżejjed flessibilità.

U r-rebbieħ kien:

K8S Multicluster Vjaġġ

Bdejna nesperimentaw bil-virtwalizzazzjoni u l-AWS tagħna stess, billi ppruvaw nirrekrejaw xi ħaġa bejn wieħed u ieħor simili għall-mudell preċedenti tagħna ta 'ġestjoni tar-riżorsi, fejn kulħadd jaqsam l-istess "cluster". U issa għandna l-ewwel raggruppament tagħna ta '10 magni virtwali żgħar, li ftit minnhom jinsabu fl-AWS. Bdejna nippruvaw nimmigraw it-timijiet hemmhekk, kollox deher li kien "tajjeb", u l-istorja setgħet titlesta, iżda...

L-Ewwel Problemi

Ansible huwa dak li kubespray huwa mibni fuq, mhuwiex għodda li tippermetti li inti ssegwi IaC: meta kkummissjonar/dekummissjonar nodes, xi ħaġa kontinwament marret ħażin u xi tip ta 'intervent kien meħtieġ, u meta tuża OSs differenti, il-playbook ġab ruħu b'mod differenti. . Hekk kif in-numru ta’ timijiet u nodi fil-cluster kiber, bdejna ninnutaw li l-playbook kien qed jieħu aktar u aktar żmien biex jitlesta, u b’riżultat ta’ dan, ir-rekord tagħna kien ta’ 3,5 sigħat, xi ngħidu għal tiegħek? 🙂

U jidher li kubespray huwa biss Ansible, u kollox huwa ċar mal-ewwel daqqa t'għajn, iżda:

K8S Multicluster Vjaġġ

Fil-bidu tal-vjaġġ, il-kompitu kien li tniedi kapaċitajiet biss fl-AWS u fuq il-virtwalizzazzjoni, iżda mbagħad, kif jiġri spiss, ir-rekwiżiti nbidlu.
 
K8S Multicluster VjaġġK8S Multicluster Vjaġġ

Fid-dawl ta' dan, deher ċar li l-mudell l-antik tagħna li ngħaqqdu r-riżorsi f'sistema waħda ta' orkestrazzjoni ma kienx adattat - fil-każ fejn ir-raggruppamenti huma remoti ħafna u huma ġestiti minn fornituri differenti. 

Aktar minn hekk. Meta t-timijiet kollha jaħdmu fi ħdan l-istess cluster, diversi servizzi b'NodeSelectors installati b'mod żbaljat setgħu jtiru lejn l-ospitanti "barrani" ta 'tim ieħor u jutilizzaw ir-riżorsi hemmhekk, u jekk it-tbajja kienet stabbilita, kien hemm talbiet kostanti li servizz wieħed jew ieħor ma kienx qed jaħdem, mhux imqassma b'mod korrett minħabba fattur uman. Problema oħra kienet il-kalkolu tal-ispiża, speċjalment meta wieħed iqis il-problemi fid-distribuzzjoni tas-servizzi fuq in-nodi.

Storja separata kienet il-ħruġ tad-drittijiet lill-impjegati: kull tim ried li jkun "fuq il-kap" tar-raggruppament u jimmaniġġjah kompletament, li jista 'jikkawża kollass sħiħ, peress li t-timijiet huma bażikament indipendenti minn xulxin.

X'għandek tagħmel?

Meta qiesu dak li ntqal hawn fuq u x-xewqat tat-timijiet li jkunu aktar indipendenti, għamilna konklużjoni sempliċi: tim wieħed - cluster wieħed. 

Allura ksibna t-tieni waħda:

K8S Multicluster Vjaġġ

U mbagħad it-tielet cluster: 

K8S Multicluster Vjaġġ

Imbagħad bdejna naħsbu: ejja ngħidu li f’sena t-timijiet tagħna se jkollhom aktar minn cluster wieħed? F'żoni ġeografiċi differenti, pereżempju, jew taħt il-kontroll ta' fornituri differenti? U xi wħud minnhom ikunu jridu jkunu jistgħu jużaw malajr cluster temporanju għal xi testijiet. 

K8S Multicluster Vjaġġ

Kubernetes sħiħ kienu jiġu! Dan huwa xi tip ta 'MultiKubernetes, jirriżulta. 

Fl-istess ħin, ilkoll se jkollna b'xi mod inżommu dawn ir-raggruppamenti kollha, inkunu nistgħu namministraw faċilment l-aċċess għalihom, kif ukoll noħolqu oħrajn ġodda u dekommissjonaw dawk qodma mingħajr intervent manwali.

Għadda xi żmien mill-bidu tal-vjaġġ tagħna fid-dinja ta 'Kubernetes, u ddeċidejna li nerġgħu neżaminaw is-soluzzjonijiet disponibbli. Irriżulta li diġà jeżisti fis-suq - Rancher 2.2.

K8S Multicluster Vjaġġ

Fl-ewwel stadju tar-riċerka tagħna, Rancher Labs kienu diġà għamlu l-ewwel rilaxx tal-verżjoni 2, iżda għalkemm setgħet titqajjem malajr ħafna billi tniedi kontenitur mingħajr dipendenzi esterni bi ftit parametri jew bl-użu taċ-Ċart HELM uffiċjali, deher mhux raffinat. lilna, u ma konniex nafu jekk nistgħux nistrieħu fuq din id-deċiżjoni jekk hix se tiġi żviluppata jew abbandunata malajr. Il-paradigma cluster = klikks fl-UI nnifisha lanqas ma kinitx adattata għalina, u ma ridniex insiru marbuta ma 'RKE, peress li hija għodda ffukata pjuttost dejqa. 

Verżjoni Rancher 2.2 diġà kellha dehra aktar operabbli u, flimkien ma 'dawk preċedenti, kellha mazz ta' karatteristiċi interessanti barra mill-kaxxa, bħall-integrazzjoni ma 'ħafna fornituri esterni, punt wieħed ta' distribuzzjoni tad-drittijiet u fajls kubeconfig, tnedija ta 'kubectl immaġini bid-drittijiet tiegħek fl-UI, spazji tal-isem imnaqqsa magħrufa wkoll bħala proġetti. 

Kien hemm ukoll komunità diġà ffurmata madwar Rancher 2, u fornitur imsejjaħ HashiCorp Terraform inħoloq biex jimmaniġġjaha, li għenna npoġġu kollox flimkien.

X'ġara

Bħala riżultat, spiċċajna b'raggruppament żgħir wieħed li jmexxi Rancher, aċċessibbli għall-clusters l-oħra kollha, kif ukoll għal ħafna clusters konnessi miegħu, aċċess għal kwalunkwe wieħed minnhom jista' jingħata sempliċiment daqs li żżid utent fid-direttorju tal-ldap, irrispettivament minn fejn tinsab u r-riżorsi tal-fornitur li juża.

Bl-użu ta 'gitlab-ci u Terraform, inħolqot sistema li tippermettilek toħloq raggruppament ta' kwalunkwe konfigurazzjoni fil-fornituri tas-sħab jew l-infrastruttura tagħna stess u tgħaqqadhom ma 'Rancher. Dan kollu jsir fl-istil IaC, fejn kull cluster huwa deskritt minn repożitorju, u l-istat tiegħu huwa verżjoni. Fl-istess ħin, il-biċċa l-kbira tal-moduli huma konnessi minn repożitorji esterni sabiex kulma jibqa 'huwa li tgħaddi varjabbli jew tiddeskrivi l-konfigurazzjoni tad-dwana tiegħek għal każijiet, li jgħin biex jitnaqqas il-perċentwal ta' ripetizzjoni tal-kodiċi.

K8S Multicluster Vjaġġ

Naturalment, il-vjaġġ tagħna għadu 'l bogħod milli jintemm u għad hemm ħafna ħidmiet interessanti quddiemhom, bħal punt wieħed ta' xogħol bi zkuk u metriċi ta 'kwalunkwe clusters, servizz malji, gitops għall-ġestjoni tat-tagħbijiet f'multicluster u ħafna aktar. Nittamaw li ssib l-esperjenza tagħna interessanti! 

L-artiklu nkiteb minn A. Antipov, A. Ganush, Platform Engineers. 

Sors: www.habr.com

Żid kumment