Ro-ràdh goirid mu Kustomize

Thoir an aire. eadar-theangachadh.: Chaidh an artaigil a sgrìobhadh le Scott Lowe, innleadair le eòlas farsaing ann an IT, a tha na ùghdar / co-ùghdar air seachd leabhraichean clò-bhuailte (gu sònraichte air VMware vSphere). Tha e a-nis ag obair dha fo-bhuidheann VMware Heptio (air fhaighinn ann an 2016), gu sònraichte ann an coimpiutaireachd sgòthan agus Kubernetes. Tha an teacsa fhèin na ro-ràdh pongail agus furasta a thuigsinn mu riaghladh rèiteachaidh airson Kubernetes a’ cleachdadh teicneòlas Gnàthaich, a thàinig gu bhith na phàirt de K8n o chionn ghoirid.

Ro-ràdh goirid mu Kustomize

Is e inneal a th’ ann an Kustomize a leigeas le luchd-cleachdaidh “faidhlichean YAML sìmplidh, gun theamplaid a ghnàthachadh airson diofar adhbharan, a’ fàgail an YAML tùsail slàn agus a ghabhas cleachdadh” (tuairisgeul air iasad gu dìreach bho ionad-tasgaidh kustomize air GitHub). Faodar Kustomize a ruith gu dìreach no, mar Kubernetes 1.14, a chleachdadh kubectl -k gus faighinn gu a ghnìomhachd (ged a tha e bho Kubernetes 1.15, tha am binary fa leth nas ùire na na comasan a chaidh a thogail a-steach do kubectl). (Thoir an aire. eadar-theangachadh.: Agus leis an fhoillseachadh o chionn ghoirid Àireamhan 1.16 gnàthaich le taic bho cuideachd ann an goireas kubeadm.) Anns an dreuchd seo, tha mi airson fiosrachadh a thoirt do luchd-leughaidh gu bunaitean kustomize.

Anns an fhoirm / tagradh as sìmplidh aige, chan eil ann an kustomize ach cruinneachadh de ghoireasan (faidhlichean YAML a tha a’ mìneachadh nithean Kubernetes: Cleachdaidhean, Seirbheisean, msaa) a bharrachd air liosta de stiùiridhean airson atharrachaidhean a dh’ fheumar a dhèanamh air na goireasan sin. Dìreach mar a chleachdas tu an t-seata stiùiridh a tha ann Makefile, agus bidh Docker a’ togail an t-soithich stèidhichte air stiùireadh bho Dockerfile, cleachdaidhean a ghnàthachadh kustomization.yaml gus stiùireadh a stòradh mu na h-atharrachaidhean a tha an neach-cleachdaidh airson a dhèanamh air seata ghoireasan.

Seo eisimpleir faidhle kustomization.yaml:

resources:
- deployment.yaml
- service.yaml
namePrefix: dev-
namespace: development
commonLabels:
  environment: development

Cha bhith mi a’ feuchainn ri bruidhinn mu na raointean uile a dh’ fhaodadh a bhith san fhaidhle. kustomization.yaml (tha seo air a dheagh sgrìobhadh mu dheidhinn an seo), ach bheir mi mìneachadh goirid air eisimpleir shònraichte:

  • achadh resources a’ comharrachadh dè (dè na goireasan) a dh’ atharraicheas. Anns a 'chùis seo, bidh e a' coimhead airson goireasan ann am faidhlichean deployment.yaml и service.yaml san eòlaire agad (faodaidh tu slighean slàn no co-cheangailte a shònrachadh ma tha sin riatanach).
  • achadh namePrefix ag òrdachadh kustomize ro-leasachan sònraichte a chur ris (sa chùis seo - dev-) a chur an ceill name a h-uile goireas a tha air a mhìneachadh san raon resources. Mar sin, ma tha cleachdadh aig name le brìgh nginx-deployment, nì gnàthachadh e dev-nginx-deployment.
  • achadh namespace ag iarraidh air kustomize an t-ainm-àite ainmichte a chur ris a h-uile goireas. Anns a 'chùis seo, bidh Cleachdadh agus Seirbheis a' tuiteam a-steach don àite ainm development.
  • Mu dheireadh, an raon commonLabels tha seata de bhileagan ann a thèid a chur ris a h-uile goireas. Anns an eisimpleir againn, sònraichidh kustomize bileag dha na goireasan leis an ainm environment agus brìgh development.

Ma nì an neach-cleachdaidh kustomize build . san eòlaire leis an fhaidhle kustomization.yaml agus na goireasan riatanach (i.e. faidhlichean deployment.yaml и service.yaml), an uairsin aig an toradh gheibh e teacsa leis na h-atharrachaidhean a chaidh a shònrachadh ann kustomization.yaml.

Ro-ràdh goirid mu Kustomize
Thoir an aire. eadar-theangachadh.: Dealbh bho sgrìobhainnean a’ phròiseict air cleachdadh “sìmplidh” kustomize

Faodar an toradh ath-stiùireadh ma tha feum air atharrachaidhean a ghealltainn:

kustomize build . > custom-config.yaml

Tha an dàta toraidh cinntiche (bidh an aon dàta cuir a-steach a’ toirt a-mach na h-aon toraidhean toraidh), agus mar sin cha leig thu leas an toradh a shàbhaladh gu faidhle. An àite sin, faodar a chuir gu dìreach gu òrdugh eile:

kustomize build . | kubectl apply -f -

Faodar faighinn gu na feartan kustomize cuideachd tro kubectl -k (bhon tionndadh Kubernetes 1.14). Ach, cumaibh cuimhne gu bheil am pasgan kustomize leis fhèin air ùrachadh nas luaithe na am pasgan kubectl aonaichte (co-dhiù tha seo fìor le sgaoileadh Kubernetes 1.15).

