ΠšΡ€Π°Ρ‚ΠΊΠΎ въвСдСниС Π² Kustomize

ΠŸΡ€ΠΈΠΌ. ΠΏΡ€Π΅Π².: Бтатията Π΅ написана ΠΎΡ‚ Π‘ΠΊΠΎΡ‚ Π›ΠΎΡƒ β€” ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ с дългогодишСн ΠΎΠΏΠΈΡ‚ Π² ИВ, Π°Π²Ρ‚ΠΎΡ€ ΠΈΠ»ΠΈ ΡΡŠΠ°Π²Ρ‚ΠΎΡ€ Π½Π° сСдСм ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΈ ΠΊΠ½ΠΈΠ³ΠΈ (ΠΏΡ€Π΅Π΄ΠΈΠΌΠ½ΠΎ Π·Π° VMware vSphere). Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² Π΄ΡŠΡ‰Π΅Ρ€Π½Π°Ρ‚Π° компания Π½Π° VMware β€” Heptio (ΠΏΡ€ΠΈΠ΄ΠΎΠ±ΠΈΡ‚Π° ΠΏΡ€Π΅Π· 2016 Π³.), спСциализирайки сС Π² ΠΎΠ±Π»Π°Ρ‡Π½ΠΈΡ‚Π΅ изчислСния ΠΈ Kubernetes. Бамият тСкст слуТи ΠΊΠ°Ρ‚ΠΎ ΠΊΡ€Π°Ρ‚ΠΊΠΎ ΠΈ лСсно Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌΠΎ въвСдСниС Π² ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π·Π° Kubernetes с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° тСхнология Kustomize, която наскоро Π²Π»Π΅Π·Π΅ Π² ΡΡŠΡΡ‚Π°Π²Π° Π½Π° K8s.

ΠšΡ€Π°Ρ‚ΠΊΠΎ въвСдСниС Π² Kustomize

Kustomize Π΅ инструмСнт, ΠΊΠΎΠΉΡ‚ΠΎ позволява Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π΄Π° "настройват простички ΠΈ бСзшаблонни YAML Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ†Π΅Π»ΠΈ, оставяйки оригиналния YAML Π½Π΅ΠΏΠΎΠΊΡŠΡ‚Π½Π°Ρ‚ ΠΈ Π³ΠΎΠ΄Π΅Π½ Π·Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°" (описаниСто Π΅ Π²Π·Π΅Ρ‚ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ‚ рСпозитория kustomize Π² GitHub). Kustomize ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС стартиран Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΈΠ»ΠΈ, Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΉΠΊΠΈ ΠΎΡ‚ Kubernetes 1.14, Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° kubectl -k Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ към Kubernetes 1.15 отдСлният Π±ΠΈΠ½Π°Ρ€Π΅Π½ Ρ„Π°ΠΉΠ» Π΅ ΠΏΠΎ-Π½ΠΎΠ² ΠΎΡ‚ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅, Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ Π² kubectl). (ΠŸΡ€ΠΈΠΌ. ΠΏΡ€Π΅Π².: А с послСдния Ρ€Π΅Π»ΠΈΠ· Kubernetes 1.16 kustomize ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сС сСга Π΅ ΠΈ Π² ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° kubeadm.) Π’ Ρ‚Π°Π·ΠΈ публикация искам Π΄Π° запозная Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅ с основитС Π½Π° kustomize.

Π’ Π½Π°ΠΉ-простата си Ρ„ΠΎΡ€ΠΌΠ°/ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ kustomize Π΅ просто Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ рСсурси (YAML Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ опрСдСлят ΠΎΠ±Π΅ΠΊΡ‚ΠΈ Π½Π° Kubernetes: Deployments, Services ΠΈ Π΄Ρ€.) плюс списък с инструкции Π·Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΈ Π² Ρ‚Π΅Π·ΠΈ рСсурси. Подобно Π½Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ make ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ инструкции, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ΠΈ сС Π² Makefile, Π° Docker ΡΡŠΠ±ΠΈΡ€Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π½Π° Π±Π°Π·Π° инструкциитС ΠΎΡ‚ Dockerfile, kustomize ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° kustomization.yaml Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½Π° прСдписания ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ потрСбитСлят ΠΆΠ΅Π»Π°Π΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ Π² Π½Π°Π±ΠΎΡ€Π° рСсурси.

Π•Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° Ρ„Π°ΠΉΠ» kustomization.yaml:

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

