GitOps: Whakatauritenga o nga Tikanga Kume me te Pana

Tuhipoka. whakamaori.: I roto i te hapori Kubernetes, ko te ahua e kiia nei ko GitOps kei te tino rongonui, pera i ta maatau i kite, toro KubeCon Europe 2019. No tata nei tenei kupu mea hanga na te tumuaki o Weaveworks - Alexis Richardson - me te tikanga ko te whakamahi taputapu e mohio ana ki nga kaihanga (ko te tuatahi ko Git, no reira te ingoa) hei whakaoti rapanga whakahaere. Ina koa, e korero ana matou mo te mahi a Kubernetes ma te penapena i ona whirihoranga ki Git me te huri aunoa i nga huringa ki te tautau. Ka korero a Matthias Jg mo nga huarahi e rua mo tenei whakaputanga i tenei tuhinga.

GitOps: Whakatauritenga o nga Tikanga Kume me te Pana

Te tau whakamutunga (arā, i tū ōkawatia tēnei i te Here-turi-kōkā 2017 - āhua. transl.) He huarahi hou mo te tuku tono ki Kubernetes. E kiia ana ko GitOps, a na runga i te whakaaro taketake ko nga putanga tukunga ka whaia i roto i te taiao haumaru o te putunga Git.

Ko nga painga matua o tenei huarahi e whai ake nei::

  1. Te tukunga putanga me te hitori huringa. Ko te ahua o te roopu katoa ka rongoa ki roto i te putunga putunga Git, ka whakahouhia nga tukunga ma te tuku noa. Hei taapiri, ka taea te whai i nga huringa katoa ma te whakamahi i te hitori tuku.
  2. Whakamuri ma te whakamahi i nga tono Git e mohio ana. Maamaa git reset ka taea e koe te tautuhi i nga huringa i roto i nga whakatakotoranga; kei te waatea tonu nga whenua o mua.
  3. Kua reri te mana uru. Ko te tikanga, he maha nga raraunga tairongo kei roto i te punaha Git, no reira ka aro nui te nuinga o nga kamupene ki te tiaki. No reira, ka pa ano tenei whakamarumaru ki nga mahi me nga whakatakotoranga.
  4. Nga kaupapa here mo te tuku. Ko te nuinga o nga punaha Git e tautoko ana i nga kaupapa here-a-manga—hei tauira, ko nga tono kume anake ka taea te whakahou i te rangatira, me arotake, me whakaae e tetahi atu mema o te roopu. Pērā i te mana uru, he rite nga kaupapa here ki nga whakahōunga tukunga.

Ka kite koe, he maha nga painga o te tikanga GitOps. I roto i te tau kua hipa, e rua nga huarahi kua tino rongonui. Ko tetahi he pana, ko tetahi he kumea. I mua i te titiro ki a raatau, me titiro tuatahi ki te ahua o nga whakatakotoranga a Kubernetes.

Nga Tikanga Tukunga

I nga tau tata nei, he maha nga tikanga me nga taputapu mo te whakatakotoranga kua whakatauhia ki Kubernetes:

  1. I runga i nga tauira Kubernetes/Kustomize taketake. Koinei te huarahi ngawari ki te tuku tono ki runga i nga Kubernetes. Ka hangaia e te kaiwhakawhanake nga konae YAML taketake me te whakamahi. Hei whakakore i te tuhi ano i nga tauira rite tonu, i whakawhanakehia a Kustomize (ka huri i nga tauira Kubernetes hei tauira). Tuhipoka. whakamaori.: Kua whakauruhia a Kustomize ki te kubectl me te tukunga o Kubernetes 1.14.
  2. Tūtohi Helm. Ko nga tūtohi Helm ka taea e koe te hanga huinga tauira, ipu init, sidecars, aha atu, e whakamahia ana ki te tuku tono me nga whiringa whakaritenga ngawari ake i te huarahi i runga i te tauira. Ko tenei tikanga i ahu mai i nga konae YAML tauira. Ka whakakiia e te Helm ki nga momo tawhā ka tukuna atu ki Tiller, he waahanga kapoi e tuku ana ki te tautau ka taea te whakahou me te huri whakamuri. Ko te mea nui ko te Helm ka whakauru noa i nga uara e hiahiatia ana ki roto i nga tauira katahi ka whakamahi i nga tikanga pera me te mahi i roto i nga tikanga tuku iho. (panui atu mo te mahi katoa me te pehea e taea ai e koe te whakamahi i roto i ta maatau tuhinga na Helm — āhua. whakawhiti.). He maha nga momo tūtohi Helm kua reri e kapi ana i te whānuitanga o nga mahi.
  3. Utauta rereke. He maha nga taputapu rereke. Ko te mea e rite ana ki a raatau ko te huri i etahi konae tauira ki nga konae YAML ka taea te panui a Kubernetes ka whakamahia.

