ProHoster > ΠΠ»ΠΎΠ³ > Kev tswj hwm > werf 1.1 tso tawm: kev txhim kho rau tus tsim hnub no thiab npaj rau yav tom ntej
werf 1.1 tso tawm: kev txhim kho rau tus tsim hnub no thiab npaj rau yav tom ntej
werf yog peb qhov chaw qhib GitOps CLI kev siv hluav taws xob rau kev tsim thiab xa cov ntawv thov rau Kubernetes. Raws li tau cog lus tseg, tso tawm version v1.0 cim qhov pib ntawm kev ntxiv cov yam ntxwv tshiab rau werf thiab kho cov kev coj ua ib txwm muaj. Tam sim no peb txaus siab los nthuav tawm kev tso tawm v1.1, uas yog ib kauj ruam loj hauv kev txhim kho thiab lub hauv paus rau yav tom ntej tus sau werf. Lub version yog tam sim no muaj nyob rau hauv channel 1.1 ua.
Lub hauv paus ntawm kev tso tawm yog cov theem tshiab khaws cia architecture thiab kev ua kom zoo ntawm kev ua haujlwm ntawm ob tus neeg sau khoom (rau Stapel thiab Dockerfile). Lub chaw cia khoom tshiab qhib qhov muaj peev xwm ntawm kev siv cov rooj sib tham sib faib los ntawm ntau lub koom haum thiab cov rooj sib txoos ua ke ntawm tib tus tswv tsev.
Kev ua kom zoo ntawm kev ua haujlwm suav nrog tshem tawm cov kev suav tsis tsim nyog ntawm theem ntawm kev suav cov npe kos npe thiab hloov cov txheej txheem rau kev suav cov ntaub ntawv checksums kom ua tau zoo dua. Qhov kev ua kom zoo no txo ββqis lub sijhawm nruab nrab ntawm qhov project tsim siv werf. Thiab idle tsim, thaum tag nrho cov theem muaj nyob rau hauv lub cache theem-cia, tam sim no ceev heev. Feem ntau, rov pib qhov tsim yuav siv sijhawm tsawg dua 1 thib ob! Qhov no tseem siv tau rau cov txheej txheem los txheeb xyuas cov theem hauv cov txheej txheem ntawm pab pawg ua haujlwm. werf deploy ΠΈ werf run.
Tsis tas li nyob rau hauv qhov kev tso tawm no, lub tswv yim rau tagging cov duab los ntawm cov ntsiab lus tshwm sim - cov ntsiab lus raws li tagging, uas yog tam sim no enabled los ntawm lub neej ntawd thiab tsuas yog ib qho kev pom zoo.
Cia peb ua tib zoo saib cov kev hloov tshiab tseem ceeb hauv werf v1.1, thiab tib lub sijhawm qhia koj txog cov phiaj xwm rau yav tom ntej.
Ib daim duab tshiab sib sau ua ke yog lav kom muaj tus cim tshwj xeeb los ntawm TIMESTAMP_MILLISEC(saib lub npe theem tshiab hom ntawv). Yog li cas hauv theem-cia ib daim duab tsim nyog yuav pom, werf yuav muab cov duab tshiab tso ua ke thiab yuav siv cov duab los ntawm lub cache.
Hauv lwm lo lus: thawj txheej txheem ua kom tiav lub tsev duab (tus ceev tshaj plaws) yuav tau txais txoj cai los khaws cia rau hauv theem-cia (thiab tom qab ntawd nws yog ib daim duab uas yuav siv rau txhua qhov tsim). Cov txheej txheem tsim qeeb yuav tsis thaiv cov txheej txheem sai dua los ntawm kev txuag cov txiaj ntsig tsim ntawm theem tam sim no thiab txav mus rau qhov tsim tom ntej.
Ib lub chaw khaws cia Git ib txwm muaj cov lus cog tseg uas tsis hloov cov ntsiab lus ntawm cov duab cov ntaub ntawv. Piv txwv li, cog lus nrog cov lus pom lossis kev sib koom ua ke, lossis cog lus uas hloov cov ntaub ntawv hauv Git uas yuav tsis raug xa mus rau hauv daim duab.
Thaum siv cov ntsiab lus-raws li tagging, cov teeb meem ntawm qhov tsis tsim nyog rov pib dua ntawm daim ntawv thov pods hauv Kubernetes vim muaj kev hloov pauv hauv lub npe duab raug daws, txawm tias cov ntsiab lus ntawm daim duab tsis tau hloov pauv. Los ntawm txoj kev, qhov no yog ib qho ntawm cov laj thawj uas tiv thaiv kev khaws cia ntau microservices ntawm ib daim ntawv thov hauv ib qho chaw khaws cia Git.
Tsis tas li ntawd, cov ntsiab lus-raws li tagging yog ib txoj kev txhim khu kev qha ntau dua li tagging ntawm Git ceg, vim tias cov ntsiab lus ntawm cov duab tshwm sim tsis nyob ntawm qhov kev txiav txim uas cov kav dej raug tua hauv CI system rau kev sib sau ua ke ntau yam kev cog lus ntawm tib ceg.
Tus neeg siv tam sim no muaj lub sijhawm los tswj cov khoom tso tawm, teeb tsa qib nkag thiab ua haujlwm nrog cov ntaub ntawv debugging. Kev xaiv ntxiv --log-quiet, --log-verbose, --log-debug.
Los ntawm lub neej ntawd, cov zis muaj cov ntaub ntawv yam tsawg kawg nkaus:
Thaum siv verbose tso zis (--log-verbose) koj tuaj yeem pom tias werf ua haujlwm li cas:
Lub hom phiaj yog rau cov neeg siv kom siv cov kev cai siv yam tsis muaj kev txwv thaum siv werf.
Tam sim no, peb tau txheeb xyuas cov kev daws teeb meem hauv qab no uas peb yuav lav tag nrho cov kev txhawb nqa:
Default (library/registry)*,
AWS ECR
Azure *,
Docker Hub
GCR*,
GitHub Pob
GitLab Registry *,
Chaw nres nkoj *,
Quay.
Cov kev daws teeb meem uas tam sim no txhawb nqa tag nrho los ntawm werf yog cim nrog lub hnub qub. Rau lwm tus muaj kev txhawb nqa, tab sis muaj kev txwv.
Ob qhov teeb meem tseem ceeb tuaj yeem txheeb xyuas:
Qee qhov kev daws teeb meem tsis txhawb qhov hu ua nested repositories (Docker Hub, GitHub Pob thiab Quay) lossis ua, tab sis tus neeg siv yuav tsum tsim lawv manually siv UI lossis API (AWS ECR).
Peb yuav daws cov teeb meem no thiab lwm yam teeb meem uas siv cov APIs ntawm cov kev daws teeb meem. Txoj haujlwm no tseem suav nrog kev npog tag nrho lub voj voog ntawm kev ua haujlwm werf nrog kev sim rau txhua tus ntawm lawv.
Distributed duab tsim (β)
Version: v1.2 v1.1 (qhov tseem ceeb rau kev siv cov yam ntxwv no tau nce ntxiv)
Tam sim no, werf v1.0 thiab v1.1 tsuas yog siv tau rau ntawm ib tus tswv tsev rau kev ua haujlwm ntawm lub tsev thiab tshaj tawm cov duab thiab xa daim ntawv thov mus rau Kubernetes.
Txhawm rau qhib qhov muaj peev xwm ntawm kev faib ua haujlwm ntawm werf, thaum tsim thiab xa tawm cov ntawv thov hauv Kubernetes tau qhib rau ntau tus tswv tsev thiab cov tswv tsev no tsis txuag lawv lub xeev ntawm kev tsim (ib ntus khiav), werf yuav tsum siv lub peev xwm siv. Docker Registry ua lub khw muag khoom theem.
Yav dhau los, thaum qhov project werf tseem hu ua dapp, nws muaj lub sijhawm zoo li no. Txawm li cas los xij, peb tau ntsib ntau yam teeb meem uas yuav tsum tau coj mus rau hauv tus account thaum siv cov haujlwm no hauv werf.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. Cov yam ntxwv no tsis xav kom tus neeg sau ua haujlwm hauv Kubernetes pods, vim tias Txhawm rau ua qhov no, koj yuav tsum tau tshem tawm qhov kev cia siab ntawm Docker server hauv zos (hauv Kubernetes pod tsis muaj kev nkag mus rau Docker server hauv zos, vim tias cov txheej txheem nws tus kheej tau khiav hauv lub thawv, thiab werf tsis thiab yuav tsis txhawb nqa. ua haujlwm nrog Docker server hla lub network). Kev them nyiaj yug rau kev khiav Kubernetes yuav raug siv cais.
Lub hom phiaj tseem ceeb yog kom ua tiav ib qho kev sib koom ua ke rau kev xa cov ntawv thov ob qho tib si hauv zos thiab hauv kev tsim khoom, tsis muaj kev ua haujlwm nyuaj, tawm ntawm lub thawv.
werf kuj tseem yuav tsum muaj hom kev ua haujlwm uas nws yuav yooj yim los hloov kho daim ntawv thov code thiab tau txais kev tawm tswv yim tam sim los ntawm daim ntawv thov khiav rau kev debugging.
Hauv qhov tam sim no version ntawm werf v1.1 hauv cov txheej txheem cleanup Tsis muaj kev cai rau kev ntxuav cov duab rau cov ntsiab lus raws li tagging tswv yim - cov duab no yuav sib sau.
Tsis tas li ntawd, tam sim no version ntawm werf (v1.0 thiab v1.1) siv cov kev cai huv huv sib txawv rau cov duab luam tawm nyob rau hauv tagging schemes: Git ceg, Git tag lossis Git cog lus.
Ib qho tshiab algorithm rau kev ntxuav cov duab raws li keeb kwm ntawm kev cog lus hauv Git, sib koom ua ke rau tag nrho cov phiaj xwm tagging, tau tsim:
Yog vim li cas yog Go templates, raws li ntau tus neeg, muaj ib tug siab nkag barrier, thiab kev nkag siab ntawm cov cai ntawm cov templates kuj raug kev txom nyem.
Lub hom phiaj: Xyuas kom meej tias cov duab tau tsim thiab daim ntawv thov raug xa mus siv cov neeg khiav hauv Kubernetes. Cov. Cov duab tshiab tuaj yeem tsim, luam tawm, ntxuav, thiab xa ncaj qha los ntawm Kubernetes pods.
Txhawm rau siv lub peev xwm no, thawj zaug koj yuav tsum muaj peev xwm tsim cov duab faib (saib taw tes saum toj no).
Nws kuj tseem xav tau kev txhawb nqa rau tus tsim kev ua haujlwm yam tsis muaj Docker server (piv txwv li Kaniko-zoo li tsim lossis tsim hauv userspace).
Peb hlub peb haiv neeg (GitHub, Telegram) thiab peb xav tau ntau thiab ntau tus neeg los pab ua kom werf zoo dua, nkag siab txog cov kev taw qhia peb tab tom mus, thiab koom nrog kev txhim kho.
Tsis ntev los no nws tau txiav txim siab hloov mus rau GitHub project boards txhawm rau nthuav tawm cov txheej txheem ua haujlwm ntawm peb pab neeg. Tam sim no koj tuaj yeem pom cov phiaj xwm tam sim no, nrog rau cov haujlwm tam sim no hauv cov haujlwm hauv qab no:
Cov uas twb muaj lawm yog coj mus rau ib hom ntawv, nrog ib tug txaus tus naj npawb ntawm cov ntsiab lus thiab cov ntsiab lus.
Cov teeb meem tshiab nrog cov tswv yim thiab cov tswv yim tau ntxiv.
Yuav ua li cas qhib version v1.1
Lub version yog tam sim no muaj nyob rau hauv channel 1.1 ua (hauv channels ruaj khov ΠΈ pob zeb-khoom kev tso tawm yuav tshwm sim thaum muaj kev ruaj ntseg tshwm sim, txawm li cas los xij ea nws tus kheej twb ruaj khov txaus siv, vim tau dhau los ntawm cov channels alpha ΠΈ beta). Qhib qhib ntawm multiwerf raws li hauv qab no:
source $(multiwerf use 1.1 ea)
werf COMMAND ...
xaus
Cov txheej txheem tshiab cia khoom thiab tsim kho kom zoo rau Stapel thiab Dockerfile builders qhib qhov muaj peev xwm ntawm kev siv cov khoom faib thiab sib npaug hauv werf. Cov yam ntxwv no yuav tshwm sim sai sai hauv tib lub v1.1 tso tawm thiab yuav dhau los ua tiav los ntawm kev hloov kho nws tus kheej (rau cov neeg siv multiwerf).
Hauv qhov kev tso tawm no, lub tswv yim tagging raws li cov ntsiab lus duab tau ntxiv - cov ntsiab lus raws li tagging, uas tau dhau los ua qhov zoo li qub. Lub ntsiab lus txib cav kuj tau rov ua haujlwm dua: werf build, werf publish, werf deploy, werf dismiss, werf cleanup.
Cov kauj ruam tseem ceeb tom ntej yog ntxiv cov khoom sib dhos. Kev tsim cov khoom faib tau dhau los ua qhov tseem ceeb tshaj li kev sib txuas ua ke txij li v1.0 vim tias lawv ntxiv tus nqi ntau dua rau werf: ntsug scaling ntawm cov neeg tsim thiab kev txhawb nqa rau cov neeg tsim khoom tsis zoo hauv ntau yam CI / CD systems, nrog rau kev muaj peev xwm ua haujlwm txhawb nqa rau GitHub Kev Ua Haujlwm . Yog li ntawd, lub sijhawm kawg ntawm kev siv rau cov rooj sib txoos ua ke tau hloov pauv. Txawm li cas los xij, peb tab tom ua haujlwm los siv ob qho tib si sai li sai tau.