werf - ta matou taputapu mo te CI/CD i Kubernetes (te arotake me te purongo ataata)

Mei 27 i te whare nui o te huihuinga DevOpsConf 2019, i tu hei waahanga o te hakari. RIT++ 2019, hei waahanga o te waahanga "Tukunga Tonu", i tukuna he purongo "werf - to maatau taputapu mo CI/CD i Kubernetes". E korero ana mo era nga raruraru me nga wero ka pa ki te katoa i te wa e tuku ana ki Kubernetes, me mo nga nuances e kore pea e kitea tonutia. Ko te tātari i nga otinga ka taea, ka whakaatu me pehea te whakatinanatanga o tenei i roto i te taputapu Open Source werf.

Mai i te whakaaturanga, kua eke ta matou whaipainga (i mohiotia i mua ko te dapp) ki tetahi tohu rongonui o 1000 whetu i runga i GitHub — Ko te tumanako ka nui ake te noho o te hapori o nga kaiwhakamahi ki te maha o nga miihini DevOps.

werf - ta matou taputapu mo te CI/CD i Kubernetes (te arotake me te purongo ataata)

Na, me whakauru ataata o te purongo (~ 47 meneti, he nui ake nga korero i te tuhinga) me te tangohanga matua mai i te tuhinga. Haere!

Te tuku waehere ki Kubernetes

Ka mutu te korero mo te werf, engari mo te CI/CD i Kubernetes, e kii ana kei te kii a maatau rorohiko ki nga ipu Docker. (I korero ahau mo tenei i roto i 2016 pūrongo), a ka whakamahia nga K8 ki te whakahaere i te mahi (he nui ake mo tenei i roto i 2017 году).

He aha te ahua o te tuku i Kubernetes?

  • He putunga Git me te waehere me nga tohutohu mo te hanga. Ka hangaia te tono ki tetahi ahua Docker ka whakaputaina ki te Rehita Docker.
  • Kei roto ano i taua putunga nga tohutohu mo te whakatakoto me te whakahaere i te tono. I te waahi tuku, ka tukuna enei tohutohu ki a Kubernetes, ka whiwhi i te ahua e hiahiatia ana mai i te rehitatanga ka whakarewahia.
  • I tua atu, he maha nga whakamatautau. Ko etahi o enei ka taea i te wa e whakaputa ana i tetahi whakaahua. Ka taea hoki e koe (ma te whai i nga tohutohu rite) te tuku kape o te tono (i roto i te mokowāingoa K8s motuhake, i te tautau motuhake ranei) ka whakahaere i nga whakamatautau ki reira.
  • Ka mutu, ka hiahia koe ki tetahi punaha CI e whiwhi ana i nga huihuinga mai i te Git (te paatene paatene ranei) ka karanga i nga waahanga kua tohua: te hanga, te whakaputa, te tohatoha, te whakamatautau.

werf - ta matou taputapu mo te CI/CD i Kubernetes (te arotake me te purongo ataata)

Anei etahi korero nui i konei:

  1. Na te mea he hanganga kore e taea te whakarereke (hanganga kore huri), te ahua tono e whakamahia ana i nga waahanga katoa (te whakaari, te whakaputa, me etahi atu), me kotahi ano. I korero ahau mo tenei i roto i nga taipitopito me nga tauira. konei.
  2. Na te mea ka whai taatau i nga hanganga hei huarahi waehere (IaC), te waehere tono, nga tohutohu mo te whakahiato me te whakarewatanga me waiho tika i roto i te putunga kotahi. Mo etahi atu korero mo tenei, tirohia taua purongo ano.
  3. Te mekameka tuku (tuku) Ko te tikanga ka kite tatou penei: i whakaemihia te tono, i whakamatauria, i tukuna (waahi tuku) a koinei - kua puta te tuku. Engari ko te mea pono, ka whiwhi te kaiwhakamahi i nga mea i hurihia e koe, e kore katahi ka tukuna e koe ki te hanga, a ka taea e ia te haere ki reira ka mahi tenei mahi. Na e whakapono ana ahau ka mutu te mekameka tuku i te wahanga whakahaere anake (oma), he tika ake ranei, ahakoa i te wa i tangohia ai te waehere mai i te hanga (whakakapihia ki te mea hou).

