K8S Multicluster Journey

Hlo Habr!

Peb sawv cev pab pawg Exness platform. Yav dhau los, peb cov npoj yaig twb tau sau ib tsab xov xwm txog Production-npaj duab rau k8s. Niaj hnub no peb xav qhia peb cov kev paub txog kev tsiv teb tsaws chaw rau Kubernetes.

K8S Multicluster Journey

Txhawm rau pib, peb muab qee tus lej rau koj kom nkag siab zoo dua ntawm qhov yuav tham txog:

  • Peb lub tuam tsev loj hlob muaj 100+ tus neeg, suav nrog ntau dua 10 pawg sib txawv nrog rau tus kheej txaus QA, DevOps thiab Scrum txheej txheem. Txhim kho pawg - Python, PHP, C ++, Java thiab Golang. 
  • Qhov loj ntawm qhov kev sim thiab qhov chaw tsim khoom yog kwv yees li 2000 ntim txhua. Lawv tab tom khiav Rancher v1.6 ntawm lawv tus kheej virtualization thiab hauv VMware. 

Kev Txhawb

Raws li lawv hais, tsis muaj dab tsi nyob mus ib txhis, thiab Rancher tshaj tawm qhov kawg ntawm kev txhawb nqa rau version 1.6 ntev dhau los. Yog lawm, nyob rau hauv ntau tshaj peb xyoos peb tau kawm yuav ua li cas npaj nws thiab daws teeb meem uas tshwm sim, tab sis ntau thiab ntau zaus peb tau ntsib teeb meem uas yuav tsis kho. Rancher 1.6 kuj tseem muaj cov txheej txheem ossified rau kev tshaj tawm txoj cai, qhov twg koj tuaj yeem ua yuav luag txhua yam lossis tsis muaj dab tsi.

Txawm hais tias tus tswv virtualization muab kev tswj hwm ntau dua ntawm cov ntaub ntawv khaws cia thiab nws txoj kev ruaj ntseg, nws tau tsim cov nqi khiav lag luam uas nyuaj rau kev lees txais muab qhov kev loj hlob tsis tu ncua ntawm lub tuam txhab, tus naj npawb ntawm cov haujlwm thiab cov kev xav tau rau lawv.

Peb xav ua raws li IaC cov qauv thiab, yog tias tsim nyog, kom muaj peev xwm sai, nyob rau hauv txhua qhov chaw nyob thiab tsis muaj qhov muag khoom xauv, thiab tseem tuaj yeem tso tseg sai sai.

thawj kauj ruam

Ua ntej tshaj plaws, peb xav tso siab rau cov thev naus laus zis niaj hnub thiab cov kev daws teeb meem uas yuav tso cai rau cov pab pawg kom muaj lub voj voog kev loj hlob sai dua thiab txo qis cov nqi ua haujlwm rau kev cuam tshuam nrog lub platform uas muab lub zog. 
 
Tau kawg, thawj yam uas tau los rau hauv peb lub siab yog Kubernetes, tab sis peb tsis tau zoo siab thiab tau tshawb fawb me ntsis kom pom tias nws yog qhov kev xaiv zoo. Peb tau soj ntsuam tsuas yog cov kev daws teeb meem opensource, thiab hauv kev sib ntaus sib tua tsis ncaj ncees, Kubernetes yeej tsis muaj cai.  

Tom ntej no tuaj lo lus nug ntawm kev xaiv ib lub cuab yeej los tsim pawg. Peb piv cov ntsiab lus nrov tshaj plaws: kops, kubespray, kubeadm.

Txhawm rau pib, kubeadm zoo li peb yuav nyuaj dhau txoj hauv kev, zoo li zoo li ib hom kev tsim khoom ntawm "lub tsheb kauj vab," thiab kops tsis muaj qhov yooj yim txaus.

Thiab tus yeej yog:

K8S Multicluster Journey

Peb pib sim nrog peb tus kheej virtualization thiab AWS, sim rov tsim ib yam dab tsi zoo ib yam li peb cov qauv kev tswj hwm yav dhau los, qhov twg txhua tus tau koom tib "pawg." Thiab tam sim no peb muaj peb thawj pawg ntawm 10 lub tshuab virtual me me, ob peb yam nyob hauv AWS. Peb pib sim tsiv pawg nyob ntawd, txhua yam zoo li "zoo", thiab zaj dab neeg tuaj yeem ua tiav, tab sis ...

