Ko o maatau kitenga mai i te tau o te heke a GitLab.com ki Kubernetes

Tuhipoka. whakamaori.: Ko te whakatamarikitanga a Kubernetes i GitLab e kiia ana ko tetahi o nga take matua e rua e whai waahi ana ki te tipu o te kamupene. Heoi, tae noa ki nga wa tata nei, i hangaia te hanganga o te ratonga ipurangi GitLab.com i runga i nga miihini mariko, a kua tata ki te kotahi tau ki muri ka timata tana hekenga ki K8s, kaore ano kia oti. E harikoa ana matou ki te whakaputa i te whakamaoritanga o tetahi tuhinga tata nei na tetahi miihini GitLab SRE e pa ana ki te ahuatanga o tenei ahuatanga me nga whakatau a nga miihini e uru ana ki te kaupapa.

Ko o maatau kitenga mai i te tau o te heke a GitLab.com ki Kubernetes

Tata ki te kotahi tau inaianei, kei te heke to maatau wehenga hanganga nga ratonga katoa e whakahaere ana i runga i GitLab.com ki Kubernetes. I roto i tenei wa, i tutaki matou ki nga wero e pa ana ki te nuku i nga ratonga ki Kubernetes, engari ki te whakahaere i te tuku ranu i te wa o te whakawhiti. E hi‘opoahia te mau haapiiraa faufaa ta tatou i haapii mai i roto i teie tumu parau.

Mai i te timatanga o GitLab.com, ka rere ona kaitoro i te kapua i runga i nga miihini mariko. Ko enei miihini mariko kei te whakahaerehia e te Kaitao me te whakauru ma te whakamahi i a maatau mōkihi Linux mana. Rautaki tuku ki te hiahia kia whakahouhia te tono, ko te whakahou noa i te waka rererangi i runga i te raupapa, te raupapa raupapa ma te whakamahi i te paipa CI. Tenei tikanga - ahakoa puhoi me te iti hōhā - ka whakarite kia whakamahia e GitLab.com nga tikanga whakaurunga me nga whakaritenga whirihoranga rite ki nga kaiwhakamahi tuimotu (whakahaere-whaiaro) Ko nga whakaurunga a GitLab ma te whakamahi i a maatau kete Linux mo tenei.

Ka whakamahia e matou tenei tikanga na te mea he mea nui kia pa ki nga pouri me nga koa katoa e pa ana ki nga mema noa o te hapori i te wa e whakauru ana me te whirihora i a raatau kape o GitLab. He pai te mahi o tenei huarahi mo etahi wa, engari i te wa i neke ake ai te maha o nga kaupapa i runga i te GitLab i te 10 miriona, ka mohio matou kua kore e tutuki i o maatau hiahia mo te tauine me te tuku.

Ko nga mahi tuatahi ki nga Kubernetes me GitLab taketake-kapua

I hangaia te kaupapa i te tau 2017 Tūtohi GitLab ki te whakareri i a GitLab mo te tuku kapua, kia taea ai e nga kaiwhakamahi te whakauru i a GitLab ki nga tautau Kubernetes. I mohio matou ma te neke atu i a GitLab ki Kubernetes ka piki ake te whakahiatotanga o te papaaho SaaS, te whakangawari i nga tukunga, me te pai ake o nga rauemi rorohiko. I te wa ano, ko te maha o nga mahi o ta maatau tono i whakawhirinaki ki runga i nga waahanga NFS kua eke, na te mea i whakaroa te whakawhiti mai i nga miihini mariko.

Ko te pana ki te kapua taketake me nga Kubernetes i taea e a maatau miihini ki te whakamahere i te whakawhiti tere, i te waa i whakarerea e matou etahi o nga whakawhirinakitanga o te tono ki te rokiroki whatunga i te wa e whakawhanake tonu ana i nga ahuatanga hou. Mai i te wa i timata matou ki te whakamahere i te hekenga i te raumati o te tau 2019, kua whakatauhia te maha o enei herenga, a kei te pai haere te tukanga o te heke a GitLab.com ki Kubernetes!

Nga waahanga o GitLab.com i Kubernetes

Mo GitLab.com, ka whakamahia e matou he kahui GKE rohe kotahi e whakahaere ana i nga hokohoko tono katoa. Hei whakaiti i te uaua o te hekenga (kua uaua), ka aro matou ki nga ratonga kaore e whakawhirinaki ki te rokiroki o te rohe, NFS ranei. Kei te whakamahi a GitLab.com i te papawaewae Rails monolithic te nuinga, a ka haere matou i nga waka i runga i nga ahuatanga o te mahi ki nga waahi mutunga rereke kua wehea ki roto i o raatau ake puna puna.