Kia hoki ano ki te kaupapa tuku i runga ake nei i Kubernetes: ehara i te mea na matou anake, engari na nga tangata katoa i pa ki tenei raru. Inaianei kua kiia tenei tauira ko GitOps (Ka taea e koe te panui atu mo te kupu me nga whakaaro kei muri konei). Kia titiro tatou ki nga wahanga o te kaupapa.

Te atamira hanga

Te ahua nei ka taea e koe te korero mo te hanga whakaahua Docker i te tau 2019, ka mohio nga tangata katoa ki te tuhi Dockerfiles me te rere. docker build?.. Anei nga ahuatanga e hiahia ana ahau ki te aro ki:

  1. Te taumaha o te whakaahua mea nui, na whakamahia atamira mahaki te waiho i roto i te ahua anake te tono e tika ana mo te mahi.
  2. Te maha o nga paparanga me whakaitihia ma te whakakotahi i nga mekameka o RUN-ko nga whakahau i runga i te tikanga.
  3. Heoi, ka taapiri atu nga raru patuiro, no te mea ka pakaru te huihuinga, me rapu koe i te whakahau tika mai i te mekameka i puta ai te raru.
  4. Te tere hui he mea nui na te mea kei te pirangi matou ki te whakaputa tere i nga huringa ka kite i nga hua. Hei tauira, kaore koe e hiahia ki te hanga i nga whakawhirinakitanga ki nga whare pukapuka reo i nga wa katoa ka hangaia e koe he tono.
  5. I te nuinga o nga wa mai i tetahi putunga Git e hiahia ana koe maha nga whakaahua, ka taea te whakatau ma te huinga o Dockerfiles (kua whakaingoatia nga waahanga i roto i te konae kotahi) me te tuhinga Bash me o raatau huihuinga raupapa.

Koinei anake te pito o te hukapapa e pa ana ki te katoa. Engari tera ano etahi atu raruraru, ina koa:

  1. I te nuinga o nga wa i te waahi huihuinga ka hiahia tatou ki tetahi mea maunga (hei tauira, keteroki te hua o te whakahau penei i te apt i roto i te whaiaronga tuatoru).
  2. E hiahia ana matou Ka taea kaua e tuhi ki te anga.
  3. E hiahia ana matou hanga me te kore Docker (he aha tatou e hiahia ai ki tetahi miihini mariko taapiri hei whirihora i nga mea katoa mo tenei, ina he kahui Kubernetes kei roto e taea ai e tatou te whakahaere ipu?).
  4. Huihuinga whakarara, ka taea te mohio ki nga huarahi rereke: nga whakahau rereke mai i te Dockerfile (mehemea ka whakamahia nga waahanga-maha), he maha nga mahi o te putunga kotahi, he maha nga Dockerfiles.
  5. Huihuinga tohatoha: E hiahia ana matou ki te kohi i nga mea i roto i nga pene he "ephemeral" na te mea ka ngaro to ratou keteroki, ko te tikanga me penapena ki tetahi waahi motuhake.
  6. Ka mutu, ka whakaingoatia e ahau te tihi o nga hiahia aunoa: He mea pai ki te haere ki te whare putunga, patohia etahi whakahau me te tiki i tetahi ahua kua oti te hanga, ka huihui me te maarama me pehea te mahi tika. Heoi, kaore au i te tino mohio ka taea te kite i nga ahuatanga katoa i tenei huarahi.

Anei nga kaupapa:

  • moby/buildkit — he kaihanga mai i Docker Inc (kua whakauruhia ki nga momo putanga o naianei o Docker), e ngana ana ki te whakaoti i enei raru katoa;
  • kaniko — he kaihanga mai i a Google ka taea e koe te hanga me te kore Docker;
  • Buildpacks.io - Ko te ngana a CNCF ki te mahi makutu aunoa, ina koa, he otinga whakamere me te rebase mo nga paparanga;
  • me te paihere o etahi atu taputapu, penei hanga, taputapu pono/img...

