Ifihan kukuru kan lati Kustomize

Akiyesi. itumọ.: Iwe naa ni a kọ nipasẹ Scott Lowe, ẹlẹrọ ti o ni iriri nla ni IT, ẹniti o jẹ onkọwe / alakọwe ti awọn iwe atẹjade meje (paapaa lori VMware vSphere). O n ṣiṣẹ ni bayi fun Heptio oniranlọwọ VMware (ti a gba ni ọdun 2016), amọja ni iṣiro awọsanma ati Kubernetes. Ọrọ funrararẹ ṣiṣẹ bi iṣafihan ṣoki ati irọrun lati loye si iṣakoso iṣeto ni fun Kubernetes nipa lilo imọ-ẹrọ Ṣe akanṣe, eyi ti laipe di apakan ti K8s.

Ifihan kukuru kan lati Kustomize

Kustomize jẹ ohun elo kan ti o fun laaye awọn olumulo lati ṣe akanṣe awọn faili YAML ti o rọrun, ti ko ni awoṣe fun awọn idi oriṣiriṣi, nlọ YAML atilẹba ti o wa ni mimu ati lilo” (apejuwe ti ya taara lati ọdọ kustomize ibi ipamọ lori GitHub). Kustomize le ṣee ṣiṣẹ taara tabi, bi ti Kubernetes 1.14, lo kubectl -k lati wọle si iṣẹ ṣiṣe rẹ (botilẹjẹpe bi ti Kubernetes 1.15, alakomeji lọtọ jẹ tuntun ju awọn agbara ti a ṣe sinu kubectl). (Akiyesi. itumọ.: Ati pẹlu awọn laipe Tu Kubernetes 1.16 ṣe akanṣe ni atilẹyin nipasẹ tun wa ninu ohun elo kubeadm.) Ni ipo yii, Mo fẹ lati ṣafihan awọn onkawe si awọn ipilẹ ti kustomize.

Ni awọn oniwe-alinisoro fọọmu / ohun elo, kustomize ni nìkan a gbigba ti awọn oro (YAML awọn faili ti o setumo Kubernetes ohun: Imuṣiṣẹ, Awọn iṣẹ, ati be be lo) pẹlu kan akojọ ti awọn ilana fun ayipada ti o nilo lati wa ni ṣe si awon oro. Gẹgẹ bi ṣiṣe ṣe nlo eto itọnisọna ti o wa ninu Makefile, ati Docker kọ eiyan da lori awọn ilana lati Dockerfile, ṣe akanṣe awọn lilo kustomization.yaml lati tọju awọn itọnisọna nipa awọn iyipada ti olumulo fẹ lati ṣe si eto awọn orisun.

Eyi ni apẹẹrẹ faili kustomization.yaml:

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

Emi kii yoo gbiyanju lati sọrọ nipa gbogbo awọn aaye ti o ṣeeṣe ninu faili naa. kustomization.yaml (eyi ti kọ daradara nipa nibi), ṣugbọn Emi yoo funni ni alaye kukuru ti apẹẹrẹ kan pato:

  • Aaye resources tọkasi ohun ti (eyi ti oro) kustomize yoo yi. Ni idi eyi, yoo wa awọn orisun ninu awọn faili deployment.yaml и service.yaml ninu rẹ liana (o le pato ni kikun tabi ojulumo ona ti o ba wulo).
  • Aaye namePrefix paṣẹ kustomize lati ṣafikun ìpele kan (ninu ọran yii - dev-) si ikalara name gbogbo oro telẹ ni awọn aaye resources. Bayi, ti o ba ti Imuṣiṣẹ ni o ni name pẹlu itumo nginx-deployment, ṣe akanṣe yoo ṣe dev-nginx-deployment.
  • Aaye namespace kọ kustomize lati ṣafikun aaye orukọ ti a fun si gbogbo awọn orisun. Ni idi eyi, Ifiranṣẹ ati Iṣẹ yoo ṣubu sinu aaye orukọ development.
  • Níkẹyìn, awọn aaye commonLabels ni akojọpọ awọn aami ti yoo ṣafikun si gbogbo awọn orisun. Ninu apẹẹrẹ wa, kustomize yoo fi aami si awọn orisun pẹlu orukọ naa environment ati itumo development.

Ti olumulo ba ṣe kustomize build . ninu awọn liana pẹlu awọn faili kustomization.yaml ati awọn orisun pataki (ie awọn faili deployment.yaml и service.yaml), lẹhinna ni iṣẹjade yoo gba ọrọ kan pẹlu awọn iyipada ti a pato ninu kustomization.yaml.

Ifihan kukuru kan lati Kustomize
Akiyesi. itumọ.: Apejuwe lati awọn iwe ise agbese lori "rọrun" lilo kustomize

Iṣẹjade naa le ṣe darí ti awọn ayipada ba nilo lati ṣe:

kustomize build . > custom-config.yaml

Data ti o jade jẹ ipinnu (data titẹ sii kanna yoo gbejade awọn abajade esi kanna), nitorina o ko ni lati fi abajade pamọ si faili kan. Dipo, o le kọja taara si aṣẹ miiran:

kustomize build . | kubectl apply -f -

Awọn ẹya kustomize tun le wọle nipasẹ kubectl -k (niwon Kubernetes version 1.14). Bibẹẹkọ, ni lokan pe package kustomize standalone ti ni imudojuiwọn yiyara ju package kubectl ti a ṣepọ (o kere ju eyi ni ọran pẹlu itusilẹ Kubernetes 1.15).

Awọn oluka le beere: “Kini idi gbogbo idiju yii ti o ba le ṣatunkọ awọn faili taara?” Ibeere nla. Ni apẹẹrẹ wa, nitõtọ le yipada awọn faili deployment.yaml и service.yaml taara, ṣugbọn ohun ti o ba ti won wa ni a orita ti elomiran ise agbese? Yiyipada awọn faili taara jẹ ki o nira (ti ko ba ṣeeṣe) lati tun orita kan pada nigbati awọn ayipada ba ṣe si ipilẹṣẹ/orisun. Lilo kustomize gba ọ laaye lati ṣe aarin awọn ayipada wọnyi ni faili kan kustomization.yaml, nlọ awọn faili atilẹba ti o wa titi ati nitorinaa jẹ ki o rọrun lati tun awọn faili atilẹba ti o ba jẹ dandan.

Awọn anfani ti kustomize di gbangba ni eka sii lilo igba. Ni awọn loke apẹẹrẹ kustomization.yaml ati awọn orisun wa ni itọsọna kanna. Sibẹsibẹ, awọn atilẹyin kustomize lo awọn ọran nibiti iṣeto ipilẹ wa ati ọpọlọpọ awọn iyatọ rẹ, tun mọ bi iṣagbesori. Fun apẹẹrẹ, olumulo kan fẹ lati mu Iṣiṣẹ ati Iṣẹ fun nginx, eyiti Mo lo bi apẹẹrẹ, ati ṣẹda idagbasoke, iṣeto ati awọn ẹya iṣelọpọ (tabi awọn iyatọ) ti awọn faili yẹn. Lati ṣe eyi, oun yoo nilo awọn agbekọja ti a mẹnuba loke ati, ni otitọ, awọn orisun ipilẹ funrararẹ.

Lati ṣe apejuwe imọran ti awọn agbekọja ati awọn orisun ipilẹ (awọn orisun ipilẹ), jẹ ki a ro pe awọn ilana ni eto wọnyi:

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

Ninu faili base/kustomization.yaml awọn olumulo lilo aaye resources nìkan sọ awọn orisun ti kustomize yẹ ki o pẹlu.

Ni kọọkan ninu awọn faili overlays/{dev,staging,prod}/kustomization.yaml awọn olumulo tọka si ipilẹ iṣeto ni aaye resources, ati lẹhinna tọka si awọn ayipada kan pato fun ayika ti a fun. Fun apẹẹrẹ, faili overlays/dev/kustomization.yaml le dabi apẹẹrẹ ti a fun ni iṣaaju:

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

Ni idi eyi faili overlays/prod/kustomization.yaml le yatọ patapata:

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

Nigbati olumulo nṣiṣẹ kustomize build . ninu awọn katalogi overlays/dev, kustomize yoo ṣe ina aṣayan idagbasoke. Ti o ba sare kustomize build . ninu awọn katalogi overlays/prod - o gba aṣayan iṣelọpọ. Ati gbogbo eyi - laisi iyipada eyikeyi si atilẹba (ipilẹ) awọn faili, gbogbo ni ọna asọye ati ipinnu. O le ṣe iṣeto ipilẹ ati awọn ilana agbekọja taara si iṣakoso ẹya, ni mimọ pe da lori awọn faili wọnyi o le ṣe atunto iṣeto ti o fẹ nigbakugba.

Ifihan kukuru kan lati Kustomize
Akiyesi. itumọ.: Apejuwe lati iwe ise agbese lori lilo overlays ni kustomize

Ṣe akanṣe le pọ diẹ ẹ sii ju ohun ti wa ni bo ni yi article. Sibẹsibẹ, Mo nireti pe o jẹ ifihan ti o dara.

Afikun Resources

Nibẹ ni o wa ọpọlọpọ awọn ti o dara ìwé ati awọn jẹ ti kustomize. Eyi ni diẹ ti Mo rii ni pataki julọ:

Akiyesi. itumọ.: O tun le ṣeduro Àkọsílẹ awọn ọna asopọ ti a tẹjade bi Oro lori oju opo wẹẹbu IwUlO, atẹle nipa akojọpọ awọn fidio pẹlu awọn ijabọ tuntun nipa kustomize.

Ti o ba ni awọn ibeere tabi awọn didaba fun ilọsiwaju ohun elo yii, Mo wa ni ṣiṣi si esi nigbagbogbo. O le kan si mi ni twitter tabi ni Kubernetes Slack ikanni. Ṣe igbadun lati ṣe atunṣe awọn ifihan rẹ pẹlu kustomize!

PS lati onitumọ

Ka tun lori bulọọgi wa:

orisun: www.habr.com

Fi ọrọìwòye kun