I roto i a maatau mahi, ka whakamahi tonu matou i nga tūtohi Helm mo nga taputapu nui (na te mea he maha nga mea kua reri, he maamaa ake te ora) me nga konae Kubernetes YAML "parakore" mo te tuku i a maatau ake tono.

Toia & Pana

I roto i tetahi o aku pou rangitaki tata nei, i whakauruhia e ahau te taputapu Weave Flux, ka taea e koe te tuku tauira ki te putunga Git me te whakahou i te tukunga i muri i ia tukunga, panaia ranei o te ipu. Ko taku wheako e whakaatu ana ko tenei taputapu tetahi o nga mea nui ki te whakatairanga i te huarahi kume, no reira ka korero ahau ki a ia. Mena kei te pirangi koe ki te mohio atu me pehea te whakamahi, konei hono ki te tuhinga.

NB! Ko nga painga katoa o te whakamahi i nga GitOps ka noho tonu mo nga huarahi e rua.

Te huarahi kumea

GitOps: Whakatauritenga o nga Tikanga Kume me te Pana

Ko te huarahi kume i runga i te meka ka whakamahia nga huringa katoa mai i roto i te tautau. He kaiwhakahaere kei roto i te kahui e tirotiro ana i nga putunga Rehita Git me Docker e hono ana. Mena ka puta he huringa ki a raatau, ka whakahouhia te ahua o te roopu ki roto. Ko te tikanga he tino haumaru tenei mahi, na te mea karekau he kiritaki o waho e whai waahi ki nga mana kaiwhakahaere roopu.

Kaupapa:

  1. Karekau he mana o te kiritaki o waho ki te whakarereke i te roopu; ka hurihia nga whakahou katoa mai i roto.
  2. Ko etahi taputapu ka taea e koe te tukutahi i nga whakahōutanga tūtohi Helm me te hono atu ki te tautau.
  3. Ka taea te karapahia te Rehita Docker mo nga putanga hou. Mena kei te waatea he ahua hou, ka whakahouhia te putunga Git me te whakatakotoranga ki te putanga hou.
  4. Ka taea te toha i nga taputapu toha puta noa i nga mokowāingoa rereke me nga momo putunga me nga whakaaetanga a Git. He mihi ki tenei, ka taea te whakamahi i te tauira multitenant. Hei tauira, ka whakamahia pea e te kapa A te mokowāingoa A, ka whakamahi pea te kapa B i te mokowāingoa B, ka whakamahi pea te kapa hangahanga i te waahi o te ao.
  5. Hei tikanga, he tino ngawari nga taputapu.
  6. Whakakotahitia me nga taputapu penei i te kaiwhakahaere Nga mea ngaro a Bitnami, ka taea te penapena i nga mea ngaro ki roto i te putunga Git ka tikina mai i roto i te tautau.
  7. Karekau he hononga ki nga raina paipa CD mai i te mea ka puta nga tukunga ki roto i te tautau.