...ka tirohia e hia nga whetu kei runga i a GitHub. Arā, i tetahi taha, docker build kei te noho ka taea te mahi i tetahi mea, engari ko te mea pono kaore i tino whakatauhia te take - Ko te tohu o tenei ko te whanaketanga whakarara o nga kaikohikohi rereke, ma ia tangata e whakaoti etahi waahanga o nga raru.

Huihuinga i werf

Na kua tae matou werf (i mua rongonui rite te dapp) — He taputapu puna tuwhera mai i te kamupene Flant, he maha nga tau e mahia ana e matou. I timata katoa i nga tau 5 ki muri me nga tuhinga a Bash i arotau i te huihuinga o Dockerfiles, a mo nga tau 3 kua hipa kua whakatutukihia te whanaketanga katoa i roto i te anga o tetahi kaupapa me tana ake putunga Git. (i Ruby tuatahi, katahi tuhia ano ki te Haere, ka whakaingoatia ano i taua wa). He aha nga take hui ka whakatauhia i te werf?

werf - ta matou taputapu mo te CI/CD i Kubernetes (te arotake me te purongo ataata)

Ko nga raruraru i whakamarumarutia ki te puru kua whakatinanahia, i mahia te hanga whakarara i roto i te kaihautu kotahi, a ko nga take kua tohua ki te kowhai kua whakaritea hei te mutunga o te raumati.

Te wahanga o te whakaputanga i te rehitatanga (whakaputa)

I waea matou docker push... - he aha te mea uaua ki te tuku whakaahua ki te rehita? Na ka puta ake te patai: "He aha te tohu me hoatu e ahau ki runga i te ahua?" Ka puta ake mo te take kei a tatou Gitflow (tetahi atu rautaki Git ranei) me nga Kubernetes, a kei te ngana te umanga ki te whakarite kia whai nga mea ka tupu i Kubernetes i nga mea ka tupu i Git. I muri i nga mea katoa, ko Git anake ta tatou puna pono.

He aha te mea uaua mo tenei? Whakaritea te reproducibility: mai i te commit i roto i te Git, he koretake te ahua (kare e huri), ki tetahi ahua Docker, me pupuri tonu.

He mea nui hoki ki a tatou whakatau i te takenga mai, na te mea e hiahia ana matou ki te maarama mai i tehea te tono i hangaia i Kubernetes (katahi ka taea e taatau te mahi rerekee me nga mea rite).

Rautaki Tohu

Ko te mea tuatahi he ngawari tohu git. Kei a matou he rehita me tetahi ahua kua tohua hei 1.0. He atamira me nga mahi a Kubernetes, kei reira tenei whakaahua ka tukuna. I roto i te Git ka mahia e matou nga tohu, ka tohuhia e matou i etahi wa 2.0. Ka kohia e matou kia rite ki nga tohutohu mai i te putunga ka tuu ki roto i te rehita me te tohu 2.0. Ka hurihia e matou ki te atamira, a, ki te pai nga mea katoa, katahi ki te whakaputa.

werf - ta matou taputapu mo te CI/CD i Kubernetes (te arotake me te purongo ataata)

Ko te raru o tenei huarahi ko te tuu tuatahi i te tohu, katahi ka whakamatauria ka hurihia. He aha? Tuatahi, he pohehe noa: kei te tukuna e matou he putanga o nga punaha kaore ano kia whakamatauria (kaore e taea e matou te mahi kee, na te mea hei tirotiro, me whakauru he tohu). Tuarua, kaore tenei ara i te hototahi ki a Gitflow.

