Kenyelletso e Khutšoanyane ea Kustomize

Hlokomela. fetolela.: Sengoliloeng sena se ngotsoe ke Scott Lowe, moenjiniere ea nang le phihlelo e ngata ho IT, eo e leng mongoli / mongoli-'moho oa libuka tse supileng tse hatisitsoeng (haholo-holo VMware vSphere). Hona joale o sebeletsa setsi sa eona sa ka tlase sa VMware Heptio (e fumanoeng ka 2016), a sebetsa ka thata ho computing ea maru le Kubernetes. Sengoloa ka bosona se sebetsa e le kenyelletso e khuts'oane le e utloisisoang habonolo ea taolo ea tlhophiso bakeng sa Kubernetes o sebelisa theknoloji. Iketsetse, e sa tsoa fetoha karolo ea K8s.

Kenyelletso e Khutšoanyane ea Kustomize

Kustomize ke sesebelisoa se lumellang basebelisi ho "etsa lifaele tsa YAML tse bonolo, tse se nang template bakeng sa merero e fapaneng, ba siea YAML ea mantlha e ntse e le ntle ebile e sebelisoa" (tlhaloso e alimiloeng ka kotloloho ho tsoa ho hostomize polokelo ho GitHub). Kustomize e ka tsamaisoa ka kotloloho kapa, joalo ka Kubernetes 1.14, e sebelisitsoe kubectl -k ho fihlella ts'ebetso ea eona (le hoja ho tloha Kubernetes 1.15, binary e arohaneng e ncha ho feta bokhoni bo hahiloeng ho kubectl). (Hlokomela. fetolela.: Le ka tokollo ea morao tjena Li-Kubernetes 1.16 Customize tšehetsoa ke hape le ts'ebelisong ea kubeadm.) Ka poso ena, ke batla ho tsebisa babali ka lintho tsa motheo tsa kustomize.

Ka mokhoa o bonolo ka ho fetisisa / kopo, kustomize ke feela pokello ea lisebelisoa (lifaele tsa YAML tse hlalosang lintho tsa Kubernetes: Deployments, Services, joalo-joalo) hammoho le lethathamo la litaelo bakeng sa liphetoho tse lokelang ho etsoa mehloling eo. Joalo ka ha make a sebelisa taelo e behiloeng ho Makefile, 'me Docker e haha ​​​​setshelo ho latela litaelo tse tsoang ho Dockerfile, iketsetse litšebeliso kustomization.yaml ho boloka litaelo mabapi le liphetoho tseo mosebelisi a batlang ho li etsa sehlopheng sa lisebelisoa.

Mohlala oa faele ke ona kustomization.yaml:

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

Nke ke ka leka ho bua ka likarolo tsohle tse ka har'a faele. kustomization.yaml (sena se ngotsoe hantle ka mona), empa ke tla fana ka tlhaloso e khutšoanyane ea mohlala o itseng:

  • tšimo resources e bontša hore na (ke lisebelisoa life) hostomize e tla fetoha. Tabeng ena, e tla batla lisebelisoa ho lifaele deployment.yaml и service.yaml bukeng ea hau (o ka bolela litsela tse felletseng kapa tse amanang ha ho hlokahala).
  • tšimo namePrefix e laela hostomize ho kenya sehlongwapele se itseng (tabeng ena - dev-) ho hlahisa name lisebelisoa tsohle tse hlalositsoeng tšimong resources. Kahoo, haeba Deployment e na le name e nang le moelelo nginx-deployment, Customize tla e etsa dev-nginx-deployment.
  • tšimo namespace e laela kustomize ho eketsa sebaka sa mabitso ho lisebelisoa tsohle. Tabeng ena, Deployment le Service li tla oela sebakeng sa mabitso development.
  • Qetellong, tšimo commonLabels e na le sehlopha sa lileibole tse tla eketsoa mehloling eohle. Mohlala oa rona, kustomize e tla fana ka lengolo ho lisebelisoa tse nang le lebitso environment le moelelo development.

Haeba mosebelisi a etsa joalo kustomize build . bukeng e nang le faele kustomization.yaml le lisebelisoa tse hlokahalang (ke hore, lifaele deployment.yaml и service.yaml), ebe tlhahisong e tla fumana mongolo o nang le liphetoho tse boletsoeng ho kustomization.yaml.

Kenyelletso e Khutšoanyane ea Kustomize
Hlokomela. fetolela.: Papiso e tsoang litokomaneng tsa morero mabapi le tšebeliso e "bonolo" ea kustomize

Sephetho se ka tsamaisoa hape haeba ho hlokahala hore ho etsoe liphetoho:

kustomize build . > custom-config.yaml

Lintlha tse hlahisoang ke deterministic (data e tšoanang ea ho kenya e tla hlahisa liphetho tse tšoanang), kahoo ha ua tlameha ho boloka sephetho ho faele. Sebakeng seo, e ka fetisetsoa ka kotloloho ho taelo e 'ngoe:

kustomize build . | kubectl apply -f -

