ΠšΡ€Π°Ρ‚ΠΊΠΎ въвСдСниС Π² пСрсонализиранСто

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

ΠšΡ€Π°Ρ‚ΠΊΠΎ въвСдСниС Π² пСрсонализиранСто

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

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

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

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

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

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

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

ΠšΡ€Π°Ρ‚ΠΊΠΎ въвСдСниС Π² пСрсонализиранСто
Π—Π°Π±Π΅Π»Π΅ΠΆΠΊΠ°. ΠΏΡ€Π΅Π²ΠΎΠ΄: Π˜Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½Π°Ρ‚Π° докумСнтация Π·Π° β€žΠΏΡ€ΠΎΡΡ‚ΠΎΡ‚ΠΎβ€œ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° kustomize

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

kustomize build . > custom-config.yaml

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

kustomize build . | kubectl apply -f -

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π·Π° пСрсонализиранС ΡΡŠΡ‰ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ Ρ‡Ρ€Π΅Π· kubectl -k (ΠΎΡ‚ Kubernetes вСрсия 1.14). Π˜ΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ ΠΎΠ±Π°Ρ‡Π΅, Ρ‡Π΅ самостоятСлният ΠΏΠ°ΠΊΠ΅Ρ‚ kustomize сС Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π° ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ ΠΎΡ‚ интСгрирания ΠΏΠ°ΠΊΠ΅Ρ‚ kubectl (ΠΏΠΎΠ½Π΅ Ρ‚Π°ΠΊΡŠΠ² Π΅ случаят с ΠΈΠ·Π΄Π°Π½ΠΈΠ΅Ρ‚ΠΎ Kubernetes 1.15).

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

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

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

- 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 Ρ‰Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° опцията Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Ако Ρ‚ΠΈΡ‡Π°Ρˆ kustomize build . Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° overlays/prod - ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚Π΅ опция Π·Π° производство. И всичко Ρ‚ΠΎΠ²Π° - Π±Π΅Π· Π΄Π° ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π° (Π±Π°Π·Π°) Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, всички ΠΏΠΎ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π΅Π½ ΠΈ Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€Π°Π½ Π½Π°Ρ‡ΠΈΠ½. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π°Π½Π³Π°ΠΆΠΈΡ€Π°Ρ‚Π΅ основната конфигурация ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈΡ‚Π΅ с наслагванС Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ към ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° Π½Π° вСрсиитС, ΠΊΠ°Ρ‚ΠΎ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Π΅ въз основа Π½Π° Ρ‚Π΅Π·ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Ρ‚Π΅ ΠΆΠ΅Π»Π°Π½Π°Ρ‚Π° конфигурация ΠΏΠΎ всяко Π²Ρ€Π΅ΠΌΠ΅.

ΠšΡ€Π°Ρ‚ΠΊΠΎ въвСдСниС Π² пСрсонализиранСто
Π—Π°Π±Π΅Π»Π΅ΠΆΠΊΠ°. ΠΏΡ€Π΅Π²ΠΎΠ΄: Π˜Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½Π°Ρ‚Π° докумСнтация Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° наслагвания Π² kustomize

ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ ΠΌΠΎΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ ΠΎΠ±Ρ…Π²Π°Π½Π°Ρ‚ΠΎ Π² Ρ‚Π°Π·ΠΈ статия. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π° сС надявам Π΄Π° послуТи ΠΊΠ°Ρ‚ΠΎ Π΄ΠΎΠ±Ρ€ΠΎ въвСдСниС.

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

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

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

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

PS ΠΎΡ‚ ΠΏΡ€Π΅Π²ΠΎΠ΄Π°Ρ‡Π°

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

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€