Ko te waahanga tuarua - git commit + tūtohu. He tohu te peka matua 1.0; mo te reira i roto i te rehita - he ahua kua tukuna ki te hanga. I tua atu, ko te roopu Kubernetes he arokite me nga waahanga whakaari. Whai muri ka whai tatou i a Gitflow: i te peka matua mo te whanaketanga (develop) ka hangaia e matou nga ahuatanga hou, ka puta he hononga ki te kaitautuhi #c1. Ka kohia e matou ka whakaputahia ki te rehita ma te whakamahi i tenei tohu (#c1). Ma te taua tauutuutu ka huri tatou ki te arokite. He pera ano ta matou ki nga mahi #c2 и #c3.

I to maatau mohio he nui nga waahanga, ka tiimata taatau ki te whakapumau i nga mea katoa. Waihangahia he peka ki Git release_1.1 (i runga i te turanga #c3 Tuhinga ka whai mai develop). Kaore he take ki te kohikohi i tenei tuku, na te mea ... i mahia tenei i te taahiraa o mua. Na reira, ka taea e taatau te huri noa ki te tuunga. Ka whakatika tatou i nga pepeke ki roto #c4 me te pera ano ka huri ki te whakaari. I te wa ano, kei te haere tonu te whakawhanaketanga develop, ka tangohia nga huringa i ia wa release_1.1. I etahi wa, ka whakahiatohia e matou he mahi ka tukuna ki te whakaaturanga, e koa ana matou (#c25).

Katahi ka hanumi (me te tere whakamua) o te peka tuku (release_1.1) i roto i te rangatira. Ka hoatu e matou he tohu me te putanga hou ki runga i tenei mahi (1.1). Engari kua kohia tenei ahua ki roto i te rehita, na kia kore ai e kohi ano, ka taapirihia he tohu tuarua ki te ahua o mua (inaianei he tohu kei roto i te rehita #c25 и 1.1). I muri i tera, ka hurihia e matou ki te whakaputa.

He ngoikoretanga ko te mea kotahi anake te ahua ka tukuna ki te whakaari (#c25), a i roto i te hanga he ahua rereke (1.1), engari e mohio ana matou ko "te tinana" he ahua ano enei mai i te rehita.

werf - ta matou taputapu mo te CI/CD i Kubernetes (te arotake me te purongo ataata)

Ko te tino kino ko te kore he tautoko mo te whakakotahitanga, me tere whakamua koe.

Ka taea e tatou te haere atu ki te mahi tinihanga... Me titiro ki tetahi tauira o te Dockerfile ngawari:

FROM ruby:2.3 as assets
RUN mkdir -p /app
WORKDIR /app
COPY . ./
RUN gem install bundler && bundle install
RUN bundle exec rake assets:precompile
CMD bundle exec puma -C config/puma.rb

FROM nginx:alpine
COPY --from=assets /app/public /usr/share/nginx/www/public

Me hanga he konae mai i runga i te kaupapa e whai ake nei:

  • SHA256 mai i nga kaitautuhi o nga whakaahua i whakamahia (ruby:2.3 и nginx:alpine), he kaute arowhai o nga mea kei roto;
  • nga kapa katoa (RUN, CMD etc.);
  • SHA256 mai i nga konae i taapirihia.

... ka tango i te moni taki (ano SHA256) mai i taua konae. Tenei hainatanga nga mea katoa e tautuhi ana i nga ihirangi o te ahua Docker.

werf - ta matou taputapu mo te CI/CD i Kubernetes (te arotake me te purongo ataata)

Kia hoki ki te hoahoa me hei utu mo te mahi ka whakamahia e matou nga waitohu pera, i.e. tohu whakaahua me nga waitohu.

werf - ta matou taputapu mo te CI/CD i Kubernetes (te arotake me te purongo ataata)

Inaianei, i te wa e tika ana, hei tauira, ki te hanumi i nga huringa mai i te tuku ki te rangatira, ka taea e tatou te mahi i te tino whakakotahitanga: ka puta he tohu rereke, engari he rite tonu te waitohu. Ma te tohu tohu ano ka hurihia e matou te ahua ki te whakaputa.

Ko te ngoikoretanga ko tenei ka kore e taea te whakatau he aha te ahua o te tuunga i peia ki te whakaputa - ka mahi noa nga arowhai ki te huarahi kotahi. Ka whakatauhia tenei raru e tetahi paparanga taapiri me nga metadata - ka korero atu ahau ki a koe i muri mai.

Te tohu i te werf

I roto i te werf i haere atu ano matou me te whakarite ki te mahi i te hanga tohatoha me te keteroki kaore i te rongoa i runga i te miihini kotahi... Na, kei te hanga e matou nga momo whakaahua Docker e rua, ka kiia e matou. whakangungu и image.

Ko te werf Git repository e pupuri ana i nga tohutohu hanga-motuhake e whakaahua ana i nga waahanga rereke o te hanga (muaTāuta, tāuta, i mua i te Tatūnga, tatūnga). Ka kohia e matou te ahua o te atamira tuatahi me te hainatanga kua tautuhia hei utu arowhai o nga kaupae tuatahi. Na ka tapiritia e matou te waehere puna, mo te ahua o te atamira hou ka tatauhia e matou tana arowhai... Ka tukuna enei mahinga mo nga waahanga katoa, na te mea ka whiwhi matou i te huinga whakaahua atamira. Na ka hanga e matou te ahua whakamutunga, kei roto hoki nga metadata mo tona takenga. A ka tohua e matou tenei ahua ki nga huarahi rereke (nga korero mo muri mai).

werf - ta matou taputapu mo te CI/CD i Kubernetes (te arotake me te purongo ataata)

Mehemea i muri mai ka puta mai he here hou i whakarereketia te waehere tono anake. Ka ahatia? Mo nga huringa waehere, ka hangaia he papaki ka whakaritea he ahua atamira hou. Ko tana hainatanga ka whakatauhia hei kaute mo te ahua o te atamira tawhito me te papaki hou. Ka hangaia he ahua whakamutunga hou mai i tenei ahua. Ka rite te whanonga me nga huringa i etahi atu waahanga.

No reira, ko nga whakaahua atamira he keteroki ka taea te penapena toha, a ko nga whakaahua kua oti te hanga mai ka tukuna ki te Rehita Docker.

werf - ta matou taputapu mo te CI/CD i Kubernetes (te arotake me te purongo ataata)

Te horoi i te rehita

Kaore matou e korero ana mo te whakakore i nga paparanga i noho iri i muri i nga tohu kua mukua - he ahuatanga paerewa tenei o te Rehita Docker ake. Kei te korero matou mo tetahi ahuatanga ka kohia te maha o nga tohu Docker ka mohio matou kua kore e hiahiatia etahi o ratou, engari ka nui te waahi (me / ka utua ranei e matou).

He aha nga rautaki horoi?

  1. Kaore e taea e koe te mahi noa kaua e horoi. I etahi wa he maamaa ake te utu iti mo te waahi taapiri atu i te wetewete i te tini o nga tohu. Engari ka mahi noa tenei ki tetahi waahi.
  2. Tautuhi katoa. Mena ka mukua e koe nga whakaahua katoa ka hanga ano i nga whakaahua o naianei kei roto i te punaha CI, ka puta he raru. Mena ka whakaara ano te ipu i roto i te mahi, ka utaina he ahua hou mo tera - tetahi kaore ano kia whakamatauria e tetahi. Ka mate tenei i te whakaaro o nga hanganga korekore.
  3. Te kikorangi-matomato. I timata tetahi rehita ki te puhake - ka tukuna e matou he whakaahua ki tetahi atu. Ko te raruraru ano i roto i te tikanga o mua: i tehea wa ka taea e koe te whakakore i te rehita kua timata ki te pupuhi?
  4. Ma te wa. Mukua nga whakaahua katoa neke atu i te 1 marama? Engari ka puta he ratonga kaore ano kia whakahoutia mo te marama ...
  5. Ma te ringa whakatauhia nga mea ka taea te whakakore.

E rua nga whiringa ka taea: kaua e horoi, he huinga puru-matomato ranei + ma te ringa. I te keehi whakamutunga, e korero ana matou mo nga mea e whai ake nei: ka mohio koe kua tae ki te wa ki te horoi i te rehitatanga, ka hangaia e koe he mea hou me te taapiri i nga whakaahua hou katoa i roto i te waa, hei tauira, he marama. A, i muri i te marama, tirohia ko wai nga pene kei Kubernetes kei te whakamahi tonu i te rehita tawhito, ka whakawhiti ano ki te rehita hou.

He aha ta tatou i haere mai ai werf? Ka kohia e matou:

  1. Upoko Git: nga tohu katoa, nga peka katoa - me te whakaaro e hiahia ana tatou ki nga mea katoa e tohuhia ana i roto i te Git i roto i nga whakaahua (a ki te kore, me whakakorea e tatou ki a Git ake);
  2. nga pona katoa e maminga ana i tenei wa ki Kubernetes;
  3. ReplicaSets tawhito (he aha i tukuna tata nei), ka whakamahere ano matou ki te matawai i nga tukunga Helm me te kowhiri i nga whakaahua hou ki reira.

... ka hanga he rarangi ma mai i tenei huinga - he rarangi whakaahua e kore e mukua e matou. Ka horoia e matou nga mea katoa, muri iho ka kitea e matou nga whakaahua o te atamira pani, ka mukua hoki.

Hoatuhia te atamira

Te whakapuakanga pono

Ko te take tuatahi e hiahia ana ahau ki te aro ki te whakatakotoranga ko te whakaputanga o te whirihoranga rauemi kua whakahoutia, kua whakapuakina. Ko te tuhinga YAML taketake e whakaahua ana i nga rauemi Kubernetes he rereke tonu mai i te hua e rere ana i roto i te roopu. Na te mea ka taapiri a Kubernetes ki te whirihoranga:

  1. tohu tohu;
  2. korero ratonga;
  3. maha nga uara taunoa;
  4. te waahanga me te mana o naianei;
  5. nga huringa i mahia hei waahanga o te maataki paetukutuku whakauru;
  6. ko te hua o nga mahi a nga momo kaiwhakahaere (me te kaiwhakarite).

No reira, ka puta mai he whirihoranga rauemi hou (hou), e kore e taea te tango me te tuhirua i te whirihoranga o naianei, "ora" ki a ia (ora). Ki te mahi i tenei me whakarite taatau hou me te whirihoranga tono whakamutunga (te tono whakamutunga) ka huri ki runga ora riro papaki.

Ka kiia tenei huarahi hanumi 2-ara. Ka whakamahia, hei tauira, i te Helm.

Kei reira ano hanumi 3-ara, he rereke ki tera:

  • whakatairite te tono whakamutunga и hou, ka titiro tatou ki nga mea i mukua;
  • whakatairite hou и ora, ka titiro tatou ki nga mea kua tapirihia, kua whakarereketia ranei;
  • ka whakamahia te papaki whakarāpopoto ora.

Ka horahia e matou te 1000+ tono me te Helm, no reira ka noho tonu matou me te hanumi 2-ara. Heoi ano, he maha nga raruraru kua whakatauhia e matou me o matou papaki, e awhina ana i a Helm ki te mahi noa.

Te mana whakaputa tuturu

Whai muri i to maatau punaha CI he whirihoranga hou mo nga Kubernetes i runga i nga huihuinga e whai ake nei, ka tukuna kia whakamahia (tono) ki te tautau - ma te Helm ranei kubectl apply. I muri mai, ka puta te hanumi ara-N kua whakaahuatia ake nei, ka whakautu pai te Kubernetes API ki te punaha CI, me tana kaiwhakamahi.

werf - ta matou taputapu mo te CI/CD i Kubernetes (te arotake me te purongo ataata)

Engari, he raruraru nui: i muri i nga mea katoa Ko te tono angitu ehara i te mea ko te whakaputanga angitu. Mena ka mohio a Kubernetes he aha nga whakarereketanga me tono me te whakamahi, kaore tonu matou e mohio he aha te hua. Hei tauira, ka angitu pea te whakahōu me te whakaara ano i nga pona ki mua, engari kaore i te tuara, a ka whiwhi tatou i nga momo putanga rereke o nga whakaahua tono e rere ana.

Hei mahi tika i nga mea katoa, me whai hononga taapiri tenei kaupapa - he kaitirotiro motuhake ka whiwhi korero mana mai i te Kubernetes API me te tuku mo te tātaritanga o te ahua o nga mea. I hanga e matou he whare pukapuka Open Source i Go - kurikiriki (tirohia tana panui konei), e whakaoti ana i tenei raru ka hangaia ki te werf.

Ka whirihorahia te whanonga o tenei kaiwhaiwhai i te taumata werf ma te whakamahi i nga korero ka tuu ki runga i nga Whakamahinga, i nga StatefulSets ranei. Kuputuhi matua - fail-mode - ka mohio ki nga tikanga e whai ake nei:

  • IgnoreAndContinueDeployProcess - ka warewarehia e matou nga raru o te huri i tenei waahanga ka haere tonu te tuku;
  • FailWholeDeployProcessImmediately — na te hapa i roto i tenei waahanga ka mutu te mahi tuku;
  • HopeUntilEndOfDeployProcess — Ko te tumanako ka mahi tenei waahanga hei te mutunga o te tukunga.

Hei tauira, ko tenei huinga o nga rauemi me nga uara korero fail-mode:

werf - ta matou taputapu mo te CI/CD i Kubernetes (te arotake me te purongo ataata)

I te wa tuatahi ka tukuna e matou, kare ano pea te paataka raraunga (MongoDB) kia reri - Ka rahua nga mahi. Engari ka taea e koe te tatari mo te wa ka timata, ka haere tonu te tuku.

E rua ano nga korero mo te kubedog i werf:

  • failures-allowed-per-replica — te maha o nga takahanga e whakaaetia ana mo ia tauira;
  • show-logs-until — ka whakarite i te wa e whakaatu ai te werf (i roto i te stdout) nga raarangi mai i nga putunga kua hurihia. Ko te taunoa ko PodIsReady (ki te wareware i nga karere kare pea tatou e pirangi i te wa e timata ana te haere mai o nga waka ki te poka), engari he tika ano nga uara: ControllerIsReady и EndOfDeploy.

He aha atu ta tatou e hiahia ana mai i te tohatoha?

I tua atu i nga waahanga e rua kua whakamaramatia, ka hiahia matou:

  • kia kite rākau - me nga mea e tika ana, kaore nga mea katoa i te rarangi;
  • ara ahu whakamua, no te mea ki te whakairihia te mahi mo etahi meneti, he mea nui kia mohio ki nga mea kei reira;
  • Waiho whakamuri aunoa ki te he tetahi mea (na reira he mea nui kia mohio koe ki te tino ahuatanga o te tukunga). Me ngota te whakaputanga: ka haere ki te mutunga, ka hoki nga mea katoa ki tona ahua o mua.

Ngā putanga

Mo matou he kamupene, ki te whakatinana i nga ahuatanga katoa i whakaahuahia i nga waahanga rereke o te tuku (hanga, whakaputa, tohatoha), he nui te punaha CI me nga taputapu. werf.

Hei utu mo te mutunga:

werf - ta matou taputapu mo te CI/CD i Kubernetes (te arotake me te purongo ataata)

Na te awhina a werf, kua pai te ahunga whakamua ki te whakatau i nga raru maha mo nga miihini DevOps a ka koa mena ka whakamatau te hapori whanui i tenei mahi. Ka ngawari ake te whakatutuki tahi i te hua pai.

Ataata me nga kiriata

Ataata mai i te whakaaturanga (~47 meneti):

Whakaaturanga o te ripoata:

PS

Ko etahi atu korero mo Kubernetes i runga i ta maatau blog:

Source: will.com

Tāpiri i te kōrero