Минусы:

  1. Ko te whakahaere i nga mea ngaro mai i nga mahere Helm he uaua ake i nga mea noa, na te mea me hanga i te tuatahi ki te ahua o, me kii, he mea huna kua hiri, katahi ka wetewetehia e tetahi kaiwhakahaere o roto, a muri iho ka waatea ki te taputapu kume. Na ka taea e koe te whakahaere i te tuku i Helm me nga uara kei roto i nga mea ngaro kua tukuna. Ko te huarahi ngawari ko te hanga mea ngaro me nga uara Helm katoa e whakamahia ana mo te tuku, wetewetehia ka tuku ki a Git.
  2. Ina tango koe i te huarahi kume, ka herea koe ki te kume taputapu. Ka whakawhāiti tēnei i te kaha ki te whakarite i te hātepe tukunga i roto i te kāhui. Hei tauira, he uaua a Kustomize na te mea me whakahaere i mua i te tukunga o nga tauira whakamutunga ki a Git. Kaore au e kii ana kaore e taea e koe te whakamahi i nga taputapu tuuturu, engari he uaua ake ki te whakauru ki roto i to mahi tuku.

Te huarahi pana

GitOps: Whakatauritenga o nga Tikanga Kume me te Pana

I roto i te huarahi pana, ka whakarewahia e te punaha o waho (te nuinga o nga raina paipa CD) te tuku ki te kahui i muri i te tukunga ki te putunga Git, ki te angitu ranei te paipa CI o mua. I tenei huarahi, ka uru te punaha ki te roopu.

Плюсы:

  1. Ka whakatauhia te haumarutanga e te putunga Git me te hanga paipa.
  2. He ngawari ake te whakatakoto i nga tūtohi Helm me te tautoko i nga taputapu Helm.
  3. He ngawari ake te whakahaere i nga mea ngaro na te mea ka taea te whakamahi i nga mea ngaro ki roto i nga paipa, ka taea hoki te penapena whakamunatia ki te Git (i runga i nga hiahia o te kaiwhakamahi).
  4. Kaore he hononga ki tetahi taputapu motuhake, na te mea ka taea te whakamahi i tetahi momo.
  5. Ko nga whakahoutanga putanga ipu ka taea te timata ma te paipa hanga.

Минусы:

  1. Ko nga raraunga urunga roopu kei roto i te punaha hanga.
  2. He maamaa tonu te whakahou i nga ipu tuku ma te mahi kume.
  3. He nui te whakawhirinaki ki te punaha CD, na te mea kua tuhia tuatahitia nga paipa e hiahiatia ana mo Gitlab Runners, katahi ka whakatau te roopu ki te neke ki Azure DevOps, ki Jenkins ranei... me heke te maha o nga paipa hanga.

Hua: Pana, Toia ranei?

Pērā i te nuinga o te wā, kei ia huarahi he pai me te kino. Ko etahi o nga mahi he ngawari ake ki te whakatutuki me tetahi, he uaua ki tetahi atu. I te tuatahi i mahi au i nga mahi a-ringa, engari i muri i taku kitenga i etahi tuhinga mo te Weave Flux, ka whakatau ahau ki te whakatinana i nga tikanga GitOps mo nga kaupapa katoa. Mo nga tauira taketake he ngawari tenei, engari katahi ka tiimata ahau ki te raru ki nga tūtohi Helm. I tera wa, ko te Weave Flux anake i tuku he putanga taketake o te Helm Chart Operator, engari i naianei he uaua ake etahi mahi na te hiahia ki te hanga a ringa i nga mea ngaro me te whakamahi. Ka taea e koe te tohe he nui ake te haumaru o te huarahi kume na te mea kaore e taea te uru atu nga tohu tohu o te tautau ki waho o te kahui, na te mea ka nui ake te haumaru, ka nui ake te whakapau kaha.

