27 ta' Mejju fis-sala prinċipali tal-konferenza DevOpsConf 2019, li saret bħala parti mill-festival , bħala parti mit-taqsima "Konsenja Kontinwa", ingħata rapport "werf - għodda tagħna għal CI/CD fil-Kubernetes". Jitkellem dwar dawk problemi u sfidi li kulħadd jiffaċċja meta jiġi skjerat fuq Kubernetes, kif ukoll dwar sfumaturi li jistgħu ma jkunux notevoli immedjatament. Meta janalizzaw is-soluzzjonijiet possibbli, nuru kif dan huwa implimentat f'għodda Open Source .
Mill-preżentazzjoni, l-utilità tagħna (li qabel kienet magħrufa bħala dapp) laħqet tragward storiku ta 1000 stilla fuq GitHub — nittamaw li l-komunità dejjem tikber ta’ utenti tagħmilha aktar faċli għal ħafna inġiniera DevOps.

Allura, ejja nintroduċu (~ 47 minuta, ħafna aktar informattiv mill-artiklu) u l-estratt prinċipali minnu f'forma ta 'test. Mur!
Twassil tal-kodiċi lil Kubernetes
It-taħdita mhux se tibqa' dwar werf, iżda dwar CI/CD f'Kubernetes, li timplika li s-softwer tagħna huwa ppakkjat f'kontenituri Docker (Tkellimt dwar dan fi ), u K8s se jintużaw biex imexxuh fil-produzzjoni (aktar dwar dan fi ).
Kif tidher il-kunsinna f'Kubernetes?
- Hemm repożitorju Git bil-kodiċi u l-istruzzjonijiet għall-bini tiegħu. L-applikazzjoni hija mibnija f'immaġni Docker u ppubblikata fir-Reġistru Docker.
- L-istess repożitorju fih ukoll struzzjonijiet dwar kif tiskjera u tħaddem l-applikazzjoni. Fl-istadju tal-iskjerament, dawn l-istruzzjonijiet jintbagħtu lil Kubernetes, li jirċievi l-immaġni mixtieqa mir-reġistru u jniediha.
- Barra minn hekk, normalment ikun hemm testijiet. Xi wħud minn dawn jistgħu jsiru meta tiġi ppubblikata immaġini. Tista 'wkoll (ssegwi l-istess istruzzjonijiet) tiskjera kopja tal-applikazzjoni (fi spazju tal-isem K8s separat jew cluster separat) u tmexxi testijiet hemmhekk.
- Fl-aħħarnett, għandek bżonn sistema CI li tirċievi avvenimenti minn Git (jew klikks fuq buttuna) u ssejjaħ l-istadji kollha magħżula: tibni, tippubblika, skjerament, ittestja.

