Nco tseg. txhais.: Kubernetes kev saws me nyuam ntawm GitLab yog suav tias yog ib qho ntawm ob qho tseem ceeb ua rau lub tuam txhab txoj kev loj hlob. Txawm li cas los xij, txog thaum tsis ntev los no, cov txheej txheem ntawm GitLab.com kev pabcuam online tau tsim los ntawm cov tshuab virtual, thiab tsuas yog kwv yees li ib xyoos dhau los nws txoj kev tsiv mus rau K8s pib, uas tseem tsis tau tiav. Peb txaus siab los nthuav tawm cov lus txhais ntawm ib tsab xov xwm tsis ntev los no los ntawm GitLab SRE tus kws tshaj lij txog qhov no tshwm sim li cas thiab qhov kev txiav txim siab dab tsi cov engineers koom nrog hauv txoj haujlwm tsim.
Txog ib xyoos tam sim no, peb qhov kev faib vaj tse tau hloov pauv tag nrho cov kev pabcuam khiav ntawm GitLab.com rau Kubernetes. Lub sijhawm no, peb tau ntsib cov teeb meem cuam tshuam tsis yog tsuas yog hloov cov kev pabcuam mus rau Kubernetes, tab sis kuj tseem tswj hwm kev xa tawm hybrid thaum lub sijhawm hloov pauv. Cov lus qhia tseem ceeb uas peb tau kawm yuav raug tham hauv kab lus no.
Txij thaum pib ntawm GitLab.com, nws cov servers tau khiav hauv huab ntawm cov tshuab virtual. Cov tshuab virtual no tau tswj hwm los ntawm Tus Kws Ua Haujlwm thiab nruab nrog peb official Linux pob. Kev xa tawm tswv yim Nyob rau hauv rooj plaub uas daim ntawv thov yuav tsum tau hloov kho, muaj tsuas yog hloov kho cov neeg rau zaub mov fleet nyob rau hauv ib tug sib koom tes, raws li zoo raws li siv ib tug CI pipeline. Txoj kev no - txawm tias qeeb thiab me ntsis laj laj - xyuas kom meej tias GitLab.com siv tib lub teeb tsa thiab teeb tsa kev coj ua raws li cov neeg siv offline (kev tswj tus kheej) GitLab kev teeb tsa siv peb cov pob Linux rau qhov no.
Peb siv txoj kev no vim tias nws yog ib qho tseem ceeb heev kom muaj kev nyuaj siab thiab kev xyiv fab uas cov tswv cuab hauv zej zog tau ntsib thaum txhim kho thiab teeb tsa lawv cov ntawv theej ntawm GitLab. Txoj hauv kev no ua haujlwm tau zoo rau qee lub sijhawm, tab sis thaum tus naj npawb ntawm cov haujlwm ntawm GitLab tau tshaj 10 lab, peb pom tau tias nws tsis ua raws li peb cov kev xav tau rau kev ntsuas thiab xa tawm.
Txhua qhov chaw yog tswj hwm los ntawm GitLab nws tus kheej. Rau qhov no, peb txoj haujlwm teeb tsa raws li Terraform thiab Helm yog siv. Peb sim siv GitLab nws tus kheej thaum twg ua tau los khiav GitLab, tab sis rau kev ua haujlwm peb muaj kev sib cais GitLab. Qhov no yog qhov xav tau los xyuas kom meej tias koj tsis nyob ntawm qhov muaj ntawm GitLab.com thaum ua GitLab.com xa tawm thiab hloov tshiab.
k8s-workloads/gitlab-helmfiles - Muaj kev teeb tsa rau cov kev pabcuam uas tsis cuam tshuam ncaj qha nrog daim ntawv thov GitLab. Cov no suav nrog kev teeb tsa rau kev txiav thiab saib xyuas pawg, nrog rau cov cuab yeej sib xyaw xws li PlantUML;
Gitlab-com-infrastructure - Terraform configuration rau Kubernetes thiab qub VM infrastructure. Ntawm no koj teeb tsa tag nrho cov peev txheej tsim nyog los khiav pawg, suav nrog pawg nws tus kheej, ntawm lub pas dej, cov nyiaj pabcuam, thiab chaw nyob IP chaw nyob.
Yuav luag tam sim ntawd cov teeb meem hauv qab no tau txheeb xyuas: pods rau qhov kev pab cuam Registry pib sai, tab sis launching pods rau Sidekiq coj mus rau ob feeb. Lub sijhawm pib ua haujlwm ntev rau Sidekiq pods tau dhau los ua qhov teeb meem thaum peb pib tsiv chaw ua haujlwm rau Kubernetes rau cov neeg ua haujlwm uas yuav tsum tau ua haujlwm sai thiab ntsuas nrawm.
Hauv qhov no, zaj lus qhia yog tias thaum Kubernetes 'Horizontal Pod Autoscaler (HPA) ua haujlwm kev loj hlob zoo, nws yog ib qho tseem ceeb uas yuav tau xav txog cov yam ntxwv ntawm cov khoom ua haujlwm thiab faib cov peev xwm seem rau cov pods (tshwj xeeb tshaj yog thaum kev thov tsis sib xws). Hauv peb qhov xwm txheej, muaj kev ua haujlwm sai sai, ua rau muaj kev ntsuas nrawm, uas ua rau kom muaj kev txaus siab ntawm CPU cov peev txheej ua ntej peb muaj sijhawm los ntsuas lub pas dej.
Muaj ib txwm muaj kev ntxias kom nyem ntau npaum li qhov ua tau tawm ntawm pawg, txawm li cas los xij, tau pib ntsib teeb meem kev ua tau zoo, tam sim no peb tab tom pib nrog cov pob nyiaj siv dav dav thiab txo qis tom qab, ua tib zoo saib ntawm SLOs. Launching pods rau qhov kev pabcuam Sidekiq tau nrawm nrawm thiab tam sim no siv sijhawm li 40 vib nas this ntawm qhov nruab nrab. Los ntawm txo lub sij hawm tso tawm ntawm pods yeej ob qho tib si GitLab.com thiab peb cov neeg siv ntawm tus kheej tswj kev teeb tsa ua haujlwm nrog GitLab Helm daim ntawv qhia.