Faodaidh luchd-leughaidh faighneachd: “Carson a tha an iom-fhillteachd seo mas urrainn dhut na faidhlichean a dheasachadh gu dìreach?” Ceist sgoinneil. Anns an eisimpleir againn, gu dearbh urrainn faidhlichean atharrachadh deployment.yaml и service.yaml gu dìreach, ach dè ma tha iad nam forc de phròiseact cuideigin eile? Tha atharrachadh fhaidhlichean gu dìreach ga dhèanamh duilich (mura h-eil e do-dhèanta) forc ath-shuidheachadh nuair a thèid atharrachaidhean a dhèanamh air an tùs / stòr. Le bhith a’ cleachdadh kustomize leigidh sin leat na h-atharrachaidhean sin a mheadhanachadh ann am faidhle kustomization.yaml, a’ fàgail na faidhlichean tùsail slàn agus mar sin ga dhèanamh nas fhasa na faidhlichean tùsail ath-shuidheachadh ma tha sin riatanach.

Bidh buannachdan kustomize a’ nochdadh ann an cùisean cleachdaidh nas iom-fhillte. Anns an eisimpleir gu h-àrd kustomization.yaml agus tha na goireasan anns an aon eòlaire. Ach, tha kustomize a’ toirt taic do chùisean cleachdaidh far a bheil rèiteachadh bunaiteach agus mòran atharrachaidhean dheth, ris an canar cuideachd ath-chòmhdach. Mar eisimpleir, bha neach-cleachdaidh airson Cleachdadh agus Seirbheis a ghabhail airson nginx, a chleachd mi mar eisimpleir, agus dreachan leasachaidh, stèidse agus cinneasachaidh (no caochlaidhean) de na faidhlichean sin a chruthachadh. Gus seo a dhèanamh, feumaidh e na h-ath-chòmhdach gu h-àrd agus, gu dearbh, na goireasan bunaiteach fhèin.

Gus beachd a thoirt air ath-chòmhdach agus goireasan bunaiteach (stòrasan bunaiteach), gabhamaid ris gu bheil an structar a leanas aig na clàran:

- base
  - deployment.yaml
  - service.yaml
  - kustomization.yaml
- overlays
  - dev
    - kustomization.yaml
  - staging
    - kustomization.yaml
  - prod
    - kustomization.yaml

Ann am faidhle base/kustomization.yaml luchd-cleachdaidh a 'cleachdadh an raoin resources dìreach cuir an cèill na goireasan a bu chòir a bhith ann an kustomize.

Anns gach aon de na faidhlichean overlays/{dev,staging,prod}/kustomization.yaml bidh luchd-cleachdaidh a’ toirt iomradh air an rèiteachadh bunaiteach san raon resources, agus an uairsin comharraich atharrachaidhean sònraichte airson àrainneachd air a thoirt seachad. Mar eisimpleir, file overlays/dev/kustomization.yaml is dòcha gum bi e coltach ris an eisimpleir a chaidh a thoirt seachad na bu thràithe:

resources:
- ../../base
namePrefix: dev-
namespace: development
commonLabels:
  environment: development

Anns a 'chùis seo am faidhle overlays/prod/kustomization.yaml dh'fhaodadh a bhith gu tur eadar-dhealaichte:

resources:
- ../../base
namePrefix: prod-
namespace: production
commonLabels:
  environment: production
  sre-team: blue

Nuair a bhios an neach-cleachdaidh a 'ruith kustomize build . anns a ’chatalog overlays/dev, cruthaichidh kustomize an roghainn leasachaidh. Ma ruitheas tu kustomize build . anns a ’chatalog overlays/prod - gheibh thu an roghainn cinneasachaidh. Agus seo uile - gun a bhith a 'dèanamh atharrachaidhean sam bith air an fhear thùsail (bonn) faidhlichean, uile ann an dòigh dhearbhach agus cinntiche. Faodaidh tu an rèiteachadh bunaiteach agus na clàran ath-chòmhdach a ghealltainn gu dìreach gu smachd dreach, le fios gun urrainn dhut, stèidhichte air na faidhlichean sin, an rèiteachadh a tha thu ag iarraidh ath-riochdachadh aig àm sam bith.

Ro-ràdh goirid mu Kustomize
Thoir an aire. eadar-theangachadh.: Dealbh bho sgrìobhainnean a’ phròiseict mu bhith a’ cleachdadh ath-chòmhdach ann an kustomize

Gnàthaich can mòran barrachd air na tha air a chòmhdach san artaigil seo. Ach, tha mi an dòchas gum bi e na dheagh ro-ràdh.

Goireasan a bharrachd

Tha mòran artaigilean agus foillseachaidhean math ann mu kustomize. Seo beagan dhiubh a bha gu sònraichte feumail dhomh:

Thoir an aire. eadar-theangachadh.: Faodaidh tu cuideachd bloc de cheanglaichean a chaidh fhoillseachadh mar goireasan air làrach-lìn a’ ghoireas, agus an uairsin cruinneachadh de bhideothan leis na h-aithisgean as ùire mu kustomize.

Ma tha ceistean no molaidhean agad airson an stuth seo a leasachadh, tha mi an-còmhnaidh fosgailte do bheachdan air ais. Faodaidh tu fios a chuir thugam aig Twitter no Sianal Kubernetes Slack. Faigh spòrs ag atharrachadh do thaisbeanaidhean le kustomize!

PS bhon eadar-theangair

Leugh cuideachd air ar blog:

Source: www.habr.com

Cuir beachd ann