Ose Folasaga Puupuu ile Kustomize

Manatua. fa'aliliu.: O le tusiga na tusia e Scott Lowe, o se inisinia e tele le poto masani i le IT, o ia o le tusitala / tusitala o tusi lolomi e fitu (faʻapitoa ile VMware vSphere). O loʻo galue nei o ia mo lana lala VMware Heptio (maua i le 2016), faʻapitoa i le faʻaogaina o ao ma Kubernetes. O le tusitusiga lava ia e avea o se faʻamatalaga puupuu ma faigofie-malamalama i le faʻatulagaina o pulega mo Kubernetes faʻaaogaina tekinolosi Fa'asinomaga, lea na avea talu ai nei ma vaega o K8s.

Ose Folasaga Puupuu ile Kustomize

Kustomize o se meafaigaluega e mafai ai e tagata faʻaoga ona "faʻapipiʻiina faila YAML faigofie, leai se faʻataʻitaʻiga mo faʻamoemoega eseese, ma tuʻu ai le YAML muamua ma faʻaoga" (faʻamatalaga nono saʻo mai customize fale teu oloa ile GitHub). Kustomize e mafai ona fa'atautaia sa'o pe, pei o le Kubernetes 1.14, fa'aoga kubectl -k e maua ai ana galuega (e ui o Kubernetes 1.15, o le binary eseese e fou atu nai lo le gafatia fausia i le kubectl). (Manatua. fa'aliliu.: Ma faatasi ai ma le tatalaina talu ai nei Kubernetes 1.16 fa'apitoa lagolagoina e faʻapea foʻi i le kubeadm aoga.) I lenei pou, ou te manaʻo e faʻafeiloaʻi le au faitau i faʻavae o kustomize.

I lona faiga sili ona faigofie, o le kustomize ua na o se aoina o punaoa (YAML faila e faʻamatalaina mea Kubernetes: Deployments, Auaunaga, ma isi) faʻatasi ai ma se lisi o faʻatonuga mo suiga e manaʻomia ona faia i na punaoa. E pei lava o le make use le seti o faatonuga o loʻo i totonu Makefile, ma Docker fausia le atigipusa e faʻatatau i faʻatonuga mai Dockerfile, fa'aoga masani kustomization.yaml e teu ai faatonuga e uiga i suiga e manaʻo le tagata faʻaoga e fai i se seti o punaoa.

O se faʻataʻitaʻiga faila kustomization.yaml:

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

O le a ou le taumafai e talanoa e uiga i vaega uma e mafai i le faila. kustomization.yaml (Ua lelei le tusiaina e uiga i iinei), ae o le a ou tuʻuina atu se faʻamatalaga puupuu o se faʻataʻitaʻiga faʻapitoa:

  • laufanua resources ta'u mai ai mea (o a punaoa) customize o le a suia. I lenei tulaga, o le a suʻeina punaoa i faila deployment.yaml и service.yaml i lau lisi (e mafai ona e faʻamaonia auala atoa pe faʻafesoʻotaʻi pe a manaʻomia).
  • laufanua namePrefix faatonu kustomize e faaopoopo se prefix patino (i lenei tulaga - dev-) e uiga name punaoa uma ua faamatalaina i totonu o le fanua resources. O le mea lea, pe afai o le Deployment e iai name ma le uiga nginx-deployment, customize o le a faia dev-nginx-deployment.
  • laufanua namespace fa'atonu kustomize e fa'aopoopo le igoa avanoa i punaoa uma. I le tulaga lea, o le Fa'atinoina ma le Auaunaga o le a pa'u i totonu o le igoa avanoa development.
  • Mulimuli ane, o le fanua commonLabels o lo'o i ai se seti o fa'ailoga o le a fa'aopoopo i punaoa uma. I la matou faʻataʻitaʻiga, customize o le a tuʻuina atu se igoa i punaoa ma le igoa environment ma uiga development.

Afai e faia e le tagata faʻaoga kustomize build . i le lisi ma le faila kustomization.yaml ma punaoa talafeagai (ie faila deployment.yaml и service.yaml), ona i ai lea i le gaosiga o le a maua ai se tusitusiga ma suiga ua faʻamaonia i totonu kustomization.yaml.

Ose Folasaga Puupuu ile Kustomize
Manatua. fa'aliliu.: Faʻataʻitaʻiga mai faʻamaumauga o le poloketi i luga o le "faigofie" faʻaoga o kustomize

E mafai ona toe fa'afo'i le galuega fa'atino pe a mana'omia ni suiga:

kustomize build . > custom-config.yaml

O fa'amaumauga o fa'amatalaga e fa'amautu (o fa'amatalaga fa'apipi'i tutusa o le a maua mai ai fa'ai'uga tutusa), o lea e te le tau fa'asaoina ai le taunu'uga i se faila. Nai lo lena, e mafai ona pasi saʻo i se isi poloaiga:

kustomize build . | kubectl apply -f -

