Natiijooyinkayagii laga soo bilaabo sannad u haajiridda GitLab.com una guurnay Kubernetes

Ogow. turjumiKubernetes korsashada GitLab waxaa loo arkaa mid ka mid ah labada arrimood ee ugu muhiimsan ee gacan ka geysta kobaca shirkadda. Si kastaba ha noqotee, ilaa dhowaan, kaabayaasha adeegga khadka tooska ah ee GitLab.com waxaa lagu dhisay mashiinnada farsamada gacanta, oo kaliya hal sano ka hor socdaalkeedii K8s ayaa bilaabmay, kaas oo aan wali la dhammaystirin. Waxaan ku faraxsanahay inaan soo bandhigno tarjumaad maqaal dhowaan uu sameeyay injineer GitLab SRE oo ku saabsan sida tani u dhacdo iyo waxa ay soo gabagabeeyeen injineerada ka qayb qaadanaya mashruuca.

Natiijooyinkayagii laga soo bilaabo sannad u haajiridda GitLab.com una guurnay Kubernetes

Muddo hadda laga joogo hal sano, qaybtayada kaabayaasha ayaa u haajirtay dhammaan adeegyada ka socda GitLab.com una guuraya Kubernetes. Inta lagu jiro wakhtigan, waxaan la kulanay caqabado la xiriira kaliya maaha u wareejinta adeegyada Kubernetes, laakiin sidoo kale maaraynta hawlgelinta isku-dhafka ah inta lagu jiro kala-guurka. Duruusta qiimaha leh ee aan ka baranay waxaan kaga hadli doonaa maqaalkan.

Laga soo bilaabo bilowgii GitLab.com, adeegayaasheedu waxay ku dhex ordeen daruuraha mashiinnada farsamada. Mashiinadan casriga ah waxaa maamula Chef waxaana lagu rakibay annaga oo isticmaalaya xirmo Linux rasmi ah. Istaraatiijiyadda geynta Haddii ay dhacdo in codsigu u baahan yahay in la cusboonaysiiyo, uu ka kooban yahay in si fudud loo cusboonaysiiyo duuliyaha server-ka si isku xidhan, oo isku xiga iyadoo la isticmaalayo dhuumaha CI. Habkani - in kasta oo gaabis ah iyo wax yar caajisnimo - waxay xaqiijisaa in GitLab.com ay isticmaasho rakibaadyo iyo habayn isku mid ah sida isticmaalayaasha khadka tooska ah (is-maamul) Rakibaadaha GitLab ee isticmaalaya xirmooyinkayada Linux tan.

Waxaan u isticmaalnaa habkan sababtoo ah aad ayey muhiim u tahay in aan la kulano dhammaan murugada iyo farxadaha ay la kulmaan xubnaha caadiga ah ee bulshada marka ay rakibayaan oo habeynayaan koobiyada GitLab. Habkani wuxuu si fiican u shaqeeyay in muddo ah, laakiin markii tirada mashaariicda GitLab ay dhaaftay 10 milyan, waxaan ogaanay in aysan hadda daboolin baahidayada cabbirka iyo geynta.

Tallaabooyinka ugu horreeya ee Kubernetes iyo Cloud-Home ee GitLab

Mashruuca waxaa la abuuray 2017 Shaxda GitLab si loogu diyaariyo GitLab geynta daruuraha, iyo in loo sahlo isticmaalayaasha inay ku rakibaan GitLab kutrooyinka Kubernetes. Waxaan ogaanay markaa in GitLab loo raro Kubernetes ay kordhinayso miisaanka SaaS, fududaynta geynta, iyo hagaajinta hufnaanta ilaha xisaabinta. Isla mar ahaantaana, qaar badan oo ka mid ah shaqooyinka codsigayagu waxay kuxirnaayeen qaybaha NFS ee la rakibay, taas oo hoos u dhigtay kala-guurka mashiinnada farsamada.

U riixitaanka ku wajahan waddankii daruuriga ahaa iyo Kubernetes waxay u oggolaatay injineeradayada inay qorsheeyaan isbeddel tartiib tartiib ah, inta lagu guda jiro taas oo aan ka tagnay qaar ka mid ah ku tiirsanaanta arjiga ee kaydinta shabakadda iyadoo aan sii wadnay horumarinta astaamo cusub. Tan iyo markii aan bilownay qorsheynta socdaalka xagaaga 2019, qaar badan oo ka mid ah xaddidaadyadan waa la xaliyay, iyo habka u haajiridda GitLab.com ee Kubernetes hadda si wanaagsan ayaa loo socdaa!

