Réamhrá gairid ar Kustomize

Nóta. aistrigh.: Scríobh Scott Lowe an t-alt, innealtóir a bhfuil taithí fhairsing aige ar TF, atá ina údar/comhúdar ar sheacht leabhar clóite (ar VMware vSphere go príomha). Oibríonn sé anois dá fhochuideachta VMware Heptio (a fuarthas in 2016), ag speisialú i néalríomhaireacht agus Kubernetes. Feidhmíonn an téacs féin mar réamhrá gonta agus éasca le tuiscint ar bhainistíocht cumraíochta do Kubernetes a úsáideann teicneolaíocht Saincheap, a tháinig chun bheith ina chuid de K8s le déanaí.

Réamhrá gairid ar Kustomize

Is uirlis é Kustomize a ligeann d’úsáideoirí “comhaid YAML simplí, saor ó theimpléad a shaincheapadh chun críocha éagsúla, ag fágáil an YAML bunaidh slán agus inúsáidte” (cur síos ar iasacht go díreach ó stór kustomize ar GitHub). Is féidir Kustomize a rith go díreach nó, amhail Kubernetes 1.14, é a úsáid kubectl -k chun rochtain a fháil ar a fheidhmiúlacht (cé gur mar Kubernetes 1.15, tá an dénártha ar leithligh níos nuaí ná na cumais a tógadh isteach i kubectl). (Nóta. aistrigh.: Agus leis an scaoileadh le déanaí Cúirtéis 1.16 shaincheapadh le tacaíocht ó freisin san áirgiúlacht kubeadm.) Sa phost seo, ba mhaith liom na bunghnéithe kustomize a chur in aithne do léitheoirí.

San fhoirm/feidhmchlár is simplí, níl i kustomize ach bailiúchán acmhainní (comhaid YAML a shainíonn oibiachtaí Kubernetes: Imscaradh, Seirbhísí, etc.) chomh maith le liosta treoracha le haghaidh athruithe nach mór a dhéanamh ar na hacmhainní sin. Díreach mar a úsáideann an tacar treoracha atá i Makefile, agus tógann Docker an coimeádán bunaithe ar threoracha ó Dockerfile, úsáidí a shaincheapadh kustomization.yaml chun treoracha a stóráil faoi na hathruithe is mian leis an úsáideoir a dhéanamh ar thacar acmhainní.

Seo comhad samplach kustomization.yaml:

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

Ní dhéanfaidh mé iarracht labhairt faoi na réimsí féideartha go léir sa chomhad. kustomization.yaml (tá sé seo scríofa go maith faoi anseo), ach tabharfaidh mé míniú gairid ar shampla ar leith:

  • Réimse resources léiríonn cad (cé na hacmhainní) a athróidh kustomize. Sa chás seo, lorgóidh sé acmhainní i gcomhaid deployment.yaml и service.yaml i do eolaire (is féidir leat cosáin iomlána nó cosáin choibhneasta a shonrú más gá).
  • Réimse namePrefix treoracha kustomize chun réimír áirithe a chur leis (sa chás seo - dev-) a chur i leith name na hacmhainní go léir atá sainithe sa réimse resources. Mar sin, má tá Imscaradh name le brí nginx-deployment, déanfaidh shaincheapadh é dev-nginx-deployment.
  • Réimse namespace treoracha kustomize an t-ainmspás sonraithe a chur leis na hacmhainní go léir. Sa chás seo, beidh Imscaradh agus Seirbhís san ainmspás development.
  • Ar deireadh, an réimse commonLabels ina bhfuil sraith lipéad a chuirfear leis na hacmhainní go léir. In ár sampla, sannfaidh kustomize lipéad ar na hacmhainní leis an ainm environment agus brí development.

Má dhéanann an t-úsáideoir kustomize build . sa chomhadlann leis an gcomhad kustomization.yaml agus na hacmhainní riachtanacha (i.e. comhaid deployment.yaml и service.yaml), ansin ag an aschur gheobhaidh sé téacs leis na hathruithe atá sonraithe i kustomization.yaml.

Réamhrá gairid ar Kustomize
Nóta. aistrigh.: Léiriú ó dhoiciméadú an tionscadail ar úsáid “simplí” kustomize

Is féidir an t-aschur a atreorú más gá athruithe a dhéanamh:

kustomize build . > custom-config.yaml

Tá na sonraí aschuir cinntitheach (táirgfidh na sonraí ionchuir céanna na torthaí aschuir céanna), mar sin ní gá duit an toradh a shábháil i gcomhad. Ina áit sin, is féidir é a chur ar aghaidh go díreach chuig ordú eile:

kustomize build . | kubectl apply -f -

