Fampidirana fohifohy momba ny Kustomize

Fanamarihana. transl.: Ny lahatsoratra dia nosoratan'i Scott Lowe, injeniera manana traikefa be dia be momba ny IT, izay mpanoratra / mpiara-manoratra boky fito vita pirinty (indrindra amin'ny VMware vSphere). Izy izao dia miasa ho an'ny sampana VMware Heptio (nahazo tamin'ny 2016), manampahaizana manokana amin'ny informatika rahona sy Kubernetes. Ny lahatsoratra mihitsy dia fampahafantarana fohy sy mora takarina amin'ny fitantanana ny fandrindrana ho an'ny Kubernetes mampiasa teknolojia. Ataovy miavaka, izay lasa anisan'ny K8 vao haingana.

Fampidirana fohifohy momba ny Kustomize

Kustomize dia fitaovana ahafahan'ny mpampiasa "manamboatra rakitra YAML tsotra sy tsy misy maodely ho an'ny tanjona samihafa, mamela ny YAML tany am-boalohany ho azo ampiasaina" (famaritana nindramina mivantana avy amin'ny customize repository amin'ny GitHub). Ny Kustomize dia azo atao mivantana na, toy ny Kubernetes 1.14, ampiasaina kubectl -k mba hidirana amin'ny asany (na dia ao amin'ny Kubernetes 1.15 aza, ny binary misaraka dia vaovao kokoa noho ny fahaiza-manao namboarina ao amin'ny kubectl). (Fanamarihana. transl.: Ary tamin'ny famoahana vao haingana Kubernetes 1.16 Ataovy miavaka tohanan'ny koa ao amin'ny utility kubeadm.) Amin'ity lahatsoratra ity dia te-hampahafantatra ny mpamaky ny fototry ny kustomize aho.

Amin'ny endriny/fampiharana tsotra indrindra, ny kustomize dia fitambarana loharanon-karena (rakitra YAML izay mamaritra ny zavatra Kubernetes: Deployments, Services, sns.) miampy lisitry ny toromarika momba ny fanovana tokony hatao amin'ireo loharano ireo. Toy ny make mampiasa ny toromarika napetraka ao Makefile, ary Docker dia manamboatra ny fitoeran-javatra mifototra amin'ny toromarika avy amin'ny Dockerfile, ampanjifaina ny fampiasana kustomization.yaml hitahiry toromarika momba ny fanovana tian'ny mpampiasa atao amin'ny loharanon-karena iray.

Ity misy rakitra ohatra kustomization.yaml:

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

Tsy hiezaka hiresaka momba ny saha rehetra mety ao anaty rakitra aho. kustomization.yaml (voasoratra tsara momba izany eto), fa hanome fanazavana fohy momba ny ohatra iray manokana aho:

  • saha resources manondro hoe inona no hovain'i kustomize. Amin'ity tranga ity, dia hitady loharanon-karena ao amin'ny rakitra deployment.yaml и service.yaml ao amin'ny lahatahiry (azonao atao ny mamaritra ny lalana feno na havana raha ilaina).
  • saha namePrefix dia manome toromarika an'i kustomize hanampy prefix (amin'ity tranga ity - dev-) atao hoe attribute name loharano rehetra voafaritra amin'ny sehatra resources. Noho izany, raha misy ny Deployment name misy dikany nginx-deployment, customize no hanao izany dev-nginx-deployment.
  • saha namespace manome baiko an'i kustomize hampiditra ny espace nomena ny loharano rehetra. Amin'ity tranga ity, ny Deployment and Service dia hianjera ao amin'ny namespace development.
  • Farany, ny saha commonLabels misy andiana marika izay hanampy amin'ny loharano rehetra. Amin'ny ohatra ataontsika, ny kustomize dia hanome marika ny loharano misy ny anarana environment ary ny dikany development.

Raha manao izany ny mpampiasa kustomize build . ao amin'ny lahatahiry misy ny rakitra kustomization.yaml ary ny loharano ilaina (izany hoe ny rakitra deployment.yaml и service.yaml), avy eo amin'ny famoahana dia hahazo lahatsoratra miaraka amin'ny fanovana voalaza ao kustomization.yaml.

Fampidirana fohifohy momba ny Kustomize
Fanamarihana. transl.: Sary avy amin'ny antontan-taratasy momba ny fampiasana "tsotra" ny kustomize

Ny vokatra dia azo averina raha ilaina ny fanovana:

kustomize build . > custom-config.yaml

Ny angon-drakitra mivoaka dia voafaritra (ny angon-drakitra fampidirana mitovy dia hamokatra vokatra mitovy), noho izany dia tsy mila mitahiry ny valiny amin'ny rakitra ianao. Azo ampitaina mivantana amin'ny baiko hafa kosa izany:

kustomize build . | kubectl apply -f -

