Okwu Mmalite dị nkenke iji kwadoo

Rịba ama. ntụgharị asụsụ.: Scott Lowe dere akụkọ a, onye injinia nwere ahụmahụ dị ukwuu na IT, onye bụ onye edemede / onye na-ede akwụkwọ nke akwụkwọ asaa ebipụtara (karịsịa na VMware vSphere). Ọ na-arụ ọrụ ugbu a maka Heptio enyemaka VMware (enwetara na 2016), ọkachamara na igwe ojii na Kubernetes. Ederede n'onwe ya na-eje ozi dị ka nkenke ma dị mfe nghọta maka njikwa nhazi maka Kubernetes site na iji teknụzụ. Hazie, nke ghọrọ akụkụ nke K8 na nso nso a.

Okwu Mmalite dị nkenke iji kwadoo

Kustomize bụ ngwá ọrụ na-enye ndị ọrụ ohere ịhazigharị faịlụ YAML dị mfe, nke na-enweghị ndebiri maka ebumnuche dị iche iche, na-ahapụ YAML mbụ na-adịghị mma na nke a pụrụ iji mee ihe" (nkọwa gbaziri ozugbo site na kustomize ebe nchekwa na GitHub). Enwere ike ịme Kustomize ozugbo ma ọ bụ, dịka nke Kubernetes 1.14, jiri kubectl -k iji nweta ọrụ ya (n'agbanyeghị na Kubernetes 1.15, ọnụọgụ abụọ dị iche dị ọhụrụ karịa ike arụnyere n'ime kubectl). (Rịba ama. ntụgharị asụsụ.: Na ntọhapụ na-adịbeghị anya Ukpomkpu 1.16 hazie na -akwado ya nakwa na kubeadm utility.) Na nke a post, m chọrọ ịme ka ndị na-agụ akwụkwọ na isi nke kustomize.

N'ụdị / ngwa ya kachasị mfe, kustomize bụ naanị nchịkọta akụrụngwa (faịlụ YAML na-akọwapụta ihe Kubernetes: Deployments, Services, wdg) yana ndepụta ntuziaka maka mgbanwe ndị a ga-eme na akụrụngwa ndị ahụ. Dị nnọọ ka eme ka a na-eji usoro ntụziaka dị n'ime ya Makefile, na Docker na-ewu akpa ahụ dabere na ntuziaka sitere na Dockerfile, hazie ojiji kustomization.yaml iji chekwaa ntuziaka gbasara mgbanwe onye ọrụ chọrọ ime na ntọala akụrụngwa.

Nke a bụ faịlụ ihe atụ kustomization.yaml:

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

Agaghị m anwa ikwu maka mpaghara niile enwere ike na faịlụ ahụ. kustomization.yaml (nke a ka edere nke ọma ebe a), mana m ga-enye nkọwa dị nkenke maka otu ọmụmaatụ:

  • ubi resources na-egosi ihe (nke akụrụngwa) kustomize ga-agbanwe. N'okwu a, ọ ga-achọ ihe onwunwe na faịlụ deployment.yaml и service.yaml na ndekọ gị (ị nwere ike ịkọwa ụzọ zuru ezu ma ọ bụ nke ikwu ma ọ bụrụ na ọ dị mkpa).
  • ubi namePrefix na-adụ ọdụ ka ịtinye ụfọdụ nganiihu (na nke a - dev-) ịkọwapụta name akụrụngwa niile akọwapụtara n'ọhịa resources. Ya mere, ọ bụrụ na Deployment nwere name nwere ihe ọ pụtara nginx-deployment, hazie ga-eme ya dev-nginx-deployment.
  • ubi namespace na-adụ ọdụ ka ịtinye oghere aha enyere na akụrụngwa niile. N'okwu a, ntinye na ọrụ ga-adaba na aha aha development.
  • N'ikpeazụ, ubi commonLabels nwere otu akara nke a ga-agbakwunye na akụrụngwa niile. N'ihe atụ anyị, kustomize ga-ekenye akara na akụrụngwa nwere aha environment na ihe pụtara development.

Ọ bụrụ na onye ọrụ eme ya kustomize build . na ndekọ na faịlụ kustomization.yaml na ihe ndị dị mkpa (ya bụ faịlụ deployment.yaml и service.yaml), mgbe ahụ na mmepụta ọ ga-enweta ederede nwere mgbanwe ndị akọwapụtara na ya kustomization.yaml.

Okwu Mmalite dị nkenke iji kwadoo
Rịba ama. ntụgharị asụsụ.: Ihe atụ sitere na akwụkwọ ọrụ ahụ na "dị mfe" ojiji nke kustomize

Enwere ike ibugharị nsonaazụ ahụ ma ọ bụrụ na ọ dị mkpa ịme mgbanwe:

kustomize build . > custom-config.yaml

Ihe mmepụta data bụ deterministic (otu data ntinye ga-emepụta otu nsonaazụ ahụ), n'ihi ya, ịkwesighi ịchekwa nsonaazụ na faịlụ. Kama, enwere ike ịnyefe ya ozugbo na iwu ọzọ:

kustomize build . | kubectl apply -f -