Is féidir na gnéithe kustomize a rochtain freisin trí kubectl -k (ó leagan Kubernetes 1.14). Mar sin féin, coinnigh i gcuimhne go ndéantar an pacáiste kustomize standalone a nuashonrú níos tapúla ná an pacáiste kubectl comhtháite (ar a laghad is é seo an cás le scaoileadh Kubernetes 1.15).

Féadfaidh léitheoirí ceist a chur: “Cén fáth an chastacht seo go léir más féidir leat na comhaid a chur in eagar go díreach?” Ceist iontach. Inár sampla, go deimhin Is féidir ceann comhaid a mhodhnú deployment.yaml и service.yaml go díreach, ach cad más forc de thionscadal duine eile iad? Nuair a dhéantar comhaid a athrú go díreach bíonn sé deacair (mura bhfuil sé dodhéanta) forc a athbhunú nuair a dhéantar athruithe ar an mbunús/foinse. Trí úsáid a bhaint as kustomize is féidir leat na hathruithe seo a lárú i gcomhad kustomization.yaml, ag fágáil slán leis na comhaid bhunaidh agus mar sin beidh sé níos éasca na bunchomhaid a athbhunú más gá.

Tagann na buntáistí a bhaineann le kustomize chun solais i gcásanna úsáide níos casta. Sa sampla thuas kustomization.yaml agus tá na hacmhainní san eolaire céanna. Mar sin féin, tacaíonn kustomize le cásanna úsáide ina bhfuil cumraíocht bonn agus go leor leaganacha de, ar a dtugtar freisin forleagan. Mar shampla, bhí an t-úsáideoir ag iarraidh Imscaradh agus Seirbhís a ghlacadh le haghaidh nginx, a d'úsáid mé mar shampla, agus leaganacha forbartha, stáitsithe agus táirgthe (nó leaganacha) de na comhaid sin a chruthú. Chun seo a dhéanamh, beidh na forleagan thuasluaite ag teastáil uaidh agus, go deimhin, na hacmhainní bunúsacha iad féin.

Chun smaoineamh ar fhorleagan agus acmhainní bunúsacha a léiriú (bunacmhainní), glacaimis leis go bhfuil an struchtúr seo a leanas ag na heolairí:

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

I gcomhad base/kustomization.yaml úsáideoirí ag baint úsáide as an réimse resources ní gá ach na hacmhainní ar cheart a áireamh i kustomize a dhearbhú.

I ngach ceann de na comhaid overlays/{dev,staging,prod}/kustomization.yaml tagraíonn úsáideoirí don chumraíocht bonn sa réimse resources, agus ansin cuir in iúl athruithe sonracha le haghaidh timpeallacht tugtha. Mar shampla, comhad overlays/dev/kustomization.yaml seans go mbeidh cuma ar an sampla a tugadh níos luaithe:

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

Sa chás seo an comhad overlays/prod/kustomization.yaml d'fhéadfadh a bheith go hiomlán difriúil:

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

Nuair a ritheann an t-úsáideoir kustomize build . sa chatalóg overlays/dev, ginfidh kustomize an rogha forbartha. Má ritheann tú kustomize build . sa chatalóg overlays/prod - gheobhaidh tú an rogha táirgthe. Agus seo go léir - gan aon athruithe a dhéanamh ar an mbunaidh (bonn) comhaid, ar fad ar bhealach dearbhaitheach cinntitheach. Is féidir leat an bhunchumraíocht agus na heolairí forleagan a cheangal go díreach le rialú leagan, agus fios a bheith agat gur féidir leat an chumraíocht atá uait a atáirgeadh ag am ar bith bunaithe ar na comhaid seo.

Réamhrá gairid ar Kustomize
Nóta. aistrigh.: Léiriú ó dhoiciméadú an tionscadail ar úsáid a bhaint as forleagan i kustomize

Is féidir a shaincheapadh i bhfad níos mó ná an méid atá clúdaithe san Airteagal seo. Mar sin féin, tá súil agam go bhfeidhmíonn sé mar réamhrá maith.

Acmhainní Breise

Tá go leor alt agus foilseachán maith faoi kustomize. Seo cuid acu a fuair mé thar a bheith úsáideach:

Nóta. aistrigh.: Is féidir leat a mholadh freisin bloc naisc a foilsíodh mar Acmhainní ar shuíomh Gréasáin an áirgiúlachta, agus ina dhiaidh sin beidh bailiúchán físeáin leis na tuarascálacha is déanaí faoi kustomize.

Má tá ceisteanna nó moltaí agat chun an t-ábhar seo a fheabhsú, bím i gcónaí oscailte d'aiseolas. Is féidir leat teagmháil a dhéanamh liom ag TwitterCainéal Kubernetes Slack. Bíodh spraoi agat do chuid manifests a mhodhnú le kustomize!

PS ó aistritheoir

Léigh freisin ar ár mblag:

Foinse: will.com

Add a comment