Astaamaha GitLab.com ee Kubernetes

Wixii GitLab.com ah, waxaan u isticmaalnaa hal koox oo GKE ah oo maamusha dhammaan taraafikada codsiga. Si loo yareeyo kakanaanta socdaalka (horta u qalafsan), waxaanu diirada saarnaa adeegyada aan ku tiirsanayn kaydinta deegaanka ama NFS. GitLab.com waxay isticmaashaa saldhig koodeedka tareenada ee monolithic, waxaanan u mareynaa taraafikada ku saleysan sifooyinka culeyska shaqada ilaa meelo kala duwan oo dhamaadka ah kuwaas oo ku go'doonsan barkadaha noodaha.

Marka laga hadlayo dhinaca hore, noocyadan waxa loo qaybiyaa codsiyada webka, API, Git SSH/HTTPS iyo Diiwaangelinta. Xaaladda dhabarka, waxaanu u kala qaybineynaa shaqooyinka safka iyadoo loo eegayo sifooyin kala duwan oo ku xiran xuduudaha kheyraadka ee horay loo sii qeexay, kaas oo noo ogolaanaya inaan dejino Ujeeddooyinka Heerka Adeegga (SLOs) ee culeysyada shaqo ee kala duwan.

Dhammaan adeegyadan GitLab.com waxaa lagu habeeyey iyadoo la adeegsanayo jaantuska GitLab Helm oo aan la beddelin. Isku xidhka waxa lagu fuliyaa jaantusyo-hoosaadyo, kuwaas oo si xushmad leh loo awoodsiin karo marka aynu si tartiib tartiib ah ugu haajiro adeegyada kooxda. Inkasta oo aanu go'aansanay in aanan ku darin qaar ka mid ah adeegyadayada dawladnimo ee socdaalka, sida Redis, Postgres, GitLab Pages iyo Gitaly, anaga oo adeegsanayna Kubernetes waxa ay noo ogolaanaysaa in aan si weyn u dhimno tirada VM-yada uu hadda maamulo Chef.

Muuqaalka Qaabaynta Kubernetes iyo Maamulka

Dhammaan dejinta waxaa maamula GitLab lafteeda. Taas awgeed, saddex mashruuc oo qaabayn ah oo ku salaysan Terraform iyo Helm ayaa loo isticmaalaa. Waxaan isku daynaa inaan isticmaalno GitLab lafteeda mar kasta oo ay suurtagal tahay si aan u socodsiino GitLab, laakiin hawlaha hawlgalka waxaan leenahay rakibaad GitLab gooni ah. Tan waxaa loo baahan yahay si loo hubiyo inaadan ku tiirsanayn helitaanka GitLab.com marka aad samaynayso geynta GitLab.com iyo cusboonaysiinta.

Inkasta oo dhuumaheena kutlada Kubernetes ay ku shaqeeyaan rakibaadda GitLab gaar ah, waxaa jira muraayado kayd kood ah oo si guud looga heli karo ciwaannada soo socda:

  • k8s-culaysyada shaqada/gitlab-com - Qaab dhismeedka GitLab.com ee jaantuska GitLab Helm;
  • k8s-culaysyada shaqada/gitlab-helmfiles - Waxa ku jira habaynta adeegyada aan si toos ah ula xidhiidhin codsiga GitLab. Kuwaas waxaa ka mid ah habaynta loogu talagalay la socoshada gooynta iyo kooxda, iyo sidoo kale qalabyada isku dhafan sida PlantUML;
  • Gitlab-com-kaabayaasha - Qaabeynta Terraform ee Kubernetes iyo kaabayaasha VM ee dhaxalka ah. Halkan waxa aad ku habaynaysaa dhammaan agabka lagama maarmaanka u ah in lagu socodsiiyo kutlada, oo ay ku jiraan kooxda lafteeda, barkadaha noodhka, xisaabaadka adeegga, iyo kaydinta ciwaanka IP-ga.

Natiijooyinkayagii laga soo bilaabo sannad u haajiridda GitLab.com una guurnay Kubernetes
Aragtida dadwaynaha ayaa la muujiyaa marka isbedel la sameeyo. kooban oo kooban iyada oo xidhiidh la leh kala duwanaanshiyaha faahfaahsan ee SRE ay falanqayso ka hor inta aanay isbeddel ku samayn kooxda.