Hemm ftit noti importanti hawn:
- Għax għandna infrastruttura immutabbli (infrastruttura immutabbli), l-immaġni tal-applikazzjoni li tintuża fl-istadji kollha (stadju, produzzjoni, eċċ.), għandu jkun hemm wieħed. Tkellimt dwar dan f'aktar dettall u b'eżempji. .
- Minħabba li nsegwu l-approċċ tal-infrastruttura bħala kodiċi (IaC), il-kodiċi tal-applikazzjoni, l-istruzzjonijiet għall-assemblaġġ u t-tnedija għandu jkun eżattament f'repożitorju wieħed. Għal aktar informazzjoni dwar dan, ara .
- Katina tal-kunsinna (kunsinna) normalment narawha hekk: l-applikazzjoni ġiet immuntata, ittestjata, rilaxxata (stadju tar-rilaxx) u dak hu - il-kunsinna saret. Imma fir-realtà, l-utent jieħu dak li ħarġet, ebda imbagħad meta kkunsinnatu lill-produzzjoni, u meta kien kapaċi jmur hemm u din il-produzzjoni ħadmet. Allura nemmen li l-katina tal-kunsinna tispiċċa fl-istadju operattiv biss (ġiri), jew b'mod aktar preċiż, anke fil-mument meta l-kodiċi tneħħa mill-produzzjoni (bdilha b'waħda ġdida).
Ejja nerġgħu lura għall-iskema ta 'kunsinna ta' hawn fuq f'Kubernetes: ġiet ivvintata mhux biss minna, iżda litteralment minn kull min ittratta din il-problema. Fil-fatt, dan il-mudell issa jissejjaħ GitOps (tista 'taqra aktar dwar it-terminu u l-ideat warajh ). Ejja nħarsu lejn l-istadji tal-iskema.
Ibni stadju
Jidher li tista 'titkellem dwar il-bini ta' immaġini Docker fl-2019, meta kulħadd ikun jaf kif jikteb Dockerfiles u jmexxi docker build?.. Hawn huma l-sfumaturi li nixtieq noqgħod attent għalihom:
- Piż tal-immaġni kwistjonijiet, hekk uża biex tħalli fl-immaġni biss l-applikazzjoni li hija verament meħtieġa għall-operazzjoni.
- Numru ta' saffi għandhom jiġu minimizzati billi jingħaqdu ktajjen ta
RUN-kmandi skond it-tifsira. - Madankollu, dan iżid il-problemi debugging, għax meta l-assemblaġġ jiġġarraf, għandek issib il-kmand it-tajjeb mill-katina li kkawża l-problema.
- Veloċità tal-assemblaġġ importanti għax irridu nwasslu malajr il-bidliet u naraw ir-riżultati. Pereżempju, ma tridx tibni mill-ġdid id-dipendenzi fil-libreriji tal-lingwi kull darba li tibni applikazzjoni.
- Ħafna drabi minn repożitorju Git wieħed li għandek bżonn ħafna stampi, li jistgħu jiġu solvuti minn sett ta 'Dockerfiles (jew stadji msemmija f'fajl wieħed) u b'kitba Bash bl-assemblaġġ sekwenzjali tagħhom.
Din kienet biss il-ponta tal-iceberg li kulħadd jiffaċċja. Iżda hemm problemi oħra, b'mod partikolari:
- Ħafna drabi fl-istadju tal-assemblaġġ għandna bżonn xi ħaġa impunjazzjoni (pereżempju, daħħal fil-cache r-riżultat ta 'kmand bħal apt f'direttorju ta' parti terza).
- Irridu Ansible flok tikteb fil-qoxra.
- Irridu tibni mingħajr Docker (għaliex għandna bżonn magna virtwali addizzjonali li fiha għandna bżonn nikkonfiguraw kollox għal dan, meta diġà għandna cluster Kubernetes li fih nistgħu nħaddmu kontenituri?).
- Assemblaġġ parallel, li jistgħu jinftiehmu b'modi differenti: kmandi differenti mid-Dockerfile (jekk jintuża f'diversi stadji), diversi kommessi tal-istess repożitorju, diversi Dockerfiles.
- Assemblaġġ imqassam: Irridu niġbru affarijiet f'imżiewed li huma "effimeri" għaliex il-cache tagħhom tisparixxi, li jfisser li jeħtieġ li jinħażen x'imkien separatament.
- Fl-aħħarnett, semmejt il-qofol tax-xewqat awtomaġika: Ikun ideali li tmur fir-repożitorju, ittajpja xi kmand u tikseb immaġni lesta, immuntata b'fehim ta 'kif u x'għandek tagħmel b'mod korrett. Madankollu, jien personalment m'inix ċert li l-sfumaturi kollha jistgħu jiġu previsti b'dan il-mod.
U hawn huma l-proġetti:
- — bennej minn Docker Inc (diġà integrat fil-verżjonijiet attwali ta’ Docker), li qed jipprova jsolvi dawn il-problemi kollha;
- — bennej minn Google li jippermettilek tibni mingħajr Docker;
- — It-tentattiv tas-CNCF li jagħmel maġija awtomatika u, b’mod partikolari, soluzzjoni interessanti b’rebase għas-saffi;
- u mazz ta 'utilitajiet oħra, bħal , ...
...u ara kemm għandhom stilel fuq GitHub. Jiġifieri, minn naħa waħda, docker build teżisti u tista’ tagħmel xi ħaġa, imma fir-realtà il-kwistjoni mhix solvuta kompletament - prova ta 'dan hija l-iżvilupp parallel ta' kolletturi alternattivi, li kull wieħed minnhom isolvi xi parti mill-problemi.
Assemblea fil-werf
Allura sirna (qabel bħal dapp) — Utilità open source mill-kumpanija Flant, li ilna nagħmlu għal ħafna snin. Kollox beda 5 snin ilu bi skripts Bash li ottimizzaw l-assemblaġġ ta 'Dockerfiles, u għal dawn l-aħħar 3 snin żvilupp sħiħ twettaq fil-qafas ta' proġett wieħed bir-repożitorju Git tiegħu stess. (l-ewwel f'Ruby, u mbagħad to Go, u fl-istess ħin isem ġdid). Liema kwistjonijiet ta 'assemblaġġ huma solvuti fil-werf?

Il-problemi sfumati bil-blu diġà ġew implimentati, il-bini parallel sar fl-istess ospitanti, u l-kwistjonijiet enfasizzati bl-isfar huma ppjanati li jitlestew sal-aħħar tas-sajf.
Stadju tal-pubblikazzjoni fir-reġistru (pubblikazzjoni)
Ċempelna docker push... - x'jista' jkun diffiċli dwar it-tlugħ ta' immaġni fir-reġistru? U mbagħad tqum il-mistoqsija: "X'tikketta għandi npoġġi fuq l-immaġni?" Tqum għar-raġuni li għandna Gitflow (jew strateġija Git oħra) u Kubernetes, u l-industrija qed tipprova tiżgura li dak li jiġri f'Kubernetes isegwi dak li jiġri f'Git. Wara kollox, Git huwa l-uniku sors tagħna ta 'verità.
X'hemm daqshekk diffiċli dwar dan? Tiżgura r-riproduċibbiltà: minn impenn f'Git, li huwa immutabbli fin-natura (immutabbli), għal immaġni Docker, li għandha tinżamm l-istess.
Huwa importanti wkoll għalina jiddeterminaw l-oriġini, għax irridu nifhmu minn liema impenn inbniet l-applikazzjoni li taħdem f'Kubernetes (imbagħad nistgħu nagħmlu diffs u affarijiet simili).
Strateġiji ta 'Tagging
L-ewwel waħda hija sempliċi git tag. Għandna reġistru b'immaġni mmarkata bħala 1.0. Kubernetes għandu l-istadju u l-produzzjoni, fejn tittella’ din l-immaġni. F'Git nagħmlu l-commits u f'xi punt nagħmlu tag 2.0. Aħna niġbruha skont l-istruzzjonijiet mir-repożitorju u poġġiha fir-reġistru bit-tikketta 2.0. Niftakruh fuq il-palk u, jekk kollox ikun tajjeb, imbagħad għall-produzzjoni.

Il-problema b'dan l-approċċ hija li l-ewwel poġġejna t-tikketta, u mbagħad biss ittestjawha u rromblawha. Għaliex? L-ewwelnett, huwa sempliċiment illoġiku: qed noħorġu verżjoni ta 'softwer li għadna lanqas ittestjaw (ma nistgħux nagħmlu mod ieħor, għax biex niċċekkjaw, irridu npoġġu tikketta). It-tieni nett, din it-triq mhix kompatibbli ma 'Gitflow.
It-tieni għażla - git commit + tag. Il-fergħa kaptan għandha tikketta 1.0; għaliha fir-reġistru - immaġni skjerata għall-produzzjoni. Barra minn hekk, il-cluster Kubernetes għandu kontorni ta 'preview u staging. Imbagħad nsegwu Gitflow: fil-fergħa ewlenija għall-iżvilupp (develop) nagħmlu karatteristiċi ġodda, li jirriżultaw f'impenn bl-identifikatur #c1. Aħna niġbruha u nippubblikawha fir-reġistru billi tuża dan l-identifikatur (#c1). Bl-istess identifikatur aħna roll out għall-preview. L-istess nagħmlu bil-commits #c2 и #c3.
Meta indunajna li hemm biżżejjed karatteristiċi, nibdew nistabbilizzaw kollox. Oħloq fergħa f'Git release_1.1 (fuq il-bażi #c3 ta ' develop). M'hemmx għalfejn tiġbor dan ir-rilaxx, għax... dan sar fil-pass preċedenti. Għalhekk, nistgħu sempliċiment inxerrduh għall-istadji. Aħna nirranġaw bugs fi #c4 u bl-istess mod roll out għall-istadji. Fl-istess ħin, l-iżvilupp għaddej fi develop, fejn it-tibdiliet jittieħdu perjodikament minn release_1.1. F'xi punt, inġibu impenn miġbur u mtella' fuq l-istadju, li aħna kuntenti bih (#c25).
Imbagħad ningħaqdu (b'fast-forward) il-fergħa tar-rilaxx (release_1.1) fil-kaptan. Poġġejna tikketta bil-verżjoni l-ġdida fuq dan il-kommit (1.1). Iżda din l-immaġni hija diġà miġbura fir-reġistru, għalhekk biex ma terġax tiġborha, aħna sempliċement inżidu t-tieni tikketta mal-immaġni eżistenti (issa għandha tikketti fir-reġistru #c25 и 1.1). Wara dan, aħna roll out għall-produzzjoni.
Hemm żvantaġġ li immaġni waħda biss tittella' fuq il-post (#c25), u fil-produzzjoni huwa tip differenti (1.1), iżda nafu li "fiżikament" dawn huma l-istess immaġni mir-reġistru.

L-iżvantaġġ reali huwa li m'hemm l-ebda appoġġ għall-merge commits, trid tagħmel fast-forward.
Nistgħu mmorru aktar u nagħmlu trick... Ejja nħarsu lejn eżempju ta 'Dockerfile sempliċi:
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/publicEjja nibnu fajl minnha skond il-prinċipju li ġej:
- SHA256 mill-identifikaturi tal-immaġini użati (
ruby:2.3иnginx:alpine), li huma checksums tal-kontenut tagħhom; - it-timijiet kollha (
RUN,CMDu l-bqija.); - SHA256 minn fajls li ġew miżjuda.
... u ħu ċ-checksum (għal darb'oħra SHA256) minn tali fajl. Dan firma dak kollu li jiddefinixxi l-kontenut tal-immaġni Docker.

Ejja mmorru lura għad-dijagramma u minflok commits se nużaw firem bħal dawn, i.e. stampi tag b'firem.

Issa, meta jkun meħtieġ, pereżempju, li jingħaqdu bidliet minn rilaxx għal kaptan, nistgħu nagħmlu impenn reali ta 'merge: se jkollu identifikatur differenti, iżda l-istess firma. Bl-istess identifikatur se nirrollaw l-immaġni għall-produzzjoni.
L-iżvantaġġ huwa li issa mhux se jkun possibbli li jiġi ddeterminat x'tip ta 'impenn ġie mbuttat għall-produzzjoni - iċ-checksums jaħdmu biss f'direzzjoni waħda. Din il-problema tissolva b'saff addizzjonali b'metadata - jien ngħidlek aktar aktar tard.
Tagging fil-werf
F’werf morna aktar ‘il quddiem u qed nippreparaw biex nagħmlu distributed build b’cache li mhux maħżun fuq magna waħda... Allura, qed nibnu żewġ tipi ta’ immaġini Docker, insejħulhom istadju и immaġni.
Ir-repożitorju werf Git jaħżen struzzjonijiet speċifiċi għall-bini li jiddeskrivu l-istadji differenti tal-bini (qabelInstalla, jinstallaw, beforeSetup, setup). Aħna niġbru l-immaġni tal-ewwel stadju b'firma definita bħala ċ-checksum tal-ewwel passi. Imbagħad inżidu l-kodiċi tas-sors, għall-immaġni tal-istadju l-ġdida nikkalkulaw is-summa ta 'kontroll tagħha... Dawn l-operazzjonijiet huma ripetuti għall-istadji kollha, li b'riżultat tagħhom niksbu sett ta' stampi tal-istadju. Imbagħad nagħmlu l-immaġni finali, li fiha wkoll metadata dwar l-oriġini tagħha. U aħna tikketta din l-immaġni b'modi differenti (dettalji aktar tard).

Ejja ngħidu li wara dan jidher impenn ġdid li fih inbidel biss il-kodiċi tal-applikazzjoni. X'se jiġri? Għal bidliet fil-kodiċi, tinħoloq garża u se titħejja immaġni tal-istadju ġdida. Il-firma tiegħu se tiġi determinata bħala l-checksum tal-immaġni tal-istadju l-antika u l-garża l-ġdida. Se tiġi ffurmata immaġni finali ġdida minn din l-immaġni. Imġieba simili se sseħħ b'bidliet fi stadji oħra.
Għalhekk, l-immaġini tal-istadju huma cache li jistgħu jinħażnu b'mod distribwit, u l-immaġini diġà maħluqa minnha jittellgħu fir-Reġistru Docker.

Tindif tar-reġistru
Mhux qed nitkellmu dwar it-tħassir ta 'saffi li baqgħu mdendlin wara tikketti mħassra - din hija karatteristika standard tar-Reġistru Docker innifsu. Qed nitkellmu dwar sitwazzjoni meta jakkumulaw ħafna tags Docker u nifhmu li m'għadniex bżonn xi wħud minnhom, iżda jieħdu spazju (u/jew inħallsu għaliha).
X'inhuma l-istrateġiji tat-tindif?
- Tista 'sempliċement tagħmel xejn tnaddafx. Xi drabi huwa verament aktar faċli li tħallas ftit għal spazju żejjed milli tħoll taħbil kbir ta 'tikketti. Iżda dan jaħdem biss sa ċertu punt.
- Reset sħiħ. Jekk tħassar l-immaġini kollha u tibni mill-ġdid dawk attwali biss fis-sistema CI, tista 'tqum problema. Jekk il-kontenitur jerġa 'jibda fil-produzzjoni, immaġni ġdida titgħabba għalih - waħda li għadha ma ġiet ittestjata minn ħadd. Dan joqtol l-idea ta 'infrastruttura immutabbli.
- Blu-aħdar. Reġistru wieħed beda jfur - aħna ntellgħu immaġini għal ieħor. L-istess problema bħal fil-metodu preċedenti: f'liema punt tista 'tikklerja r-reġistru li beda jfur?
- Biż-żmien. Tħassar l-immaġini kollha ta' aktar minn xahar? Iżda żgur li se jkun hemm servizz li ilu xahar ma ġiex aġġornat...
- Manwalment tiddetermina dak li diġà jista' jitħassar.
Hemm żewġ għażliet tassew vijabbli: ma tnaddafx jew taħlita ta 'blu-aħdar + manwalment. Fl-aħħar każ, qed nitkellmu dwar dan li ġej: meta tifhem li wasal iż-żmien li tnaddaf ir-reġistru, inti toħloq waħda ġdida u żżid l-immaġini ġodda kollha magħha matul, pereżempju, xahar. U wara xahar, ara liema miżwed fil-Kubernetes għadhom qed jużaw ir-reġistru l-antik, u ttrasferihom ukoll għar-reġistru l-ġdid.
Għal xiex wasalna werf? Aħna niġbru:
- Kap Git: it-tikketti kollha, il-fergħat kollha - jekk wieħed jassumi li għandna bżonn dak kollu li huwa mmarkat f'Git fl-immaġini (u jekk le, allura għandna bżonn inħassruh f'Git innifsu);
- il-miżwed kollha li bħalissa huma ppumpjati lejn Kubernetes;
- ReplicaSets qodma (dak li ġie rilaxxat reċentement), u qed nippjanaw ukoll li niskennjaw ir-rilaxxi ta' Helm u nagħżlu l-aħħar immaġini hemmhekk.
... u agħmel whitelist minn dan is-sett - lista ta’ immaġini li mhux se nħassru. Aħna naddaf kull ħaġa oħra, u wara nsibu stampi tal-palk orfni u nħassruhom ukoll.
Skjerament stadju
Dikjarazzjoni affidabbli
L-ewwel punt li nixtieq niġbed l-attenzjoni għalih fl-iskjerament huwa t-tnedija tal-konfigurazzjoni aġġornata tar-riżorsi, iddikjarata b'mod dikjarattiv. Id-dokument oriġinali YAML li jiddeskrivi r-riżorsi Kubernetes huwa dejjem differenti ħafna mir-riżultat li attwalment qed jaħdem fil-cluster. Minħabba li Kubernetes iżid mal-konfigurazzjoni:
- identifikaturi;
- informazzjoni dwar is-servizz;
- ħafna valuri awtomatiċi;
- sezzjoni bi status attwali;
- bidliet li saru bħala parti mill-webhook tad-dħul;
- ir-riżultat tax-xogħol ta 'kontrolluri varji (u l-iskedar).
Għalhekk, meta tidher konfigurazzjoni ġdida tar-riżorsi (ġdid), ma nistgħux sempliċement nieħdu u nikteb fuqu l-konfigurazzjoni attwali, "live" magħha (jgħixu). Biex nagħmlu dan ikollna nqabblu ġdid bl-aħħar konfigurazzjoni applikata (l-aħħar applikati) u irrombla fuq jgħixu garża riċevuta.
Dan l-approċċ jissejjaħ 2-way jingħaqdu. Jintuża, pereżempju, f'Telmu.
Hemm ukoll 3-way jingħaqdu, li hija differenti f'dak:
- tqabbil l-aħħar applikati и ġdid, inħarsu lejn dak li tħassar;
- tqabbil ġdid и jgħixu, inħarsu lejn dak li ġie miżjud jew mibdul;
- il-garża miġbura hija applikata għaliha jgħixu.
Aħna niskjeraw 1000+ applikazzjoni ma Helm, għalhekk aħna fil-fatt ngħixu b'għaqda 2-way. Madankollu, għandha għadd ta' problemi li solvejna bl-irqajja' tagħna, li jgħinu lil Helm jaħdem b'mod normali.
Status tat-tnedija reali
Wara li s-sistema CI tagħna tiġġenera konfigurazzjoni ġdida għal Kubernetes ibbażata fuq l-avveniment li jmiss, tittrażmettiha għall-użu (applika) għal cluster - bl-użu ta' Helm jew kubectl apply. Sussegwentement, isseħħ l-għaqda N-way diġà deskritta, li għaliha l-API Kubernetes tirrispondi b'mod approvat għas-sistema CI, u dik għall-utent tagħha.

Madankollu, hemm problema kbira: wara kollox applikazzjoni b'suċċess ma tfissirx tnedija b'suċċess. Jekk Kubernetes jifhem liema bidliet jeħtieġ li jiġu applikati u japplikah, għadna ma nafux x'se jkun ir-riżultat. Pereżempju, l-aġġornament u l-istartjar mill-ġdid tal-miżwed fil-frontend jista 'jkun ta' suċċess, iżda mhux fil-backend, u se nġibu verżjonijiet differenti tal-immaġini tal-applikazzjoni li qed taħdem.
Biex tagħmel kollox b'mod korrett, din l-iskema teħtieġ link addizzjonali - tracker speċjali li jirċievi informazzjoni dwar l-istatus mill-API Kubernetes u jittrasmettiha għal aktar analiżi tal-istat reali tal-affarijiet. Ħloqna librerija Open Source f'Go - (ara t-tħabbira tiegħu ), li ssolvi din il-problema u hija mibnija fis-werf.
L-imġieba ta 'dan it-tracker fil-livell werf hija kkonfigurata bl-użu ta' annotazzjonijiet li jitqiegħdu fuq Deployments jew StatefulSets. Annotazzjoni ewlenija - fail-mode - jifhem it-tifsiriet li ġejjin:
-
IgnoreAndContinueDeployProcess— ninjoraw il-problemi tat-tnedija ta' dan il-komponent u nkomplu l-iskjerament; -
FailWholeDeployProcessImmediately— żball f'dan il-komponent iwaqqaf il-proċess ta' skjerament; -
HopeUntilEndOfDeployProcess— nittamaw li dan il-komponent jaħdem sa tmiem l-iskjerament.
Per eżempju, din il-kombinazzjoni ta 'riżorsi u valuri ta' annotazzjoni fail-mode:

Meta niskjeraw għall-ewwel darba, id-database (MongoDB) tista' ma tkunx għadha lesta - L-iskjeramenti se jfallu. Imma tista 'tistenna l-mument biex tibda, u l-iskjerament xorta se jseħħ.
Hemm żewġ annotazzjonijiet oħra għal kubedog f'werf:
-
failures-allowed-per-replica— in-numru ta' waqgħat permessi għal kull replika; -
show-logs-until— jirregola l-mument sa liema werf juri (fl-stdout) zkuk mill-imżiewed kollha rolled out. In-nuqqas huwaPodIsReady(biex ninjoraw messaġġi li x'aktarx ma rridux meta t-traffiku jibda jasal lejn il-pod), iżda l-valuri huma validi wkoll:ControllerIsReadyиEndOfDeploy.
X'iktar irridu mill-iskjerament?
Minbarra ż-żewġ punti diġà deskritti, nixtiequ:
- biex tara zkuk - u dawk meħtieġa biss, u mhux kollox infila;
- track il-progress, għaliex jekk ix-xogħol jiddendel "skiet" għal diversi minuti, huwa importanti li tifhem x'qed jiġri hemmhekk;
- li jkollha rollback awtomatiku f'każ li xi ħaġa marret ħażin (u għalhekk huwa kritiku li tkun taf l-istatus reali tal-iskjerament). It-tnedija trid tkun atomika: jew tgħaddi sal-aħħar, jew kollox jerġa 'lura għall-istat preċedenti tiegħu.
Riżultati ta '
Għalina bħala kumpanija, biex nimplimentaw l-isfumaturi kollha deskritti fi stadji differenti tal-kunsinna (bini, tippubblika, skjerament), sistema CI u utilità huma biżżejjed .
Minflok konklużjoni:

Bl-għajnuna ta 'werf, għamilna progress tajjeb biex insolvu numru kbir ta' problemi għall-inġiniera DevOps u nkunu ferħanin jekk il-komunità usa 'tal-inqas ippruvat din l-utilità fl-azzjoni. Ikun aktar faċli li niksbu riżultat tajjeb flimkien.
Vidjows u slides
Vidjow mill-prestazzjoni (~47 minuta):

Preżentazzjoni tar-rapport:
PS
Rapporti oħra dwar Kubernetes fuq il-blog tagħna:
- «» (Dmitry Stolyarov; 27 ta’ April, 2019 fuq “Strike”);
- «» (Andrey Polovov; 8 ta’ April, 2019 fuq Saint HighLoad++);
- «» (Dmitry Stolyarov; 8 ta’ Novembru 2018 fuq HighLoad++);
- «» (Dmitry Stolyarov; 28 ta’ Mejju, 2018 f’RootConf);
- «» (Dmitry Stolyarov; 7 ta’ Novembru 2017 fuq HighLoad++);
- «» (Dmitry Stolyarov; 6 ta' Ġunju 2017 f'RootConf).
Sors: www.habr.com