O foliga o le kustomize e mafai foi ona maua e ala i kubectl -k (talu mai Kubernetes version 1.14). Ae ui i lea, ia manatua o le paketi kustomize tutoʻatasi e vave faʻafouina nai lo le afifi kubectl tuʻufaʻatasia (a itiiti ifo o le tulaga lea i le Kubernetes 1.15 faʻamalolo).

Atonu e fesili le au faitau: “Aisea ua lavelave uma ai pe afai e mafai ona e faasaʻo saʻo faila?” Fesili tele. I la tatou faataitaiga, ioe mafai sui faila deployment.yaml и service.yaml tuusa'o, ae fa'afefea pe a fai o se tui o se galuega a se isi tagata? O le suia sa'o o faila e faigata ai (pe a le mafai) ona toe fa'avae se tui pe a fai suiga ile amataga/puna. O le fa'aaogaina o le kustomize e mafai ai ona e fa'atotonugalemu nei suiga i se faila kustomization.yaml, ma tu'u ai faila muamua ma fa'afaigofie ai ona toe fa'avae faila muamua pe a mana'omia.

O faʻamanuiaga ole kustomize e faʻaalia ile faʻaogaina faʻalavelave faʻapitoa. I le faʻataʻitaʻiga i luga kustomization.yaml ma o punaoa o loʻo i totonu o le lisi e tasi. Ae ui i lea, e lagolagoina e kustomize le faʻaogaina o mataupu pe a iai se faʻavae faʻavae ma le tele o fesuiaiga o ia, e taʻua foi o Togi. Mo se faʻataʻitaʻiga, na manaʻo se tagata faʻaoga e ave le Deployment ma le Auaunaga mo nginx, lea na ou faʻaaogaina e fai ma faʻataʻitaʻiga, ma fatuina le atinaʻe, faʻatulagaina ma le gaosiga o lomiga (poʻo fesuiaiga) o na faila. Ina ia faia lenei mea, o le a ia manaʻomia mea faʻapipiʻi ua taʻua i luga ma, o le mea moni, o punaoa faavae lava ia.

Ina ia faʻaalia le manatu o faʻapipiʻi ma punaoa faʻavae (punaoa faavae), se'i tatou fa'apea o lo'o i ai fa'atonuga le fa'atulagaga nei:

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

I le faila base/kustomization.yaml tagata e fa'aogaina le fanua resources na'o le ta'utino atu o punaoa e tatau ona aofia ai kustomize.

I faila taitasi overlays/{dev,staging,prod}/kustomization.yaml tagata fa'aoga e fa'asino i le fa'avae fa'avae i le fanua resources, ona faailoa mai lea o suiga patino mo siosiomaga tuuina atu. Mo se faʻataʻitaʻiga, faila overlays/dev/kustomization.yaml atonu e pei o le faʻataʻitaʻiga na tuʻuina atu muamua:

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

I lenei tulaga, o le faila overlays/prod/kustomization.yaml e mafai ona matua ese lava:

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

A tamo'e le tagata fa'aoga kustomize build . i le lisi overlays/dev, customize o le a fa'atupuina le filifiliga o le atina'e. Afai e te tamoe kustomize build . i le lisi overlays/prod - e te maua le filifiliga gaosiga. Ma o nei mea uma - e aunoa ma le faia o ni suiga i le uluai kopi (fa'avae) faila, uma i se auala faʻaalia ma faʻamaonia. E mafai ona e tu'uina atu le fa'atulagaga fa'avae ma fa'apipi'i fa'atonuga sa'o i le fa'atonuga, ma le iloa e fa'avae i luga o nei faila e mafai ona e toe faia le fa'atulagaga mana'omia i so'o se taimi.

Ose Folasaga Puupuu ile Kustomize
Manatua. fa'aliliu.: Fa'ata'ita'iga mai fa'amaumauga o le poloketi i le fa'aogaina o fa'alava i kustomize

Fa'asinomaga apa tele sili atu nai lo le mea o loʻo talanoaina i lenei tusiga. Ae ui i lea, ou te faʻamoemoe e avea o se folasaga lelei.

Punaoa Faaopoopo

E tele tala lelei ma fa'asalalauga e uiga i kustomize. O nai mea nei na ou iloa e sili ona aoga:

Manatua. fa'aliliu.: E mafai fo'i ona e fautuaina se poloka o so'otaga fa'asalalau pei punaoa i luga o le upega tafaʻilagi a le aoga, sosoo ai ma le aoina o vitio ma lipoti lata mai e uiga i kustomize.

Afai ei ai ni au fesili poʻo ni fautuaga mo le faʻaleleia o lenei mea, ou te tatala i taimi uma i manatu. E mafai ona e fa'afeso'ota'i a'u ile Twitter poʻo Kubernetes Slack auala. Ia fiafia e sui au fa'aaliga ile customize!

PS mai faaliliu

Faitau foi i la matou blog:

puna: www.habr.com

Faaopoopo i ai se faamatalaga