Ny endri-javatra kustomize dia azo idirana amin'ny alàlan'ny kubectl -k (hatramin'ny Kubernetes version 1.14). Na izany aza, tadidio fa ny fonosana kustomize tokana dia havaozina haingana kokoa noho ny fonosana kubectl mitambatra (farafaharatsiny izany no mitranga amin'ny famoahana Kubernetes 1.15).

Mety hanontany ny mpamaky hoe: "Nahoana no sarotra be izany raha afaka manova mivantana ny rakitra ianao?" Fanontaniana lehibe. Amin'ny ohatra asehontsika, tokoa afaka manova rakitra deployment.yaml и service.yaml mivantana, fa raha sampanan'ny tetikasan'olon-kafa ve ireny? Ny fanovana fisie mivantana dia manasarotra (raha tsy azo atao) ny mamerina ny fork rehefa misy fanovana natao tamin'ny fiaviana/loharano. Ny fampiasana kustomize dia ahafahanao mametraka ireo fiovana ireo amin'ny rakitra iray kustomization.yaml, mamela ny rakitra tany am-boalohany ary noho izany dia manamora ny famerenana ny rakitra tany am-boalohany raha ilaina.

Ny tombotsoan'ny kustomize dia miharihary amin'ny tranga fampiasana sarotra kokoa. Ao amin'ny ohatra etsy ambony kustomization.yaml ary ny loharano dia ao amin'ny lahatahiry iray ihany. Na izany aza, ny kustomize dia manohana tranga fampiasana izay misy ny fanamafisana fototra sy ny karazany maro amin'izany, antsoina koa hoe takela. Ohatra, nisy mpampiasa te-haka ny Deployment and Service ho an'ny nginx, izay nampiasaiko ho ohatra, ary mamorona dika (na variana) ho an'ny fampandrosoana, fampisehoana ary famokarana. Mba hanaovana izany, dia mila ireo overlay voalaza etsy ambony izy ary, raha ny marina, ny loharano fototra.

Mba hanehoana ny hevitry ny overlay sy ny loharanon-karena fototra (loharano fototra), andao atao hoe manana rafitra manaraka ireto ny lahatahiry:

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

Ao anaty rakitra base/kustomization.yaml mpampiasa mampiasa ny saha resources ambarao fotsiny ireo loharano tokony hampidirina ao amin'ny kustomize.

Ao amin'ny rakitra tsirairay overlays/{dev,staging,prod}/kustomization.yaml ny mpampiasa dia manondro ny fanamafisana fototra eo amin'ny saha resources, ary avy eo dia manondro fiovana manokana ho an'ny tontolo iainana nomena. Ohatra, ny rakitra overlays/dev/kustomization.yaml mety hitovy amin'ny ohatra nomena teo aloha:

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

Amin'ity tranga ity, ny rakitra overlays/prod/kustomization.yaml mety ho hafa tanteraka:

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

Rehefa mihazakazaka ny mpampiasa kustomize build . ao amin'ny katalaogy overlays/dev, customize dia hamorona ny safidy fampandrosoana. Raha mihazakazaka ianao kustomize build . ao amin'ny katalaogy overlays/prod - azonao ny safidy famokarana. Ary izany rehetra izany - tsy misy fanovana ny tany am-boalohany (fotony) rakitra, amin'ny fomba fanambarana sy deterministika avokoa. Azonao atao ny mametraka mivantana ny fanamafisana fototra sy ny lahatahiry manarona mivantana amin'ny fanaraha-maso ny dikan-teny, amin'ny fahafantarana fa mifototra amin'ireo rakitra ireo dia azonao atao ny mamerina ny fanovana irina amin'ny fotoana rehetra.

Fampidirana fohifohy momba ny Kustomize
Fanamarihana. transl.: Sary avy amin'ny antontan-taratasin'ny tetikasa momba ny fampiasana overlay amin'ny kustomize

Customize afaka be mihoatra noho izay resahina ato amin'ity lahatsoratra ity. Na izany aza, manantena aho fa ho fampidiran-dresaka tsara izany.

Loharano fanampiny

Betsaka ny lahatsoratra sy famoahana tsara momba ny kustomize. Ireto misy vitsivitsy hitako fa tena ilaina:

Fanamarihana. transl.: Azonao atao ihany koa ny manolotra sakana misy rohy navoaka ho Resources ao amin'ny tranokalan'ny fitaovana, arahin'ny fanangonana horonan-tsary misy tatitra farany momba ny kustomize.

Raha manana fanontaniana na soso-kevitra ianao amin'ny fanatsarana ity fitaovana ity dia misokatra hatrany amin'ny fanehoan-kevitra aho. Afaka mifandray amiko amin'ny Twitter na Kubernetes Slack Channel. Ankafizo ny manova ny fanehoanao amin'ny kustomize!

PS avy amin'ny mpandika teny

Vakio ihany koa ao amin'ny bilaoginay:

Source: www.habr.com

Add a comment