SRE, iskuxirku wuxuu u horseedaa kala duwanaansho faahfaahsan oo ku saabsan rakibaadda GitLab, kaas oo loo isticmaalo wax soo saarka iyo gelitaanka taas oo xaddidan. Tani waxay u oggolaanaysaa shaqaalaha iyo bulshada, iyada oo aan la helin mashruuca hawlgalka (kaas oo u furan kaliya SRE-yada), si ay u eegaan isbeddellada qaabeynta ee la soo jeediyay. Marka la isku daro tusaale GitLab dadweyne oo kood ah tusaale gaar ah oo loogu talagalay dhuumaha CI, waxaan ilaalineynaa hal socod oo shaqo annagoo hubinayna madax banaanida GitLab.com ee cusbooneysiinta qaabeynta.

Maxaan ogaanay intii aan tahriibaynay

Intii lagu guda jiray guuritaanka, waxaa la helay waayo-aragnimo ah inaan codsano socdaalka cusub iyo hawlgelinta Kubernetes.

1. Kharashka oo kordhay sababtoo ah gaadiidka u dhexeeya aagagga la heli karo

Natiijooyinkayagii laga soo bilaabo sannad u haajiridda GitLab.com una guurnay Kubernetes
Tirakoobka goosashada maalinlaha ah (bytes maalintii) ee kooxda kaydka Git ee GitLab.com

Google wuxuu u qaybiyaa shabakadeeda gobollo. Kuwaas, iyaguna, waxay u qaybsamaan aagagga gelitaan (AZ). Martigelinta Git waxa ay la xidhiidhaa tiro badan oo xog ah, sidaa awgeed waxa muhiim noo ah in aanu xakamayno shabakada ka baxaysa. Gaadiidka gudaha, ka bixitaanku waa bilaash haddii ay ku sii jirto isla aagga la heli karo. Qoraalkan, waxaan u adeegaynaa ku dhawaad ​​100 TB oo xog ah maalin shaqo oo caadi ah (taasina waxaa loogu talagalay kaydadka Git). Adeegyada ku noolaa isla mashiinnada farsamada gacanta ee topology-keenii hore ee VM-ku-saleysan ayaa hadda ku shaqeeya noocyo kala duwan oo Kubernetes ah. Tani waxay ka dhigan tahay in taraafikada qaarkood ee hore u ahaan jiray VM-gu ay suurtogal tahay inay u safraan meel ka baxsan aagagga la heli karo.

Kooxaha GKE-da ee gobolku waxay kuu oggolaanayaan inaad ballaadhiso aagag badan oo la heli karo si dib loogu noqdo. Waxaan ka fiirsaneynaa suurtagalnimada Kooxda GKE-da ee gobolka u kala qaybisay kooxo hal aag ah adeegyada soo saara tiro badan oo gaadiid ah. Tani waxay hoos u dhigi doontaa kharashyada soo baxa iyadoo la ilaalinayo shaqo-ka-dhisista heerka-cluster-ka.

2. Xaddid, codsiyada kheyraadka iyo cabbiridda

Natiijooyinkayagii laga soo bilaabo sannad u haajiridda GitLab.com una guurnay Kubernetes
Tirada nuqulada ka baaraandega taraafikada wax soo saarka ee registry.gitlab.com. Gaadiidka ugu sarreeya ~15:00 UTC.

Sheekada socdaalkayadu waxay bilaabatay Agoosto 2019, markii aan u haajiray adeegyagii ugu horreeyay, Diiwaanka Kontaynarada GitLab, una guurnay Kubernetes. Himilada-muhiimka ah, adeegga gaadiidka sare wuxuu ahaa doorasho wanaagsan socdaalkii ugu horreeyay sababtoo ah waa codsi bilaa waddan ah oo leh dhowr ku tiirsanaansho dibadeed. Dhibaatadii ugu horreysay ee aan la kulanno waxay ahayd tiro badan oo kalluun ah oo la saaray sababtoo ah xusuusta la'aanta qanjidhada. Sababtaas awgeed, waa inaan beddelno codsiyada iyo xadka.

