ΠΡΠΈΠΌ. ΠΏΡΠ΅Π².: Π‘ΡΠ°ΡΠΈΡΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π° ΠΎΡ Π‘ΠΊΠΎΡ ΠΠΎΡ β ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ Ρ Π΄ΡΠ»Π³ΠΎΠ³ΠΎΠ΄ΠΈΡΠ΅Π½ ΠΎΠΏΠΈΡ Π² ΠΠ’, Π°Π²ΡΠΎΡ ΠΈΠ»ΠΈ ΡΡΠ°Π²ΡΠΎΡ Π½Π° ΡΠ΅Π΄Π΅ΠΌ ΠΏΠ΅ΡΠ°ΡΠ½ΠΈ ΠΊΠ½ΠΈΠ³ΠΈ (ΠΏΡΠ΅Π΄ΠΈΠΌΠ½ΠΎ Π·Π° VMware vSphere). Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ°Π±ΠΎΡΠΈ Π² Π΄ΡΡΠ΅ΡΠ½Π°ΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Π½Π° VMware β Heptio (ΠΏΡΠΈΠ΄ΠΎΠ±ΠΈΡΠ° ΠΏΡΠ΅Π· 2016 Π³.), ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΉΠΊΠΈ ΡΠ΅ Π² ΠΎΠ±Π»Π°ΡΠ½ΠΈΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΈ Kubernetes. Π‘Π°ΠΌΠΈΡΡ ΡΠ΅ΠΊΡΡ ΡΠ»ΡΠΆΠΈ ΠΊΠ°ΡΠΎ ΠΊΡΠ°ΡΠΊΠΎ ΠΈ Π»Π΅ΡΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΠΎ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π·Π° Kubernetes Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ , ΠΊΠΎΡΡΠΎ Π½Π°ΡΠΊΠΎΡΠΎ Π²Π»Π΅Π·Π΅ Π² ΡΡΡΡΠ°Π²Π° Π½Π° K8s.

Kustomize Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π΄Π° "Π½Π°ΡΡΡΠΎΠΉΠ²Π°Ρ ΠΏΡΠΎΡΡΠΈΡΠΊΠΈ ΠΈ Π±Π΅Π·ΡΠ°Π±Π»ΠΎΠ½Π½ΠΈ YAML ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅Π»ΠΈ, ΠΎΡΡΠ°Π²ΡΠΉΠΊΠΈ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡ YAML Π½Π΅ΠΏΠΎΠΊΡΡΠ½Π°Ρ ΠΈ Π³ΠΎΠ΄Π΅Π½ Π·Π° ΡΠΏΠΎΡΡΠ΅Π±Π°" (ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΡΠΎ Π΅ Π²Π·Π΅ΡΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΡ ). Kustomize ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΡΠ°ΡΡΠΈΡΠ°Π½ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΈΠ»ΠΈ, Π·Π°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ ΠΎΡ Kubernetes 1.14, Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° kubectl -k Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΊΡΠΌ Kubernetes 1.15 ΠΎΡΠ΄Π΅Π»Π½ΠΈΡΡ Π±ΠΈΠ½Π°ΡΠ΅Π½ ΡΠ°ΠΉΠ» Π΅ ΠΏΠΎ-Π½ΠΎΠ² ΠΎΡ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅, Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ Π² kubectl). (ΠΡΠΈΠΌ. ΠΏΡΠ΅Π².: Π Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠ΅Π»ΠΈΠ· 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 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) ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΈ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° β Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π΅Π½ ΠΈ Π΄Π΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠ°Π½ Π½Π°ΡΠΈΠ½. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΊΠΎΠΌΠΈΡΠ²Π°ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈΡΠ΅ Π½Π° ΠΎΠ²Π΅ΡΠ»Π΅ΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π²Π΅ΡΡΠΈΠΈ, Π·Π½Π°Π΅ΠΉΠΊΠΈ, ΡΠ΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΡΠ΅Π·ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎ Π²ΡΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ.

ΠΡΠΈΠΌ. ΠΏΡΠ΅Π².: ΠΠ»ΡΡΡΡΠ°ΡΠΈΡ ΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° overlays Π² kustomize
Kustomize ΡΠΌΠ΅Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠΎ Π² ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ. ΠΡΠ΅ ΠΏΠ°ΠΊ ΡΠ΅ Π½Π°Π΄ΡΠ²Π°ΠΌ, ΡΠ΅ ΡΡ ΡΠ΅ ΠΏΠΎΡΠ»ΡΠΆΠΈ ΠΊΠ°ΡΠΎ Π΄ΠΎΠ±ΡΠΎ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.
ΠΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ
ΠΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠΈ ΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π·Π° kustomize. ΠΡΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ, ΠΊΠΎΠΈΡΠΎ ΡΠΌΠ΅ΡΠ½Π°Ρ Π·Π° ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ:
- ;
- ;
- ;
- .
ΠΡΠΈΠΌ. ΠΏΡΠ΅Π².: Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ° Π±Π»ΠΎΠΊΡΡ ΠΎΡ Π²ΡΡΠ·ΠΊΠΈ, ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΈ ΠΊΠ°ΡΠΎ Π½Π° ΡΠ°ΠΉΡΠ° Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»Π½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΠΈ ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΠΊΠΎΠ»Π΅ΠΊΡΠΈΡ ΠΎΡ Π²ΠΈΠ΄Π΅Π° Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π΄ΠΎΠΊΠ»Π°Π΄ΠΈ Π·Π° kustomize.
ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ Π²ΡΠΏΡΠΎΡΠΈ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΎΠ·ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π», Π²ΠΈΠ½Π°Π³ΠΈ ΡΡΠΌ ΠΎΡΠ²ΠΎΡΠ΅Π½ Π·Π° ΠΎΠ±ΡΠ°ΡΠ½Π° Π²ΡΡΠ·ΠΊΠ°. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅ΡΠ΅ Ρ ΠΌΠ΅Π½ Π² ΠΈΠ»ΠΈ Π² . ΠΠ°ΡΠ»Π°Π΄Π΅ΡΠ΅ ΡΠ΅ Π½Π° ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π²Π°ΡΠΈΡΠ΅ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° kustomize!
P.S. ΠΎΡ ΠΏΡΠ΅Π²ΠΎΠ΄Π°ΡΠ°
ΠΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΡΡΠΎ Π² Π½Π°ΡΠΈΡ Π±Π»ΠΎΠ³:
- «»;
- «»;
- «»;
- «».
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