Enwere ike ịnweta njirimara kustomize site na kubectl -k (ebe ọ bụ na ụdị Kubernetes 1.14). Agbanyeghị, buru n'uche na a na-emelite ngwungwu kustomize kwụ ọtọ ngwa ngwa karịa ngwungwu kubectl agbakwunyere (opekata mpe nke a bụ ntọhapụ Kubernetes 1.15).

Ndị na-agụ nwere ike jụọ: "Gịnị kpatara mgbagwoju anya a niile ma ọ bụrụ na ị nwere ike dezie faịlụ ozugbo?" Nnukwu ajụjụ. N'ihe atụ anyị, n'ezie nwere ike gbanwee faịlụ deployment.yaml и service.yaml ozugbo, ma gịnị ma ọ bụrụ na ha bụ ndụdụ nke ọrụ onye ọzọ? Ịgbanwe faịlụ ozugbo na-eme ka ọ sie ike (ma ọ bụrụ na ọ gaghị ekwe omume) ịtọgharịa ndụdụ mgbe emere mgbanwe na mmalite/isi iyi. Iji kustomize na-enye gị ohere ịhazi mgbanwe ndị a na faịlụ kustomization.yaml, na-ahapụ faịlụ ndị mbụ emebibeghị ma si otú ahụ mee ka ọ dịkwuo mfe ịtọgharịa faịlụ mbụ ma ọ bụrụ na ọ dị mkpa.

Uru nke kustomize na-apụta ìhè n'okwu ikpe dị mgbagwoju anya. N'ihe atụ dị n'elu kustomization.yaml na akụrụngwa dị n'otu akwụkwọ ndekọ aha. Agbanyeghị, kustomize na-akwado iji ikpe ebe enwere nhazi ntọala yana ọtụtụ ụdị ya, makwaara dị ka kpuchie. Dịka ọmụmaatụ, onye ọrụ chọrọ iwere Deployment na Service maka nginx, nke m ji mee ihe atụ, wee mepụta mmepe, nhazi na mmepụta ụdị (ma ọ bụ ụdị dị iche iche) nke faịlụ ndị ahụ. Iji mee nke a, ọ ga-achọ ihe mkpuchi ndị a kpọtụrụ aha n'elu na, n'eziokwu, ihe ndị bụ isi n'onwe ha.

Iji gosi echiche nke overlays na ihe ndị dị n'okpuru (base akụrụngwa), ka anyị were na akwụkwọ ndekọ aha nwere usoro ndị a:

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

Na faịlụ base/kustomization.yaml ndị na-eji ubi resources naanị kwuwapụta akụrụngwa na kustomize kwesịrị ịgụnye.

Na nke ọ bụla n'ime faịlụ overlays/{dev,staging,prod}/kustomization.yaml ndị ọrụ na-ezo aka na nhazi ntọala n'ọhịa resources, wee gosi mgbanwe ụfọdụ maka nyere gburugburu ebe obibi. Dịka ọmụmaatụ, faịlụ overlays/dev/kustomization.yaml nwere ike ịdị ka ihe atụ enyere na mbụ:

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

N'okwu a, faịlụ ahụ overlays/prod/kustomization.yaml nwere ike ịdị iche kpamkpam:

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

Mgbe onye ọrụ na-agba ọsọ kustomize build . na katalọgụ overlays/dev, kustomize ga-emepụta nhọrọ mmepe. Ọ bụrụ na ị na-agba ọsọ kustomize build . na katalọgụ overlays/prod - ị nweta nhọrọ mmepụta. Na ihe niile a - n'emeghị mgbanwe ọ bụla na mbụ (base) faịlụ, niile n'ụzọ nkwupụta na deterministic. Ị nwere ike ịme nhazi ntọala na machie akwụkwọ ndekọ aha ozugbo na njikwa ụdị, ebe ị maara na dabere na faịlụ ndị a ị nwere ike ịmepụtaghachi nhazi achọrọ n'oge ọ bụla.

Okwu Mmalite dị nkenke iji kwadoo
Rịba ama. ntụgharị asụsụ.: Ihe atụ sitere na akwụkwọ ọrụ maka iji overlays na kustomize

Hazie ike nke ukwuu karịa ihe a kọwara n'isiokwu a. Otú ọ dị, enwere m olileanya na ọ ga-abụ okwu mmeghe dị mma.

Ngwa ndị ọzọ

Enwere ọtụtụ akụkọ na akwụkwọ dị mma gbasara kustomize. Nke a bụ ole na ole m hụrụ bara uru karịsịa:

Rịba ama. ntụgharị asụsụ.: Ị nwekwara ike ịkwado ngọngọ nke njikọ bipụtara dị ka Ngwa ọrụ na webụsaịtị ịba uru, sochiri nchịkọta vidiyo nwere akụkọ kachasị ọhụrụ gbasara kustomize.

Ọ bụrụ na ị nwere ajụjụ ma ọ bụ aro maka imeziwanye ihe a, ana m emeghe mgbe niile maka nzaghachi. Ị nwere ike ịkpọtụrụ m na Twitter ma ọ bụ Kubernetes Slack ọwa. Nwee anụrị iji kustomize gbanwee ngosipụta gị!

PS sitere na onye ntụgharị

Gụọkwa na blọọgụ anyị:

isi: www.habr.com

Tinye a comment