Thawj Teebmeem

Ansible yog dab tsi kubespray tsim los ntawm, nws tsis yog ib qho cuab yeej uas tso cai rau koj ua raws li IaC: thaum commissioning / decommissioning nodes, ib yam dab tsi tas li mus tsis ncaj ncees lawm thiab yuav tsum muaj qee yam kev cuam tshuam, thiab thaum siv cov OSes sib txawv, phau ntawv playbook coj txawv txawv. . Raws li cov pab pawg thiab cov nodes hauv pawg loj hlob tuaj, peb pib pom tias phau ntawv ua si tau siv sijhawm ntev thiab ua kom tiav, thiab vim li ntawd, peb cov ntaub ntawv yog 3,5 teev, koj li cas? πŸ™‚

Thiab nws zoo li kubespray tsuas yog Ansible xwb, thiab txhua yam yog tseeb thaum xub thawj siab ib muag, tab sis:

K8S Multicluster Journey

Thaum pib ntawm txoj kev taug kev, txoj haujlwm yog los tsim cov peev txheej nkaus xwb hauv AWS thiab ntawm virtualization, tab sis tom qab ntawd, raws li feem ntau tshwm sim, cov kev xav tau hloov pauv.
 
K8S Multicluster JourneyK8S Multicluster Journey

Raws li qhov no, nws tau pom tseeb tias peb cov qauv qub ntawm kev sib txuas cov peev txheej rau hauv ib qho kev sib koom ua ke tsis haum - nyob rau hauv rooj plaub uas cov pawg nyob deb heev thiab raug tswj los ntawm cov chaw muab kev pabcuam sib txawv. 

Ntxiv ntxiv. Thaum txhua pab pawg ua haujlwm nyob rau hauv tib pawg, ntau yam kev pabcuam nrog kev teeb tsa tsis raug NodeSelectors tuaj yeem ya mus rau "txawv teb chaws" tus tswv ntawm lwm pab pawg thiab siv cov peev txheej muaj, thiab yog tias tsis raug teeb tsa, muaj kev thov tas li uas ib lossis lwm qhov kev pabcuam tsis ua haujlwm, tsis faib kom raug vim tib neeg yam. Lwm qhov teeb meem yog xam tus nqi, tshwj xeeb tshaj yog xav txog cov teeb meem hauv kev faib cov kev pab cuam hla cov nodes.

Ib zaj dab neeg sib txawv yog kev tshaj tawm txoj cai rau cov neeg ua haujlwm: txhua pab pawg xav ua "ntawm lub taub hau" ntawm pawg thiab tswj hwm nws, uas tuaj yeem ua rau muaj kev sib tsoo tag nrho, vim tias cov pab pawg muaj kev ywj pheej ntawm ib leeg.

Yuav ua li cas?

Ua raws li cov lus qhia saum toj no thiab cov kev xav tau ntawm pab pawg kom muaj kev ywj pheej ntau dua, peb tau txiav txim siab yooj yim: ib pab pawg - ib pawg. 

Yog li peb tau txais qhov thib ob:

K8S Multicluster Journey

Thiab ces qhov thib peb pawg: 

K8S Multicluster Journey

Tom qab ntawd peb pib xav: cia peb hais tias hauv ib xyoos peb pab pawg yuav muaj ntau dua ib pawg? Hauv thaj chaw sib txawv, piv txwv li, lossis nyob rau hauv kev tswj hwm ntawm cov chaw muab kev pabcuam sib txawv? Thiab qee tus ntawm lawv yuav xav tau sai sai xa cov pawg ib ntus rau qee qhov kev sim. 

K8S Multicluster Journey

Kubernetes puv yuav tuaj! Qhov no yog qee yam ntawm MultiKubernetes, nws hloov tawm. 

