ProHoster > Блог > Whakahaerenga > werf 1.1 tuku: whakapai ake ki te kaihanga i tenei ra me nga mahere mo nga ra kei mua
werf 1.1 tuku: whakapai ake ki te kaihanga i tenei ra me nga mahere mo nga ra kei mua
werf Ko ta matou puna tuwhera GitOps CLI taputapu mo te hanga me te tuku tono ki a Kubernetes. Ka rite ki te kupu whakaari, te tukunga o te putanga v1.0 i tohu i te timatanga o te taapiri i nga ahuatanga hou ki te werf me te whakahou i nga huarahi tuku iho. Inaianei kei te koa matou ki te whakaatu i te putanga v1.1, he mahi nui ki te whanaketanga me te turanga mo nga ra kei mua kaikohi werf. Kei te waatea te putanga i tenei wa hongere 1.1 ea.
Ko te kaupapa o te tukunga ko te hoahoanga hou o te rokiroki atamira me te arotautanga o nga mahi a nga kaikohi e rua (mo Stapel me Dockerfile). Ko te hoahoanga rokiroki hou ka whakatuwhera i te kaha ki te whakatinana i nga huihuinga tohatoha mai i nga kaihautu maha me nga huihuinga whakarara i runga i te ope kotahi.
Ko te arotautanga o te mahi ko te whakakore i nga tatauranga koretake i te waahi o te tatau i nga hainatanga atamira me te whakarereke i nga tikanga mo te tatau i nga kaute kaute kia pai ake. Ko tenei arotautanga ka whakaiti i te wa toharite o te hanga kaupapa ma te whakamahi werf. Ka hanga mangere, ka noho nga wahanga katoa i roto i te keteroki wāhanga-rokiroki, kua tino tere inaianei. I te nuinga o nga wa, ka iti ake i te 1 hēkona te whakaara ano i te hanga! Ka pa ano tenei ki nga tikanga mo te manatoko i nga waahanga o te mahi a nga roopu. werf deploy и werf run.
I roto ano i tenei tukunga, i puta he rautaki mo te tohu whakaahua ma te ihirangi - te tohu i runga i te ihirangi, kua whakahohea inaianei ma te taunoa me te mea anake e taunaki ana.
Kia ata titiro ki nga mahi hou o werf v1.1, me te korero ano ki a koe mo nga mahere mo nga ra kei mua.
He aha te mea kua huri i te werf v1.1?
Hōputu whakaingoa atamira hōu me te hātepe hātepe mō te kōwhiri i ngā wāhanga mai i te keteroki
Ture whakangao ingoa atamira hou. Inaianei ka hangaia e ia waahanga waahanga he ingoa waahanga motuhake, e 2 nga waahanga: he waitohu (penei i te v1.0) me tetahi tohu motuhake mo te wa poto.
Hei tauira, penei pea te ahua o te ingoa atamira katoa:
SIGNATURE he waitohu atamira, e tohu ana i te tohu o te ihirangi atamira me te whakawhirinaki ki te hitori o nga whakarereketanga i Git i puta mai ai tenei ihirangi;
TIMESTAMP_MILLISEC he tautohu ahua ahurei e whakamanahia ana ka hangaia i te wa ka hangaia he ahua hou.
Ko te algorithm mo te kowhiri i nga waahanga mai i te keteroki e pa ana ki te tirotiro i te hononga o nga mahi a Git:
Ka tatau a Werf i te waitohu o tetahi waahanga.
В wāhanga-rokiroki He maha nga waahanga mo te hainatanga. Ka tohua e Werf nga waahanga katoa e rite ana ki te hainatanga.
Mena kei te hono te atamira o naianei ki Git (git-archive, atamira ritenga me nga papanga Git: install, beforeSetup, setup; git-latest-patch ranei), ka kowhiria e werf nga waahanga e hono ana ki te commit he tipuna o te commit o naianei (ko te ingoa o te hanga).
Mai i nga waahanga e toe ana, ka tohua tetahi - ko te mea tawhito i te ra o te hanganga.
Ka taea e tetahi waahi mo nga peka Git rereke te waitohu kotahi. Engari ka aukati te werf i te keteroki e hono ana ki nga peka rereke kia kore e whakamahia i waenga i enei manga, ahakoa ka rite nga hainatanga.
Te algorithm hou mo te hanga me te penapena i nga waahanga i roto i te rokiroki atamira
Mena, i te wa e kowhiri ana i nga waahanga mai i te keteroki, kaore e kitea e te werf he waahi tika, katahi ka timata te mahi whakahiato i tetahi waahanga hou.
Kia mahara he maha nga tukanga (i runga i te kotahi, neke atu ranei o nga kaihautu) ka timata te hanga i te atamira kotahi i te wa kotahi. Ka whakamahia e Werf tetahi algorithm aukati pai wāhanga-rokiroki i te wa e penapena ai te ahua hou kua kohia ki roto wāhanga-rokiroki. Ma tenei ara, i te wa e reri ana te hanga o te atamira hou, ka aukatia werf wāhanga-rokiroki ka tiakina he whakaahua hou ka kohia ki reira mena ka kore he ahua pai i reira (ma te waitohu me etahi atu tawhā - tirohia te algorithm hou mo te kowhiri i nga waahanga mai i te keteroki).
Ko te ahua katahi ano ka whakahiato ka whakapumautia he tohu motuhake na TIMESTAMP_MILLISEC(tirohia te whakatakotoranga whakaingoa o te atamira hou). I roto i te take i roto i wāhanga-rokiroki ka kitea he ahua pai, ka whakakorehia e werf te ahua hou i whakahiato ka whakamahia te ahua mai i te keteroki.
I etahi atu kupu: ko te mahi tuatahi ki te whakaoti i te hanga i te ahua (ko te mea tere) ka whai mana ki te penapena i roto i nga waahanga-rokiroki (a ko tenei whakaahua kotahi ka whakamahia mo nga hanga katoa). Ko te tukanga hanga puhoi e kore e aukati i te tukanga tere ake i te penapena i nga hua hanga o te atamira o naianei me te neke atu ki te whare e whai ake nei.
I tenei wa, ko te paipa o nga waahanga mo te ahua i hangaia mai i te Dockerfile he waahanga kotahi - dockerfile. I te tatau i te hainatanga, ka tatauhia te kaute o nga konae context, ka whakamahia i te wa o te huihuinga. I mua i tenei whakapainga, i hikoi hoki a werf i nga konae katoa ka whiwhi i tetahi kaute ma te whakahiato i te horopaki me te ahua o ia konae. Ka timata mai i te v1.1, ka taea e werf te whakamahi i nga kaute kaute kua penapena ki roto i te putunga Git.
Ko te algorithm kei runga git ls-rakau. Ka whai whakaaro te algorithm ki nga rekoata i roto .dockerignore ka takahia te rakau konae i te wa e tika ana. No reira, kua wehea e maatau te panui i te punaha konae, me te whakawhirinaki o te algorithm ki te rahi context ehara i te mea nui.
Ka tirotirohia ano e te algorithm nga konae kaore i tirohia, a, ki te tika, ka whai whakaaro ki roto i te kaute.
Kua pai ake te mahi i te wa e kawemai ana i nga konae
Ko nga mahi kawemai i runga i te macOS kua kore e whakawhäitihia e nga pukapuka Docker, ka oti te kawemai i te wa rite ki a Linux me Windows.
Te tohu ihirangi
Kei te tautoko a Werf v1.1 i nga tohu e kiia nei ko te tohu ma te ihirangi whakaahua - te tohu i runga i te ihirangi. Ko nga tohu o nga whakaahua a Docker e pa ana ki nga ihirangi o aua whakaahua.
I te wa e whakahaere ana i te whakahau werf publish --tags-by-stages-signature ranei werf ci-env --tagging-strategy=stages-signature whakaputaina whakaahua o te pera-ka karanga hainatanga atamira whakaahua. Ka tohuhia ia ahua me ona ake waitohu o nga waahanga o tenei ahua, ka tatauhia i runga i nga ture rite ki te waitohu auau o ia waahanga motuhake, engari he tohu whanui mo te ahua.
Ko te waitohu o nga waahanga whakaahua ka whakawhirinaki ki:
nga ihirangi o tenei ahua;
nga hitori o nga huringa a Git i puta ai tenei kaupapa.
Kei roto i te putunga Git nga mahi hangarua e kore e huri i nga ihirangi o nga konae whakaahua. Hei tauira, ka mahi me nga korero anake, ka hanumi ranei nga mahi, ka mahi ranei ka huri i aua konae kei Git ka kore e kawemai ki te ahua.
I te wa e whakamahi ana i te tohu-a-ihirangi, ka whakatauhia nga raru o te whakaara ano i nga putunga tono i Kubernetes na te whakarereketanga o te ingoa whakaahua, ahakoa kaore i rereke nga ihirangi o te ahua. Ma te ara, koinei tetahi o nga take e aukati ana i te penapena maha o nga microservices o te tono kotahi i roto i te putunga Git kotahi.
Ano hoki, ko te tohu i runga i te ihirangi he tikanga tohu pono ake i te tohu ki nga manga Git, na te mea ko nga ihirangi o nga whakaahua ka puta kaore i te whakawhirinaki ki te raupapa e mahia ai nga paipa i roto i te punaha CI mo te whakahiato i nga mahi maha o te peka kotahi.
nui: timata mai i naianei wahanga-waitohu Ko ko te rautaki tohu tohu anake. Ka whakamahia taunoa i roto i te whakahau werf ci-env (mehemea ka whakapūtā koe i tētahi kaupapa tohu tohu kē).
→ Tuhinga. Ka whakatapua ano he panui motuhake mo tenei waahanga. Kua whakahōutia (Aperira 3): Tuhinga me nga taipitopito whakaputaina.
Nga taumata takitaki
Ka whai waahi te kaiwhakamahi inaianei ki te whakahaere i te putanga, ki te whakarite i te taumata takiuru me te mahi me nga korero patuiro. Nga whiringa taapiri --log-quiet, --log-verbose, --log-debug.
Ma te taunoa, kei roto i te putanga nga korero iti rawa:
I te wa e whakamahi ana i te putanga kupu (--log-verbose) ka kite koe i te mahi a werf:
Putanga Taipitopito (--log-debug), i tua atu i nga korero patuiro werf, kei roto hoki nga raarangi o nga whare pukapuka kua whakamahia. Hei tauira, ka taea e koe te kite me pehea te mahi tahi me te Rehita Docker, me te tuhi hoki i nga waahi e pau ai te wa nui:
Nga mahere mo meake nei
Tūpato Ko nga whiringa e whakaahuatia ana i raro nei kua tohua v1.1 ka watea mai i tenei putanga, he maha o ratou i roto i nga wa e heke mai nei. Ka tae mai nga whakahoutanga ma nga whakahou-aunoa ina whakamahi multiwerf. Ko enei ahuatanga kaore e pa ki te waahanga pumau o nga mahi v1.1; ko te ahua o te ahua kaore e hiahiatia he wawaotanga a te kaiwhakamahi ki nga whirihoranga o naianei.
Tautoko katoa mo nga momo whakatinanatanga Rehita Docker (NEW)
Ko te whainga kia whakamahia e te kaiwhakamahi tetahi whakatinanatanga ritenga me te kore here i te wa e whakamahi ana i te werf.
I tenei wa, kua tautuhia e matou nga huinga otinga e whai ake nei ka whakamanahia e matou te tautoko katoa:
Taunoa (whare pukapuka/rehita)*,
AWS ECR
Azure*,
Puka Docker
GCR*,
Mōkī GitHub
Rehita GitLab*,
Whanga*,
Quay.
Ko nga otinga e tino tautokohia ana e te werf kua tohua ki te whetūriki. Mo etahi atu he tautoko, engari he here.
E rua nga raruraru matua ka taea te tautuhi:
Ko etahi otinga kaore e tautoko i te tango tohu ma te whakamahi i te Docker Registry API, hei aukati i nga kaiwhakamahi ki te whakamahi i te horoi aunoa a werf. He pono tenei mo te AWS ECR, Docker Hub, me nga Painga GitHub.
Ko etahi o nga otinga kaore i te tautoko i nga mea e kiia nei ko nga putunga kohanga (Docker Hub, GitHub Packages me Quay) ka mahi ranei, engari me hanga a ringa e te kaiwhakamahi ma te whakamahi i te UI, te API ranei (AWS ECR).
Ka whakatauhia e matou enei me etahi atu raruraru ma te whakamahi i nga API taketake o nga otinga. Kei roto hoki i tenei mahi te kapi katoa o nga mahi werf me nga whakamatautau mo ia mahi.
Hanganga whakaahua toha (↑)
Putanga: v1.2 v1.1 (kua piki ake te kaupapa matua mo te whakatinana i tenei waahanga)
I tenei wa, ka taea te whakamahi i te werf v1.0 me te v1.1 anake ki runga i te kaihautu motuhake mo nga mahi hanga me te whakaputa whakaahua me te tuku i te tono ki a Kubernetes.
Hei whakatuwhera i nga waahi o nga mahi toha a werf, ka whakarewahia te hanga me te tuku tono ki Kubernetes i runga i te maha o nga kaihautu kore noa, kaore enei kaihautu e tiaki i o raatau ahuatanga i waenga i nga hangahanga (kaiwhakahaere rangitahi), ka hiahiatia te werf ki te whakatinana i te kaha ki te whakamahi. te Rehita Docker hei toa atamira.
I mua, i te wa e kiia tonutia ana te kaupapa werf he dapp, i whai waahi tera. Heoi ano, he maha nga take kua pa ki a matou i te wa e whakatinana ana i tenei mahi i roto i te werf.
parau. Ko tenei ahuatanga kaore e hiahia te kaikohi ki te mahi i roto i nga kurupae Kubernetes, na te mea Ki te mahi i tenei, me whakakore koe i te ti'aturi ki runga i te tūmau Docker rohe (i roto i te Kubernetes pod karekau he uru ki te tūmau Docker rohe, no te mea kei te rere te tukanga i roto i te ipu, a ka kore e tautokohia e te werf. mahi tahi me te tūmau Docker i runga i te whatunga). Ka whakatinanahia te tautoko mo te whakahaere i nga Kubernetes.
Kei roto ko nga tuhinga werf (waahanga tohutoro и ārahi), me te Mahinga GitHub whaimana mo te mahi me te werf.
I tua atu, ka taea e te werf te mahi i runga i nga kaiwhaiwhai ephemeral.
Ko nga miihini o te taunekeneke a te kaiwhakamahi me te punaha CI ka ahu mai i te whakatakoto tapanga ki runga i nga tono kume hei timata i etahi mahi ki te hanga/whakaputa i te tono.
Te whakawhanaketanga o te rohe me te tuku tono me te werf (↓)
Ko te whainga matua ko te whakatutuki i te whirihora whakakotahi kotahi mo te tuku tono i te rohe me te hanga, kaore he mahi uaua, i waho o te pouaka.
Kei te hiahia hoki te werf ki te whai i tetahi aratau whakahaere e pai ai te whakatika i te waehere tono me te whiwhi urupare mai i te tono rere mo te patuiro.
I roto i te putanga o naianei o werf v1.1 i roto i te tukanga cleanup Karekau he tikanga mo te horoi i nga whakaahua mo te kaupapa tohu-a-roto - ka kohia enei whakaahua.
Ano, ko te putanga o naianei o werf (v1.0 me v1.1) e whakamahi ana i nga kaupapa here horoi rereke mo nga whakaahua i whakaputaina i raro i nga kaupapa tohu: Peka Git, Git tag, Git commit ranei.
Kua hangaia he algorithm hou mo te horoi whakaahua i runga i te hitori o nga mahi i Git, kua whakakotahi mo nga kaupapa tohu tohu katoa:
Kaua e neke ake i nga whakaahua N1 e hono ana ki te N2 o mua mo ia git HEAD (nga peka me nga tohu).
Kaua e neke ake i nga whakaahua atamira N1 e hono ana ki te N2 o mua mo ia git HEAD (nga peka me nga tohu).
Whakaorangia nga whakaahua katoa e whakamahia ana i roto i nga rauemi roopu Kubernetes (kua karapahia nga horopaki kube katoa o te konae whirihora me nga mokowāingoa; ka taea e koe te whakawhāiti i tenei whanonga me nga whiringa motuhake).
Whakaorangia nga whakaahua katoa e whakamahia ana i roto i nga whakaaturanga whirihoranga rauemi kua tiakina i roto i nga putanga Helm.
Ka taea te whakakore i tetahi ahua ki te kore e hono atu ki tetahi HEAD mai i te git (hei tauira, na te mea ko te HEAD e rite ana i mukua) karekau e whakamahia i roto i nga whakaaturanga i roto i te roopu Kubernetes me nga putanga Helm.
Te hanga whakaahua whakarara (↓)
Putanga: v1.1
Nga ra: Hanuere-Pepuere Paenga-whawha*
Ko te putanga o naianei o werf e kohi ana i nga whakaahua me nga taonga toi e whakaahuatia ana i roto werf.yaml, raupapa. He mea tika ki te whakarara i te tukanga o te whakahiato i nga waahanga motuhake o nga whakaahua me nga taonga toi, me te whakarato i nga putanga watea me nga korero.
* Kia mahara: kua nukuhia te wa kati na te nui ake o te kaupapa matua mo te whakatinana i te huihuinga tohatoha, ka taapiri ake i nga kaha whakahiato whakapae, me te whakamahi werf me nga Mahi a GitHub. Ko te huihuinga whakarara te mahi arotautanga e whai ake nei, e whakarato ana i te whakahiatotanga poutū i te wa e huihui ana tetahi kaupapa.
Whakawhiti ki te Rererangi 3 (↓)
Putanga: v1.2
Nga ra: Hui-tanguru-Maehe Mei*
Kei roto ko te hekenga ki te turanga waehere hou Heremi 3 me te huarahi whakamatau, watea ki te heke i nga whakaurunga o naianei.
* Kia mahara: ko te huri ki te Helm 3 e kore e taapiri i nga ahuatanga nui ki te werf, na te mea ko nga ahuatanga matua katoa o te Helm 3 (3-ara-hanumi me te kore he tiller) kua whakatinanahia ki te werf. Ano, werf kua āhuatanga tāpiri i tua atu i era kua tohua. Engari, ka noho tonu tenei whakawhitinga ki roto i a maatau mahere, ka whakatinanahia.
Jsonnet mo te whakaahua i te whirihoranga Kubernetes (↓)
Putanga: v1.2
Nga ra: Hanuere-Pepuere Paenga-whawha-Mei
Ka tautoko a Werf i nga whakaahuatanga whirihoranga mo Kubernetes i te whakatakotoranga Jsonnet. I te wa ano, ka noho hototahi te werf ki a Helm, a ka whai kowhiria te whakatakotoranga whakaahuatanga.
Ko te take ko nga tauira a Go, e ai ki te tini o nga tangata, he arai urunga teitei, a ka mamae ano te maaramatanga o te waehere o enei tauira.
Kei te whakaarohia ano te huarahi ki te whakauru i etahi atu punaha whakaahuatanga whirihoranga Kubernetes (hei tauira, Kustomize).
Mahi i roto i nga Kubernetes (↓)
Putanga: v1.2
Nga ra: Paenga-whawha-Mei Mei-Hune
Whāinga: Me whakarite ka hangaia nga whakaahua ka tukuna te tono ma te whakamahi i nga kaiwhaiwhai i Kubernetes. Ko era. Ko nga whakaahua hou ka taea te whakahiato, te whakaputa, te horoi, me te toha tika mai i nga putunga Kubernetes.
Hei whakatinana i tenei kaha, me kaha koe ki te hanga whakaahua toha (Tirohia te tohu i runga ake nei).
Me tautoko hoki mo te aratau mahi a te kaihanga me te kore he tūmau Docker (arā, he rite ki a Kaniko te hanga, te hanga ranei i roto i te mokowāmahi).
Ka tautoko a Werf i te hanga i runga i nga Kubernetes ehara i te Dockerfile anake, engari me tana Kaihanga Stapel me nga hanganga taapiri me te Ansible.
He taahiraa ki te whakawhanake tuwhera
Ka aroha matou ki to matou hapori (GitHub, waea) a kei te pirangi matou kia maha ake nga tangata ki te awhina kia pai ake te werf, kia mohio ki te huarahi e nekehia ana e matou, me te whai waahi ki te whanaketanga.
No tata nei ka whakatauhia kia huri ki Nga papa kaupapa GitHub hei whakaatu i nga mahi a to taatau roopu. Inaianei ka kite koe i nga mahere tata, me nga mahi o naianei i roto i nga waahanga e whai ake nei:
Ko nga mea o mua ka kawea ki te whakatakotoranga kotahi, me te nui o nga korero me nga korero.
Ko nga take hou me nga whakaaro me nga whakaaro kua taapirihia.
Me pehea e taea ai te putanga v1.1
Kei te waatea te putanga i tenei wa hongere 1.1 ea (i roto i nga hongere pūmau и toka-totoka ka puta nga tukunga i te wa e puta ai te whakapumautanga, heoi ea ko ia ano kua tino pumau mo te whakamahi, na te mea i haere ma nga hongere Alpha и peta). Whakahohe mā multiwerf i roto i te ara e whai ake nei:
source $(multiwerf use 1.1 ea)
werf COMMAND ...
mutunga
Ko te hoahoanga rokiroki atamira hou me te arotautanga o nga kaihanga mo nga kaihanga Stapel me Dockerfile ka tuwhera te huarahi ki te whakatinana i nga hanganga toha me te whakarara i roto i te werf. Ka puta enei ahuatanga i roto i te tukunga v1.1 ano ka watea aunoa ma te tikanga whakahou-aunoa (mo nga kaiwhakamahi multiwerf).
I roto i tenei tukunga, kua taapirihia he rautaki tohu i runga i te ihirangi whakaahua - te tohu i runga i te ihirangi, kua waiho hei rautaki taunoa. Kua mahi ano te raarangi whakahau matua: werf build, werf publish, werf deploy, werf dismiss, werf cleanup.
Ko te mahi nui e whai ake nei ko te taapiri i nga huihuinga tohatoha. Ko nga hanganga toha kua noho hei kaupapa matua ake i nga hanga whakarara mai i te v1.0 na te mea ka nui ake te uara ki te werf: te whakahiato poutū o nga kaihanga me te tautoko mo nga kaihanga ephemeral i roto i nga momo punaha CI/CD, tae atu ki te kaha ki te hanga tautoko mana mo nga Mahi a GitHub . Na reira, i nukuhia nga wa whakaotinga mo nga huihuinga whakarara. Heoi, kei te whakapau kaha matou ki te whakatinana wawe i nga huarahi e rua.
Whaia nga korero! A kaua e wareware ki te toro mai ki a matou i GitHubki te hanga i tetahi take, kimihia he mea e noho ana me te taapiri i te taapiri, hanga he PR, maataki noa ranei i te whanaketanga o te kaupapa.