Няма Π΄Π° сС ΠΎΠΏΠΈΡ‚Π²Π°ΠΌ Π΄Π° обяснявам всички възмоТни ΠΏΠΎΠ»Π΅Ρ‚Π° Π² Ρ„Π°ΠΉΠ»Π° kustomization.yaml (Π·Π° Ρ‚ΠΎΠ²Π° Π΅ написано доста Π΄ΠΎΠ±Ρ€Π΅ Ρ‚ΡƒΠΊ), Π½ΠΎ Ρ‰Π΅ Π΄Π°ΠΌ ΠΊΡ€Π°Ρ‚ΠΊΠΎ обяснСниС Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

  • ПолС resources посочва, ΠΊΠ°ΠΊΠ²ΠΎ (ΠΊΠ°ΠΊΠ²ΠΈ рСсурси) kustomize Ρ‰Π΅ промСня. Π’ Ρ‚ΠΎΠ·ΠΈ случай Ρ‚ΠΎΠΉ Ρ‰Π΅ Ρ‚ΡŠΡ€ΡΠΈ рСсурси във Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ deployment.yaml ΠΈ service.yaml Π² своя ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (ΠΏΡ€ΠΈ нСобходимост ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС посочват пълни ΠΈΠ»ΠΈ относитСлни ΠΏΡŠΡ‚ΠΈΡ‰Π°).
  • ПолС namePrefix прСдписва Π½Π° kustomize Π΄Π° добавя ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ прСфикс (Π² случая β€” dev-) към Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΈΠΌΠ΅ Π½Π° всички рСсурси, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Π² ΠΏΠΎΠ»Π΅Ρ‚ΠΎ resources. Π’Π°ΠΊΠ°, Π°ΠΊΠΎ Π² Deployment Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΈΠΌΠ΅ с стойността nginx-deployment, kustomize Ρ‰Π΅ Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈ dev-nginx-deployment.
  • ПолС namespace прСдписва Π½Π° kustomize Π΄Π° добавя Π·Π°Π΄Π°Π΄Π΅Π½ΠΎΡ‚ΠΎ пространство ΠΈΠΌΠ΅ към всички рСсурси. Π’ Ρ‚ΠΎΠ·ΠΈ случай, Deployment ΠΈ Service Ρ‰Π΅ ΠΏΠΎΠΏΠ°Π΄Π½Π°Ρ‚ Π² пространството ΠΈΠΌΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°.
  • На края, ΠΏΠΎΠ»Π΅Ρ‚ΠΎ ΠΎΠ±Ρ‰ΠΈ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ към всички рСсурси. Π’ нашия ΠΏΡ€ΠΈΠΌΠ΅Ρ€ kustomize Ρ‰Π΅ присвои Π½Π° рСсурситС Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ с Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅Ρ‚ΠΎ environment ΠΈ стойност Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°.

Ако потрСбитСлят изпълни kustomize build . Π² дирСктория с Ρ„Π°ΠΉΠ» kustomization.yaml ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ рСсурси (Ρ‚.Π΅. Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ deployment.yaml ΠΈ service.yaml), Ρ‚ΠΎ Π½Π° ΠΈΠ·Ρ…ΠΎΠ΄Π° Ρ‚ΠΎΠΉ Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈ тСкст с измСнСнията, описани Π² kustomization.yaml.

ΠšΡ€Π°Ρ‚ΠΊΠΎ въвСдСниС Π² Kustomize
ΠŸΡ€ΠΈΠΌ. ΠΏΡ€Π΅Π².: Π˜Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΎΡ‚ докумСнтацията Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π·Π° "опростСно" ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° kustomize

Π˜Π·Ρ…ΠΎΠ΄ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС прСнасочСн, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС Π·Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ измСнСнията:

kustomize build . > custom-config.yaml

Π˜Π·Ρ…ΠΎΠ΄Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ са Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€Π°Π½ΠΈ (ΠΏΡ€ΠΈ Π΅Π΄Π½Π°ΠΊΠ²ΠΈ Π²Ρ…ΠΎΠ΄Π½ΠΈ Π΄Π°Π½Π½ΠΈ Ρ‰Π΅ сС ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ Π΅Π΄Π½ΠΈ ΠΈ ΡΡŠΡ‰ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ Π½Π° ΠΈΠ·Ρ…ΠΎΠ΄Π°), Π·Π°Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π° сС Π·Π°ΠΏΠ°Π·Π²Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ Π² Ρ„Π°ΠΉΠ». ВмСсто Ρ‚ΠΎΠ²Π°, Ρ‚ΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° сС ΠΏΡ€Π΅Π΄Π°Π΄Π΅ Π½Π° Π΄Ρ€ΡƒΠ³Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°:

kustomize build . | kubectl apply -f -