Nyob rau tib lub sijhawm, peb txhua tus yuav tsum tau tswj hwm tag nrho cov pawg no, muaj peev xwm tswj tau yooj yim rau lawv, nrog rau tsim cov tshiab thiab tshem tawm cov qub yam tsis muaj kev cuam tshuam los ntawm phau ntawv.

Qee lub sij hawm tau dhau los txij thaum pib ntawm peb txoj kev taug kev hauv ntiaj teb Kubernetes, thiab peb tau txiav txim siab rov tshuaj xyuas cov kev daws teeb meem uas muaj. Nws muab tawm tias nws twb muaj nyob rau hauv kev ua lag luam - Rancher 2.2.

K8S Multicluster Journey

Nyob rau thawj theem ntawm peb cov kev tshawb fawb, Rancher Labs twb tau ua thawj zaug tso tawm version 2, tab sis txawm hais tias nws tuaj yeem tsa tau sai heev los ntawm kev tso lub thawv uas tsis muaj kev cuam tshuam sab nraud nrog ob peb qhov tsis zoo lossis siv daim ntawv teev npe HELM, nws zoo li tsis zoo. rau peb, thiab peb tsis paub yog tias peb tuaj yeem tso siab rau qhov kev txiav txim siab no seb nws puas yuav tsim kho lossis tso tseg sai sai. Cov pawg = clicks paradigm hauv UI nws tus kheej kuj tsis haum rau peb, thiab peb tsis xav ua khi rau RKE, vim nws yog ib qho cuab yeej nqaim nqaim. 

Version Rancher 2.2 twb muaj qhov ua tau zoo dua qub thiab, nrog rau cov yav dhau los, muaj ib pawg ntawm cov yam ntxwv nthuav tawm ntawm lub thawv, xws li kev koom ua ke nrog ntau tus neeg muab kev pabcuam sab nraud, ib qho kev faib tawm ntawm cov cai thiab cov ntaub ntawv kubeconfig, pib kubectl. duab nrog koj cov cai hauv UI, nested namespaces aka tej yaam num. 

Tseem muaj ib lub zej zog twb tsim nyob ib ncig ntawm Rancher 2, thiab ib tug kws kho mob hu ua HashiCorp Terraform tau tsim los tswj nws, uas pab peb muab txhua yam ua ke.

Ua li cas

Raws li qhov tshwm sim, peb tau xaus nrog ib pawg me me khiav Rancher, nkag mus rau tag nrho lwm pawg, nrog rau ntau pawg txuas nrog nws, nkag mus rau ib qho twg tuaj yeem tso cai raws li tsuas yog ntxiv tus neeg siv rau ldap phau ntawv qhia, tsis hais txog. nws nyob qhov twg thiab qhov chaw muab kev pab cuam nws siv.

Siv gitlab-ci thiab Terraform, ib qho system tau tsim uas tso cai rau koj los tsim ib pawg ntawm cov kev teeb tsa hauv huab lossis peb tus kheej cov txheej txheem thiab txuas rau Rancher. Tag nrho cov no yog ua tiav hauv IaC style, qhov twg txhua pawg tau piav qhia los ntawm lub chaw cia khoom, thiab nws lub xeev tau hloov kho. Nyob rau tib lub sijhawm, feem ntau cov modules txuas nrog los ntawm cov chaw khaws khoom sab nraud kom txhua yam uas tseem tshuav yog kom dhau qhov hloov pauv lossis piav qhia txog koj qhov kev cai teeb tsa rau piv txwv, uas yuav pab txo qis feem pua ​​​​ntawm cov lej rov ua dua.

K8S Multicluster Journey

Tau kawg, peb txoj kev taug kev deb dhau los thiab tseem muaj ntau txoj haujlwm nthuav dav ua ntej, xws li ib qho chaw ua haujlwm nrog cov cav thiab kev ntsuas ntawm txhua pawg, kev pabcuam mesh, gitops rau kev tswj cov khoom thauj hauv ntau pawg thiab ntau ntxiv. Peb vam tias koj yuav pom peb qhov kev nthuav dav! 

Tsab ntawv tau sau los ntawm A. Antipov, A. Ganush, Platform Engineers. 

Tau qhov twg los: www.hab.com

Ntxiv ib saib