Mo te taha o mua, ka wehewehea enei momo ki nga tono ki te paetukutuku, API, Git SSH/HTTPS me te Rehita. I roto i te take o te tuara, ka wehea e matou nga mahi i roto i te rarangi i runga i nga momo ahuatanga kei runga nga rohe rauemi kua tautuhia, e taea ai e matou te whakarite i nga Whainga Taumata-Ratonga (SLO) mo nga momo mahi.

Ko enei ratonga GitLab.com katoa kua whirihorahia ma te whakamahi i te tūtohi GitLab Helm kaore i whakarereketia. Ka mahia te whirihoranga i roto i nga tutohi-iti, ka taea te whiriwhiri i te wa e heke haere ana tatou i nga ratonga ki te tautau. Ahakoa i whakatau matou kia kaua e whakauru i etahi o a matou ratonga mana ki te heke, penei i a Redis, Postgres, GitLab Pages me Gitaly, ma te whakamahi i nga Kubernetes ka taea e matou te whakaiti i te maha o nga VM e whakahaerehia ana e Kaitao i tenei wa.

Kubernetes Whirihoranga Tirohanga me te Whakahaere

Ko nga tautuhinga katoa e whakahaerehia ana e GitLab ake. Mo tenei, e toru nga kaupapa whirihoranga i runga i te Terraform me te Helm e whakamahia ana. Ka ngana matou ki te whakamahi i a GitLab ake i nga wa katoa ka taea ki te whakahaere i a GitLab, engari mo nga mahi whakahaere he whakaurunga motuhake a GitLab. He mea tika tenei kia kore koe e whakawhirinaki ki te waatea o GitLab.com i te wa e mahi ana i nga tukunga me nga whakahoutanga a GitLab.com.

Ahakoa ko o maatau paipa mo te roopu Kubernetes e rere ana i runga i te whakaurunga motuhake o GitLab, he whakaata o nga putunga waehere e waatea ana ki te whanui i nga wahitau e whai ake nei:

  • k8s-maunga mahi/gitlab-com — GitLab.com anga whirihoranga mo te tūtohi GitLab Helm;
  • k8s-mahi-mahi/gitlab-helmfiles - Kei roto nga whirihoranga mo nga ratonga kaore i te hono tika ki te tono GitLab. Kei roto i enei ko nga whirihoranga mo te takiuru me te aro turuki i te roopu, me nga taputapu whakauru penei i te PlantUML;
  • Gitlab-com-hanganga — Te whirihoranga Terraform mo nga Kubernetes me nga hanganga VM tuku iho. I konei ka whirihorahia e koe nga rauemi katoa e tika ana hei whakahaere i te tautau, tae atu ki te kahui ake, nga puna node, nga kaute ratonga, me nga rahui wahitau IP.

Ko o maatau kitenga mai i te tau o te heke a GitLab.com ki Kubernetes
Ka whakaatuhia te tirohanga a te iwi ina whakarereketia. whakarāpopototanga poto me te hono ki te rereketanga o nga korero ka tirohia e SRE i mua i te whakarereketanga o te roopu.

Mo te SRE, ka ahu atu te hononga ki te rereketanga o nga korero i roto i te whakaurunga a GitLab, e whakamahia ana mo te whakaputa me te uru ki te mea he iti nei. Ma tenei ka taea e nga kaimahi me te hapori, me te kore e uru atu ki te kaupapa whakahaere (e tuwhera noa ana ki nga SRE), ki te tiro i nga huringa whirihoranga kua whakaarohia. Ma te whakakotahi i tetahi tauira GitLab tūmatanui mo te waehere me tetahi tauira motuhake mo nga raina paipa CI, ka mau tonu matou i tetahi rerenga mahi me te whakarite i te motuhake mai i GitLab.com mo nga whakahou whirihoranga.

Ko nga mea i kitea e matou i te wa o te heke

I te wa o te neke, i whiwhi wheako ka tono matou ki nga hekenga hou me nga tukunga ki Kubernetes.

1. Kua piki ake nga utu na te hokohoko i waenga i nga waahi waatea

Ko o maatau kitenga mai i te tau o te heke a GitLab.com ki Kubernetes
Ko nga tatauranga puta noa i ia ra (paita ia ra) mo te waka putunga Git i runga i GitLab.com

Ka wehewehea e Google tana whatunga ki nga rohe. Ko era, ka wehewehea ki nga rohe urunga (AZ). Ko te manaaki a Git e hono ana ki te nui o nga raraunga, no reira he mea nui ki a maatau te whakahaere i te putanga whatunga. Mo nga waka o roto, he kore utu noa te puta ki te noho ki roto i te rohe waatea. I tenei wa e tuhi ana, kei te mahi matou i te 100 TB o nga raraunga i roto i te ra mahi (a mo nga putunga putunga Git anake). Ko nga ratonga e noho ana i roto i nga miihini mariko ano i roto i o maatau topology-a-VM tawhito e rere ana inaianei i roto i nga putea Kubernetes rereke. Ko te tikanga ko etahi o nga waka i mua i te rohe ki te VM ka taea te haere ki waho o nga waahi waatea.

Ko nga tautau GKE a-rohe ka taea e koe te toro atu i nga Rohe Wteatanga maha mo te kore utu. Kei te whakaarohia e matou te tupono Wehea te roopu GKE rohe ki nga tautau-rohe kotahi mo nga ratonga e whakaputa nui ana i nga waka. Ma tenei ka whakaiti i nga utu puta i te wa e mau tonu ana te reanga taumata-rapu.

2. Tepe, tono rauemi me te tauine

Ko o maatau kitenga mai i te tau o te heke a GitLab.com ki Kubernetes
Te maha o nga tauira e tukatuka ana i nga hokohoko whakaputa i runga i te registry.gitlab.com. Ka eke nga waka i te ~15:00 UTC.

I timata ta matou korero hekenga i Akuhata 2019, i te hekenga o ta matou ratonga tuatahi, te Rehita Ipu Ipu GitLab, ki Kubernetes. He pai te whiriwhiringa o tenei ratonga miihana, he nui te waka mo te hekenga tuatahi na te mea he tono kore whenua me te iti o nga whakawhirinakitanga o waho. Ko te raru tuatahi i pa mai ki a matou ko te maha o nga peera kua peia na te kore o te mahara ki nga pona. Na tenei, me whakarereke nga tono me nga rohe.

I kitea i roto i te keehi o te tono ka piki ake te kai mahara i roto i te waa, ko nga uara iti mo nga tono (te rahui mahara mo ia pene) i honoa me te "ohaoha" tepe mo te whakamahinga i arahi ki te waatea. (te kukū) node me te taumata teitei o te pananga. Hei whakatutuki i tenei raruraru, ko i whakatauhia kia nui ake nga tono me nga rohe iti. Na tenei i tango te pehanga mai i nga pona me te whakarite he huringa ora o nga pokano kaore e nui rawa te pehanga ki te pona. Inaianei ka timata matou i nga hekenga ma te tono atawhai (me te ahua rite tonu) me te whakaiti i nga uara, me te whakatika ina tika.

3. Inenga me nga rakau

Ko o maatau kitenga mai i te tau o te heke a GitLab.com ki Kubernetes
Ko te wahanga hangahanga e aro ana ki te torohūtanga, te reiti hapa me te waatea me te whakauru whāinga taumata ratonga (SLO) hono ki wātea whānui o to tatou pūnaha.

I roto i te tau kua hipa, ko tetahi o nga kaupapa matua i roto i te wehenga hanganga ko te whakapai ake i te aro turuki me te mahi tahi me nga SLO. I whakaaetia e nga SLO ki a maatau ki te whakarite whaainga mo nga ratonga takitahi i ata tirotirohia e matou i te wa o te hekenga. Engari ahakoa te pai ake o te tirohanga, kaore e taea te kite i nga raru ma te whakamahi ine me nga matohi. Hei tauira, ma te aro ki te reiti me te reiti hapa, kaore matou e kapi katoa i nga keehi whakamahi mo tetahi ratonga e heke ana.

I kitea tenei take tata tonu i muri i te hekenga o etahi mahi ki te tautau. I tino kaha ake i te wa i tirohia e matou nga mahi he iti nei te maha o nga tono, engari he tino whirihoranga motuhake. Ko tetahi o nga akoranga matua mai i te hekenga ko te whakaaro kia kaua e aro noa ki nga inenga i te wa e aroturuki ana, engari ano hoki nga rakau me te "hiku roa" (ko tenei mo penei ta ratou tohatoha i runga i te tūtohi - āhua. whakawhiti.) hapa. Inaianei mo ia hekenga ka whakauruhia he rarangi taipitopito o nga uiui rangitaki (takitaki uiui) me te whakamahere i nga tikanga whakamuri marama ka taea te whakawhiti mai i tetahi nekehanga ki tetahi atu mena ka puta he raruraru.

Ko te tuku i nga tono rite i runga i nga hanganga VM tawhito me nga hanganga-a-Kubernetes hou he wero ahurei. Kaore i rite ki te hiki-me-neke heke (te whakawhiti tere o nga tono "penei" ki tetahi hanganga hou; ka taea te panui etahi atu korero, hei tauira, konei — āhua. whakawhiti.), Ko nga mahi whakarara i runga i nga VM "tawhito" me nga Kubernetes e hiahia ana kia hototahi nga taputapu aroturuki ki nga taiao e rua, ka taea hoki te whakakotahi i nga inenga ki te tirohanga kotahi. He mea nui kia rite tonu te whakamahi i nga papatohu me nga paatai ​​​​takitaki kia rite tonu te tirohanga i roto i te waa whakawhiti.

4. Whakawhiti waka ki te tautau hou

Mo GitLab.com, kua whakatapua tetahi waahanga o nga kaitoro atamira kanari. Ka mahi a Canary Park i a maatau kaupapa o roto, ka taea hoki ka taea e nga kaiwhakamahi. Engari ko te mea tuatahi i hangaia hei whakamatautau i nga huringa i mahia ki te hanganga me te tono. I timata te ratonga heke tuatahi ma te whakaae ki te iti o nga hokohoko o roto, a ka whakamahi tonu matou i tenei tikanga ki te whakarite kia tutuki nga SLO i mua i te tuku waka katoa ki te roopu.

Mo te hekenga, ko te tikanga ka tukuna nga tono ki nga kaupapa o roto ki a Kubernetes i te tuatahi, katahi ka huri haere te toenga o nga waka ki te tautau ma te huri i te taumaha mo te tuara ma te HAProxy. I te hekenga mai i VM ki Kubernetes, i kitea he tino painga ki te whai huarahi ngawari ki te huri i nga waka i waenga i nga hanganga tawhito me nga hanganga hou, a, na reira, kia rite nga hanganga tawhito mo te hokinga mai i nga ra tuatahi i muri i te hekenga.

5. Rahuitia te kaha o nga pene me te whakamahi

Tata tonu ka kitea te raru e whai ake nei: ka tere te tiimata o nga poti mo te ratonga Rehita, engari ko te whakarewatanga o nga poti mo Sidekiq i roa e rua meneti. Ko te roa o te wa whakaoho mo nga Sidekiq pods ka waiho hei take i te wa i timata matou ki te heke i nga kawenga mahi ki Kubernetes mo nga kaimahi e hiahia ana ki te tukatuka tere me te tere tere.

I roto i tenei take, ko te akoranga i te mea he pai te whakahaere a Kubernetes' Horizontal Pod Autoscaler (HPA) i te tipu haere o te waka, he mea nui kia whai whakaaro ki nga ahuatanga o nga taumahatanga me te toha i te kaha e waatea ana ki nga poti (ina koa ka kore te tohatoha o te tono). I roto i a maatau, i puta ohorere nga mahi, na te tere tere, na te mea i whai waahi nga rauemi CPU i mua i to maatau wa ki te tarai i te puna node.

I nga wa katoa he whakamatautau ki te kohi i nga mea e taea ana i roto i te kahui, heoi, i te tuatahi ka pa ki nga raru o te mahi, kei te timata taatau me te putea putea pai me te whakaheke i muri mai, me te aro nui ki nga SLO. Ko te whakarewatanga o nga poti mo te ratonga Sidekiq kua tino tere ake, a inaianei ka tata ki te 40 hēkona te toharite. Mai i te whakaiti i te wa whakarewatanga o nga pākākano i toa a GitLab.com me a maatau kaiwhakamahi o nga whakaurunga whakahaere-whaiaro e mahi ana me te tūtohi GitLab Helm whaimana.

mutunga

Whai muri i te hekenga o ia ratonga, i koa matou ki nga painga o te whakamahi i nga Kubernetes i roto i te whakaputanga: he tere ake, he haumaru ake hoki te tuku tono, te whakatauira, me te pai ake o te tohatoha rauemi. I tua atu, ko nga painga o te heke kei tua atu i te ratonga GitLab.com. Ko nga whakapainga katoa ki te tūtohi Helm whaimana he painga ki ana kaiwhakamahi.

Ko te tumanako i pai ki a koe te korero mo a maatau haerenga haerenga Kubernetes. Ka heke tonu matou i nga ratonga hou katoa ki te roopu. Ka kitea etahi atu korero i roto i nga panui e whai ake nei:

PS mai i te kaiwhakamaori

Pānuihia hoki i runga i ta maatau blog:

Source: will.com

Tāpiri i te kōrero