Waxaa la ogaaday in kiiska codsiga halkaasoo isticmaalka xusuusta uu kordho waqti ka dib, qiimaha hooseeya ee codsiyada (xusuusta kaydinta boodhka kasta) oo ay weheliso xaddidaad "deeqsi ah" oo xaddidan isticmaalka ayaa horseeday saturation. (qaran) noodhka iyo heerka sare ee ka saarida. Si wax looga qabto dhibaatadan, waxay ahayd waxaa la go'aamiyay in la kordhiyo codsiyada iyo xadka hoose. Tani waxay cadaadiska ka saartay noodhka waxayna xaqiijisay in boobyadu ay leeyihiin wareeg nololeed oo aan cadaadis badan saarin noodhka. Hadda waxaan ku bilownaa hijrada codsi deeqsinimo ah (oo isku mid ah) waxaanan xaddidnaa qiyamka, anagoo hagaajinayna hadba sida loo baahdo.

3. Metrics iyo logs

Natiijooyinkayagii laga soo bilaabo sannad u haajiridda GitLab.com una guurnay Kubernetes
Qaybta kaabayaasha waxay diiradda saartaa daahitaanka, heerka khaladaadka iyo buuxinta la rakibay yoolalka heerka adeegga (SLO) oo ku xidhan helitaanka guud ee nidaamkayaga.

Sannadkii la soo dhaafay, mid ka mid ah dhacdooyinka muhiimka ah ee qaybta kaabayaasha ayaa ahayd hagaajinta la socodka iyo la shaqaynta SLOs. SLO-yadu waxay noo ogolaadeen inaanu dejino yoolalka adeegyada gaarka ah ee aanu si dhow ula soconay intii aanu socdaalka ku jirnay. Laakin xitaa iyada oo la eegayo la fiirsigan la wanaajiyay, mar walba suurtagal ma aha in isla markaaba la arko mashaakilaadka iyadoo la isticmaalayo qiyaasaha iyo digniinaha. Tusaale ahaan, annagoo diiradda saarayna daahida iyo heerka khaladaadka, si buuxda uma daboolno dhammaan kiisaska isticmaalka adeegga socdaalka.

Arrintan ayaa la ogaaday isla markiiba ka dib markii culeysyo shaqo loo guuray kooxda. Waxay si gaar ah u noqotay mid aad u daran markii aan hubinayno shaqooyinka tirada codsiyadu ay yar yihiin, laakiin leh ku tiirsanaanta qaabeynta gaarka ah. Mid ka mid ah casharrada muhiimka ah ee socdaalka ayaa ahaa baahida loo qabo in la tixgeliyo ma aha oo kaliya jaangooyooyinka marka la kormeerayo, laakiin sidoo kale logs iyo "dabada dheer" (tani waxay ku saabsan tahay sida qaybintooda shaxda - qiyaastii. turjumi.) khaladaadka. Hadda guur kasta waxaan ku darnaa liis faahfaahsan oo su'aalo log ah (Log su'aalo) oo qorshee habab dib-u-noqosho cad oo loo wareejin karo hal wareeg oo kale haddii dhibaatooyin soo baxaan.

U adeegida codsiyo isku mid ah oo barbar socda kaabayaashii hore ee VM iyo kaabayaasha kubernetes-ku-salaysan ee cusub ayaa soo bandhigay caqabad gaar ah. Si ka duwan hijrada wiish-iyo-wareejin (wareejin degdeg ah oo codsiyada "sida ay tahay" kaabayaasha cusub; faahfaahin dheeraad ah ayaa la akhriyi karaa, tusaale ahaan, halkan - qiyaastii. turjumi.), Shaqada isku midka ah ee VM-yadii hore iyo Kubernetes waxay u baahan yihiin in qalabyada kormeerku ay la socdaan labada deegaan oo ay awoodaan inay isku daraan cabbirrada hal aragti. Waa muhiim in aan isticmaalno dashboards isku mid ah iyo su'aalo log ah si aan u gaarno indho-indheyn joogto ah inta lagu jiro xilliga kala guurka.

4. U beddelashada taraafikada koox cusub