I muri i etahi whakaaro, ka tae mai ahau ki te whakatau ohorere e kore e pena. Mena ka korero tatou mo nga waahanga e tika ana kia tiakina, ka uru ki tenei rarangi te rokiroki huna, nga punaha CI/CD, me nga putunga Git. Ko nga korero kei roto he tino whakaraerae me te hiahia kia tino tiakina. I tua atu, ki te uru mai tetahi ki roto i to putunga Git ka taea te pana waehere ki reira, ka taea e ia te tuku i nga mea katoa e hiahia ana ratou (ahakoa toia, pana ranei) ka kuhu ki nga punaha o te tautau. No reira, ko nga waahanga tino nui e tika ana kia tiakina ko te Git repository me nga punaha CI/CD, kaua ko nga tohu tohu roopu. Mena kei a koe nga kaupapa here me nga mana haumarutanga pai mo enei momo punaha, a ka tangohia noa nga tohu tohu kapoipoi ki roto i nga paipa hei mea ngaro, ka kore pea e tino whai hua te taapiri o te huarahi kume ki te whakaaro o mua.

Na, ki te mea he kaha ake te mahi tohanga me te kore e whai hua haumaru, kaore e tika te whakamahi i te huarahi pana anake? Engari ka tohe pea tetahi i roto i te huarahi pana kua tino herea koe ki te punaha CD, a, he pai ke atu kia kaua e mahi kia ngawari ake ai te kawe i nga heke a muri ake nei.

Ki taku whakaaro (kia rite ki nga wa katoa), me whakamahi koe i nga mea e pai ana mo tetahi keehi, whakakotahi ranei. Ko ahau ake, ka whakamahi ahau i nga huarahi e rua: Weave Flux mo nga mahi kumea e uru ana ki a maatau ake ratonga, me te huarahi pana ki te Helm me nga monomai, he ngawari ki te whakauru i nga tūtohi Helm ki te tautau ka taea e koe te hanga mea ngaro. Ki taku whakaaro kaore he otinga kotahi e tika ana mo nga keehi katoa, na te mea he maha tonu nga ahuatanga ka whakawhirinaki ki te tono motuhake. Ko te korero, ka tino taunaki ahau ki a GitOps - he maamaa te oranga me te whakapai ake i te haumarutanga.

Ko taku tumanako ka awhina taku wheako mo tenei kaupapa ki te whakatau ko tehea tikanga ka pai ake mo to momo whakatakotoranga, ka koa ahau ki te rongo i to whakaaro.

PS Note mai i te kaiwhakamaori

Ko te kino o te tauira kume he uaua ki te whakauru i nga whakaaturanga whakaatu ki a Git, engari karekau he kino kei te noho wehe te paipa CD i roto i te tauira kume mai i te whakaputanga, ka noho hei paipa waahanga. Tono Tonu. No reira, ka nui ake te kaha ki te kohi i o raatau mana mai i nga tukunga katoa me te whai waahi ki nga raarangi/tuanga, he pai ki te korero ki te punaha CD.

I roto i tenei tikanga, ka taea e te tauira pana ki te whakarato i te iti rawa etahi taurangi o te hurihanga, na te mea ka taea te rite te ora o te paipa ki te roanga o te whakaputanga.

I whakamatauria e matou nga tauira e rua ka tae ki nga whakatau rite ki te kaituhi o te tuhinga:

  1. He pai te tauira kume mo tatou ki te whakarite i nga whakahoutanga o nga waahanga punaha i runga i te maha o nga tautau (tirohia. tuhinga mo te addon-operator).
  2. Ko te tauira pana i runga i te GitLab CI he pai mo te huri i nga tono ma te whakamahi i nga mahere Helm. I te wa ano, ka aro turukihia te whakaputanga o nga tukunga i roto i nga paipa ma te whakamahi i te taputapu werf. I te ara, i roto i te horopaki o tenei kaupapa o taatau, i rongo matou i te "GitOps" tonu i te wa e korero ana matou mo nga raru nui o nga miihini DevOps i to matou turanga i KubeCon Europe'19.

PPS mai i te kaiwhakamaori

Pānuihia hoki i runga i ta maatau blog:

Ko nga kaiwhakamahi kua rehita anake ka uru ki te rangahau. Waitohu maitēnā.

Kei te whakamahi koe i a GitOps?

  • Ae, toia huarahi

  • Ae, pana

  • Ae, toia + pana

  • Ae, tetahi atu mea

  • No

30 nga kaiwhakamahi i pooti. 10 nga kaiwhakamahi i aukati.

Source: will.com

Tāpiri i te kōrero