Π”ΠΎΡΡ‚ΡŠΠΏΡŠΡ‚ Π΄ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π½Π° kustomize ΡΡŠΡ‰ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ Ρ‡Ρ€Π΅Π· kubectl -k (ΠΎΡ‚ вСрсия 1.14 Kubernetes). ΠžΠ±Π°Ρ‡Π΅ ΠΈΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ‚ kustomize сС обновява ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ Π² сравнСниС с интСгрирания Π² kubectl (ΠΏΠΎΠ½Π΅ Ρ‚Π°ΠΊΠ° стоят Π½Π΅Ρ‰Π°Ρ‚Π° с вСрсията Π½Π° Kubernetes 1.15).

Π§ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС Π·Π°ΠΏΠΈΡ‚Π°Ρ‚: "Π—Π°Ρ‰ΠΎ са всички Ρ‚Π΅Π·ΠΈ слоТности, Π°ΠΊΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°ΠΌΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ?". ΠžΡ‚Π»ΠΈΡ‡Π΅Π½ Π²ΡŠΠΏΡ€ΠΎΡ. Π’ нашия ΠΏΡ€ΠΈΠΌΠ΅Ρ€ наистина ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°ΠΌΠ΅Ρ€ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°ΠΌΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ deployment.yaml ΠΈ service.yaml Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ, Π½ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ, Π°ΠΊΠΎ Ρ‚Π΅ са ΠΊΠ»ΠΎΠ½ Π½Π° Π½Π΅Ρ‡ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚? НСпосрСдствСната промяна Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ затруднява (Π°ΠΊΠΎ Π½Π΅ ΠΏΡ€Π°Π²ΠΈ нСвъзмоТно) rebase Π½Π° ΠΊΠ»ΠΎΠ½Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС правят измСнСния Π² ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊΠ°/ΠΈΠ·Ρ…ΠΎΠ΄Π½ΠΈΠΊΠ°. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° kustomize позволява Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ‚Π΅Π·ΠΈ измСнСния Π² Ρ„Π°ΠΉΠ» kustomization.yaml, оставяйки ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π΅ΠΏΠΎΠΊΡŠΡ‚Π½Π°Ρ‚ΠΈ ΠΈ Ρ‚Π°ΠΊΠ° улСснявайки ΠΏΡ€ΠΈ нСобходимост rebase Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

ΠŸΡ€Π΅Π΄ΠΈΠΌΡΡ‚Π²Π°Ρ‚Π° Π½Π° kustomize стават ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΈ Π² ΠΏΠΎ-слоТни случаи Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°. Π’ привСдСния ΠΏΠΎ-Π³ΠΎΡ€Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ kustomization.yaml ΠΈ рСсурситС сС Π½Π°ΠΌΠΈΡ€Π°Ρ‚ Π² Π΅Π΄Π½Π° ΠΈ ΡΡŠΡ‰Π° дирСктория. ΠžΠ±Π°Ρ‡Π΅ kustomize ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сцСнарии Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°, Π² ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ° основна конфигурация ΠΈ мноТСство Π½Π΅ΠΉΠ½ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΈ, извСстни ΡΡŠΡ‰ΠΎ ΠΊΠ°Ρ‚ΠΎ overlay-Ρ‚Π΅. НапримСр, потрСбитСлят Π΅ искал Π΄Π° Π²Π·Π΅ΠΌΠ΅ Deployment ΠΈ Service Π·Π° nginx, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ… ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈ Π΄Π° създадС development-, staging- ΠΈ production-вСрсии (ΠΈΠ»ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΈ) Π½Π° Ρ‚Π΅Π·ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. Π—Π° Ρ‚ΠΎΠ²Π° Ρ‰Π΅ ΠΌΡƒ Π±ΡŠΠ΄Π°Ρ‚ Π½ΡƒΠΆΠ½ΠΈ спомСнатитС ΠΏΠΎ-Π³ΠΎΡ€Π΅ overlay-Ρ‚Π΅ ΠΈ самитС основни рСсурси.

Π—Π° Π΄Π° ΠΈΠ»ΡŽΡΡ‚Ρ€ΠΈΡ€Π°ΠΌΠ΅ идСята Π·Π° overlays ΠΈ Π±Π°Π·ΠΎΠ²ΠΈ рСсурси (base resources), Π΄Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉΠ½Π°Ρ‚Π° структура ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° слСдния Π½Π°Ρ‡ΠΈΠ½:

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

Π’ Ρ„Π°ΠΉΠ»Π° base/kustomization.yaml ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΏΠΎΠ»Π΅Ρ‚ΠΎ resources просто Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π°Ρ‚ рСсурситС, ΠΊΠΎΠΈΡ‚ΠΎ kustomize трябва Π΄Π° Π²ΠΊΠ»ΡŽΡ‡ΠΈ.