Wixii GitLab.com ah, qayb ka mid ah adeegayaasha ayaa u heellan marxaladda canary. Canary Park waxay u adeegtaa mashaariicdayada gudaha iyo sidoo kale awood by isticmaalayaasha. Laakiin waxaa ugu horrayn loogu talagalay in lagu tijaabiyo isbeddellada lagu sameeyay kaabayaasha iyo adeegsiga. Adeeggii ugu horreeyay ee guuray wuxuu ku bilaabmay aqbalka xaddi xaddidan oo taraafikada gudaha ah, waxaanan sii wadeynaa adeegsiga habkan si aan u hubinno in SLO-yada la buuxiyo ka hor inta aan dhammaan taraafikada loo dirin kooxda.

Xaaladda socdaalka, tani waxay ka dhigan tahay in codsiyada mashaariicda gudaha loo diro Kubernetes marka hore, ka dibna waxaan si tartiib tartiib ah u beddeleynaa inta ka hartay taraafikada kooxda anagoo beddelayna miisaanka dhabarka iyada oo loo marayo HAProxy. Intii lagu guda jiray socdaalka VM ilaa Kubernetes, waxaa caddaatay in ay aad u faa'iido badan tahay in la helo hab sahlan oo lagu jiheeyo gaadiidka u dhexeeya kaabayaasha hore iyo kuwa cusub, sidaas awgeed, kaabayaashii hore u diyaari dib u noqoshada dhowrka maalmood ee ugu horreeya ka dib socdaalka.

5. Awooda kaydka boodhka iyo isticmaalkooda

Ku dhawaad ​​isla markiiba dhibaatadan soo socota ayaa la aqoonsaday: galalka adeegga Diiwaangelinta ayaa si degdeg ah u bilaabmay, laakiin soo saarista boodhadhka Sidekiq ayaa qaadatay ilaa laba daqiiqo. Wakhtiga dheer ee bilawga ah ee Sidekiq pods wuxuu noqday arin markii aanu bilownay u haajiridda culayska shaqada ee Kubernetes ee shaqaalaha u baahan inay si dhakhso leh u baaraan shaqooyinka oo si degdeg ah u cabbiraan.

Xaaladdan oo kale, casharku wuxuu ahaa in iyada oo Kubernetes 'Horizontal Pod Autoscaler (HPA) ay si fiican u maareyso kobaca taraafikada, waxaa muhiim ah in la tixgeliyo sifooyinka culeyska shaqada oo loo qoondeeyo awoodda firaaqada ee boodhka (gaar ahaan marka baahida loo qaybiyo si siman). Xaaladeena, waxaa si lama filaan ah shaqooyinku u kordhay, taasoo keentay in si degdeg ah loo miisaamo, taas oo keentay in ay buuxsamaan agabka CPU ka hor inta aanaan helin wakhti aan ku cabbirno barkadda noodhka.

Had iyo jeer waxaa jira damac ah in la tuujiyo inta ugu badan ee suurtogalka ah ee kutlada, si kastaba ha ahaatee, markii hore ee aan la kulannay dhibaatooyinka waxqabadka, waxaan hadda ku bilaabeynaa miisaaniyad deeqsinimo ah oo yareynaya mar dambe, iyada oo si dhow loola socdo SLOs. Daahfurka tubooyinka adeegga Sidekiq ayaa si weyn u dardar-galiyay oo hadda waxay qaadataa qiyaastii 40 ilbiriqsi celcelis ahaan. Laga soo bilaabo dhimista wakhtiga bilaabista boodhka ku guulaysteen labadaba GitLab.com iyo isticmaalayaashayada rakibaadaha iskood isu maamula ee la shaqaynaya shaxda rasmiga ah ee GitLab Helm.

gunaanad

Ka dib markii aan u haajiray adeeg kasta, waxaan ku faraxsanahay faa'iidooyinka isticmaalka Kubernetes ee wax soo saarka: deg deg ah oo ammaan ah codsi geynta, cabbiridda, iyo qoondaynta kheyraadka hufan. Intaa waxaa dheer, faa'iidooyinka socdaalka ayaa ka baxsan adeegga GitLab.com. Horumar kasta oo lagu sameeyo shaxda rasmiga ah ee Helm waxay faa'iido u leedahay isticmaaleyaasheeda.

Waxaan rajeynayaa inaad ku raaxaysatay sheekada tacaburka socdaalka Kubernetes. Waxaan sii wadeynaa inaan u haajiro dhammaan adeegyada cusub kooxda. Macluumaad dheeri ah ayaa laga heli karaa daabacadaha soo socda:

PS ka turjumaan

Sidoo kale ka akhri boggayaga:

Source: www.habr.com

Add a comment