Likarolo tsa kustomize le tsona li ka fumaneha ka kubectl -k (ho tloha ho Kubernetes version 1.14). Leha ho le joalo, hopola hore sephutheloana sa standalone kustomize se nchafatsoa ka potlako ho feta sephutheloana sa kubectl se kopantsoeng (bonyane ho joalo ka tokollo ea Kubernetes 1.15).

Babali ba ka 'na ba botsa: "Hobaneng ho rarahana hakana haeba u khona ho hlophisa lifaele ka kotloloho?" Potso e kholo. Ka mohlala oa rona, ehlile ka fetola lifaele deployment.yaml и service.yaml ka ho toba, empa ho thoe'ng haeba e le fereko ea morero oa motho e mong? Ho fetola lifaele ka kotloloho ho etsa hore ho be thata (haeba ho sa khonehe) ho khutlisetsa fereko ha liphetoho li etsoa mohloling / mohloling. Ho sebelisa kustomize ho u lumella ho kenya liphetoho tsena faeleng kustomization.yaml, e siea lifaele tsa mantlha li ntse li le joalo, kahoo ho nolofalloa ho khutlisa lifaele tsa mantlha ha ho hlokahala.

Melemo ea kustomize e bonahala maemong a ts'ebeliso e rarahaneng. Mohlala o ka holimo kustomization.yaml 'me lisebelisoa li ka har'a bukana e tšoanang. Leha ho le joalo, kustomize e tšehetsa linyeoe tsa tšebeliso moo ho nang le tlhophiso ea motheo le mefuta e mengata ea eona, e tsejoang hape e le. ho koahela. Mohlala, mosebelisi o ne a batla ho nka Deployment le Service bakeng sa nginx, eo ke e sebelisitseng e le mohlala, le ho theha mefuta ea ntlafatso, sethala le tlhahiso (kapa mefuta e fapaneng) ea lifaele tseo. Ho etsa sena, o tla hloka li-overlays tse boletsoeng ka holimo, 'me, ha e le hantle, lisebelisoa tsa motheo ka botsona.

Ho hlakisa mohopolo oa likoahelo le lisebelisoa tse ka tlase (lisebelisoa tsa motheo), ha re nke hore li-directory li na le sebopeho se latelang:

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

Ka faele base/kustomization.yaml basebelisi ba sebelisang lebala resources feela phatlalatsa mehlodi ya hore kustomize lokela ho kenyeletsa.

Ho e 'ngoe le e' ngoe ea lifaele overlays/{dev,staging,prod}/kustomization.yaml basebelisi ba bua ka tlhophiso ea motheo tšimong resources, ebe o bontša liphetoho tse itseng bakeng sa tikoloho e fanoeng. Ka mohlala, file overlays/dev/kustomization.yaml e ka shebahala joalo ka mohlala o fanoeng pejana:

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

Tabeng ena, faele overlays/prod/kustomization.yaml e ka ba e fapaneng ka ho feletseng:

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

Ha mosebelisi a matha kustomize build . lenaneng overlays/dev, kustomize e tla hlahisa khetho ea nts'etsopele. Haeba u matha kustomize build . lenaneng overlays/prod - o fumana khetho ea tlhahiso. 'Me sena sohle - ntle le ho etsa liphetoho ho ea pele (motheo) lifaele, kaofela ka mokhoa o hlalosang le oa deterministic. U ka etsa tlhophiso ea mantlha le li-directory tsa ho koahela ka kotloloho ho taolo ea mofuta, u tseba hore ho ipapisitse le lifaele tsena u ka hlahisa tlhophiso eo u e batlang ka nako efe kapa efe.

Kenyelletso e Khutšoanyane ea Kustomize
Hlokomela. fetolela.: Papiso e tsoang litokomaneng tsa morero mabapi le ho sebelisa likoahelo ho kustomize

Customize can haholo ho feta se boletsoeng sehloohong sena. Leha ho le joalo, ke tšepa hore e sebetsa e le kenyelletso e ntle.

Lisebelisoa tse Eketsehileng

Ho na le lingoliloeng tse ngata tse ntle le lingoliloeng tse mabapi le kustomize. Mona ke tse 'maloa tseo ke li fumaneng li le bohlokoa haholo:

Hlokomela. fetolela.: U ka khothaletsa le boloko ba likhokahano tse hatisitsoeng joalo ka Resources webosaeteng ea ts'ebeliso, e lateloe ke pokello ea livideo tse nang le litlaleho tsa morao-rao tse mabapi le kustomize.

Haeba u na le lipotso kapa litlhahiso tsa ho ntlafatsa boitsebiso bona, ke lula ke bulehile ho fana ka maikutlo. O ka ikopanya le nna ho Twitter kapa Kubernetes Slack channel. Natefeloa ke ho fetola lipapatso tsa hau ka kustomize!

PS ho tsoa ho mofetoleli

Bala hape ho blog ea rona:

Source: www.habr.com

Eketsa ka tlhaloso