Π’ΡŠΠ² всСки ΠΎΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ overlays/{dev,staging,prod}/kustomization.yaml ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ сС ΠΎΠ±Ρ€ΡŠΡ‰Π°Ρ‚ към основната конфигурация Π² ΠΏΠΎΠ»Π΅Ρ‚ΠΎ resources, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ посочват ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° срСда. НапримСр, Ρ„Π°ΠΉΠ»ΡŠΡ‚ overlays/dev/kustomization.yaml ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°ΠΊΡ‚ΠΎ Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΏΠΎ-Π³ΠΎΡ€Π΅:

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

ΠšΠ°Ρ‚ΠΎ ΡΡŠΡ‰Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Ρ„Π°ΠΉΠ»ΡŠΡ‚ overlays/prod/kustomization.yaml ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС съвсСм Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½:

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

ΠšΠΎΠ³Π°Ρ‚ΠΎ потрСбитСлят стартира kustomize build . Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° overlays/dev, kustomize Ρ‰Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ development. Ако стартиратС kustomize build . Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° overlays/prod , Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ production. И всичко Ρ‚ΠΎΠ²Π° β€” Π±Π΅Π· Π΄Π° ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΊΠ°ΠΊΠ²ΠΈΡ‚ΠΎ ΠΈ Π΄Π° Π±ΠΈΠ»ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡ‚Π΅ (base) Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΈ всичко Ρ‚ΠΎΠ²Π° β€” Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π΅Π½ ΠΈ Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€Π°Π½ Π½Π°Ρ‡ΠΈΠ½. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΊΠΎΠΌΠΈΡ‚Π²Π°Ρ‚Π΅ основната конфигурация ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈΡ‚Π΅ Π½Π° ΠΎΠ²Π΅Ρ€Π»Π΅ΠΉ Π² систСмата Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° вСрсии, Π·Π½Π°Π΅ΠΉΠΊΠΈ, Ρ‡Π΅ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Ρ‚Π΅Π·ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎ всяко Π²Ρ€Π΅ΠΌΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π²ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° конфигурация.

ΠšΡ€Π°Ρ‚ΠΊΠΎ въвСдСниС Π² Kustomize
ΠŸΡ€ΠΈΠΌ. ΠΏΡ€Π΅Π².: Π˜Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΎΡ‚ докумСнтацията Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° overlays Π² kustomize

Kustomize ΡƒΠΌΠ΅Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ спомСнато Π² Ρ‚Π°Π·ΠΈ статия. ВсС ΠΏΠ°ΠΊ сС надявам, Ρ‡Π΅ тя Ρ‰Π΅ послуТи ΠΊΠ°Ρ‚ΠΎ Π΄ΠΎΠ±Ρ€ΠΎ въвСдСниС.

Π”ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ рСсурси

Има ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±Ρ€ΠΈ статии ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π·Π° kustomize. Π•Ρ‚ΠΎ няколко, ΠΊΠΎΠΈΡ‚ΠΎ смСтнах Π·Π° особСно ΠΏΠΎΠ»Π΅Π·Π½ΠΈ:

ΠŸΡ€ΠΈΠΌ. ΠΏΡ€Π΅Π².: Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π° Π±Π»ΠΎΠΊΡŠΡ‚ ΠΎΡ‚ Π²Ρ€ΡŠΠ·ΠΊΠΈ, ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ РСсурси Π½Π° сайта Π½Π° инструмСнталната ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° ΠΈ слСдващата колСкция ΠΎΡ‚ Π²ΠΈΠ΄Π΅Π° с послСднитС Π΄ΠΎΠΊΠ»Π°Π΄ΠΈ Π·Π° kustomize.

Ако ΠΈΠΌΠ°Ρ‚Π΅ Π²ΡŠΠΏΡ€ΠΎΡΠΈ ΠΈΠ»ΠΈ прСдлоТСния Π·Π° подобряванС Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π», Π²ΠΈΠ½Π°Π³ΠΈ съм ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ Π·Π° ΠΎΠ±Ρ€Π°Ρ‚Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅Ρ‚Π΅ с ΠΌΠ΅Π½ Π² Twitter ΠΈΠ»ΠΈ Π² Slack-ΠΊΠ°Π½Π°Π»Π° Π½Π° Kubernetes. НасладСтС сС Π½Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π²Π°ΡˆΠΈΡ‚Π΅ манифСсти с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° kustomize!

P.S. ΠΎΡ‚ ΠΏΡ€Π΅Π²ΠΎΠ΄Π°Ρ‡Π°

ΠŸΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ ΡΡŠΡ‰ΠΎ Π² нашия Π±Π»ΠΎΠ³:

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster