α
αααΆαα ααααααα α’ααααααααααααΌαααΆααααααααα Scott Lowe αααααΆαα·ααααααααααΆααααα·ααααααααΆαααΌααααΌααΆααααα»αααααα IT αααααΆα’ααααα·αααα/αα α’ααααα·ααααααααα
ααααα»αααα
ααα½αααααΆαααΈα (ααΆαα
αααΎααα
ααΎ VMware vSphere)α α₯α‘αΌααααααΆααααααΎααΆαα±αααααα»αα αα»ααα»ααααααααααα VMware Heptio αααααααα½α (ααα½αααΆααα
ααααΆα 2016) αααααΆαα―ααααααΆααα»αααααΌαααααΎααα αα·α Kubernetes α α’ααααααααα½αααΆααΎααα½ααΆααΆαααααΆααααααα αα·αααΆααααα
ααααααΆααααααααααααΆαααααααα
ααΆαααααααααααααΆαα Kubernetes αααααααΎαα
αα
αααα·ααααΆ
Kustomize ααΊααΆα§ααααααααα’αα»ααααΆαα±ααα’αααααααΎ "ααααΌαααΆαααααα―αααΆα YAML ααΆαααα αααααααΆαααααΌαααααΆααααααααααααααααααΆ ααααα»αα±αα YAML ααΎααα
αααα αα·αα’αΆα
ααααΎααΆα" (ααΆααα·αααααΆααΆαααα
αΈαααααααΆααααΈ kubectl -k
ααΎααααΈα
αΌαααααΎαα»αααΆαααααααΆ (αααααΈααΆ Kubernetes 1.15 ααααα αααααααααααααΈαααΆα
ααααα‘ααααΊααααΈααΆααααααααΆααααααΆααααααΎααα
αααα»α kubectl)α (α
αααΆαα ααααααα α αΎαααΆαα½αααΉαααΆαα
ααααααΆαααααΈαααα
αα
αααα»ααααααα/αααααα·ααΈααααΆαααααααα»αααααααΆ ααααΌαααΆαααααααααΆααααααΆααααα»αααααααΆα (α―αααΆα YAML ααααααααααααα» Kubernetesα ααΆαααΆααα±ααααααΎααααΆαα ααααΆααααααα) ααΌαααΉααααααΈααΆαααααΆααααααΆααααΆαααααΆααααααΌααααααααΌαααααΎα
ααααααααΆαααΆαααααα ααΌα
ααααΆααΉαααΆαααααΎα±ααααααΎαααα»αααΆαααααΆααααααΆααα
αααα»α 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
ααααΆα ααααΌαααΆααααα ααΎααααΈαααααααα»αααααααΆααααΆαα (αααα»αααααΈααα -dev-
) ααΎααααΈαα»αααααααname
ααααΆαααΆααα’αααααααΆαααααααα αααα»αααΆαresources
. ααΌα ααααααααα·αααΎ Deployment ααΆαname
ααΆαα½αααΉαα’ααααααnginx-deployment
, ααααΌαααΆαααααααΉαααααΎα±ααααΆdev-nginx-deployment
. - ααΆα
namespace
ααααΆα ααααΌαααΆααααα ααΎααααΈααααααααα αααααααααααΆααααααα±αααα ααααΆαααΆααα’ααα αααα»αααααΈααα ααΆαααΆαααααααΆα αα·αααααΆααααααΉαααααΆααα αΌααα αααα»α namespacedevelopment
. - ααΈαααα»αααΆα
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 -
αα»αααΆα kustomize ααα’αΆα
α
αΌαααααΎααΆαααΆαααα kubectl -k
(α
αΆααααΆααααΈ Kubernetes αααα 1.14) α αααααΆαααΆαααΆααααα ααΌαα
αα
αΆαααΆαααα
αα kustomize ααΆα
ααααα‘ααααααΌαααΆαααααΎαα
αα
α»ααααααααΆαααΏαααΆααααα
αα kubectl αα½ααααα
αΌαααααΆ (αααΆαα αα
ααΆαααααααΆααααΈααΆαα½αααΉαααΆαα
ααααααΆα Kubernetes 1.15) α
α’αααα’αΆαα’αΆα
αα½αααΆ "α ααα»α’αααΈααΆαααΆααΆααααα»αααααΆαααΆααα’αααααααααα·αααΎα’αααα’αΆα
ααααααα½αα―αααΆααααααααΆαα?" αααα½αααα’ααα
αΆαααα αα
αααα»αα§ααΆα αααααααααΎα, ααΆααΆααα·α α’αΆα
ααααΎααΆα ααααααα―αααΆα deployment.yaml
ΠΈ service.yaml
αααααααΆαα ααα»ααααα
α»ααααΆαααΆααΎαα½αααααΆααααΌααααααααααααααααααααααΆααααΆαα? ααΆαααααΆααααααΌαα―αααΆααααααααΆααααααΎα±ααααΆαααΆαααααΆα (ααααα·αααΎαα·αα’αΆα
αα
αα½α
) αααα»αααΆααααααΎαααααΌααααααα‘αΎααα·α αα
ααααααααΆαααααΆααααααΌαααααΌαααΆαααααΎα‘αΎαα
αααααααααααΎα/αααααα ααΆαααααΎααααΆαα kustomize α’αα»ααααΆαα±ααα’αααααααΎαααααΆαααΆαααααΆααααααΌαααΆααααααα
αααα»αα―αααΆααα½αα kustomization.yaml
ααααα»αα―αααΆαααΎαα±αααα
αααα α αΎαααααΎα±ααααΆααΆααααααΆααααα½ααααα»αααΆαααΆααα―αααΆαααΎαα‘αΎααα·αααααα·αααΎα
αΆαααΆα
αα
α’ααααααααααααα kustomize ααααΆαααΆααΆααααααααα
αααα»αααααΈααααΆαααααΎααααΆααααΆαααααααα»αααααΆαα αα
αααα»αα§ααΆα αααααΆαααΎ kustomization.yaml
α αΎαααααΆαααΊαααα·ααα
αααα»ααααααα½αα ααααααΆαααΆααααα ααααΌαααΆααααααααΈααααΎααααΆαααααααΆαααΆαααααααα
ααΆααααααααααΌαααααΆα αα·ααααΆααααααααΆα
αααΎαααααααΆ αααααααΌαααΆαααααααΆαααααααααΆααΆ αααα½αααΎααααΆα. α§ααΆα ααα α’αααααααΎααααΆααα
αααα Deployment and Service αααααΆαα nginx ααααααα»αααΆαααααΎααΆα§ααΆα ααα α αΎααααααΎαααΆαα’αα·αααααα ααααΆααααΆα αα·αααααααα·α (α¬αααΆαααααα) ααα―αααΆαααΆαααααα ααΎααααΈααααΎααΌα
ααααααΆααααΉαααααΌαααΆαααΆααααα½αααΎααααΆαααααΆααααααΆααααΆαααΎα αΎαααΆααΆααα·αααααΆαααΌαααααΆαααααααα½αα―αα
ααΎααααΈαααα αΆαααΈαααα·αααααΆααααα½αααΎααααΆ αα·αααααΆαααΌαααααΆα (ααααΆαααΌαααααΆα)α§αααΆααΆ ααααΆααα ααΆααααααααααΌα ααΆααααααα
- base
- deployment.yaml
- service.yaml
- kustomization.yaml
- overlays
- dev
- kustomization.yaml
- staging
- kustomization.yaml
- prod
- kustomization.yaml
αα
αααα»αα―αααΆα base/kustomization.yaml
α’αααααααΎααααΆαααααααααΎααΆα resources
ααααΆαααααααααΆαααααΆααααααααΌαααΆααααααα½ααα½ααααα
αΌαα
αα
αααα»αα―αααΆαααΈαα½αα 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 build .
αα
αααα»αααΆααΆα‘α»α overlays/prod
- α’αααααα½αααΆααααααΎαααα·αααααα α αΎαααΆααα’ααααα - ααααα·αααααΎααΆαααααΆααααααΌαααΆαα½ααα
ααΎα (ααΌαααααΆα) α―αααΆαααΆααα’αααα
αααα»ααα·ααΈαααααΆα αα·ααααααα α’αααα’αΆα
α’αα»ααααααΆαααααααα
ααΆααααααααααΌαααααΆα αα·αααααΆααααΎαααααααΆαααα
ααΆαααααααααααααα αααααΉαααΆααα’ααααΎα―αααΆαααΆααααα α’αααα’αΆα
αααααΎαα‘αΎααα·αααΌαααΆαααααααααα
ααααΆααα
αααααΆααααΆαα
α
αααΆαα ααααααα ααΌαααΆαααΈα―αααΆαααααααααααΈααΈααΆαααααΎααααΆααααΆααααα½αααΎααααΆαααα»αααΆαααααα
ααααΌαααΆααααα α αααΎα α αααΎαααΆαα’αααΈαααααΆααα αααα»αα’ααααααααα ααααααΆαααΆααααα αααα»ααααααΉαααΆααΆααΎααα½ααΆααΆαααααΆαααααα’α
ααααΆααααααα
ααΆαα’ααααα αα·αααΆαααααα»αααααααΆαααα’αααΆα αααΎαα’αααΈ ααααΌαααΆαααααα αααααΊααΆαα½αα ααα½αααααααα»αααΆαααααΎαααΆααΆαααααααααααΆαα·αααα
-
ααααΆααααααΌαααΆαααααααα ααΆαααααααα YAML ααΌαααααΆααααααΆααααα·ααααΆαααααααααααΆ prod/test αααααααΎ Kustomize ; -
ααααΌαααΆααααα - αα·ααΈααααΉαααααΌαααΎααααΈααααΎααααΌαα αααα»α Kubernetes ; -
ααΆααααααααααααΆααααααΆαααααααα» Kubernetes αααααααΎ ααααΌαααΆααααα ; -
ααααΌαααΆααααα Upstream Helm Charts ααΆαα½αααΉαααΆαααααΌαααΆααααα .
α
αααΆαα ααααααα α’αααααα’αΆα
ααααΆααααα»ααααααααααΆαααααααΆαααααα»αααααααΆαααΆ
ααααα·αααΎα’αααααΆααααα½α α¬ααααΌααααααααΆααααΆααααααα’αααααΆααααα αααα»ααααααααΎαα
αα α
ααααααα·αααααα’α α’αααα’αΆα
ααΆαααααααα»αααΆααα
PS ααΈα’ααααααααα
ααΌαα’αΆαααααααα ααΎαααααααααααΎαα
- Β«
α§ααααααααααΆααα’αααα’αα·αααααααααααα·ααΈαααααααΎαααΆαααΎ Kubernetes Β» - Β«
Kubernetes 1.14α αα·αααααΆαααΌαα ααααΆαα αααααααα·αααααΆααα Β» - Β«
ααααααααααΆαααα ααα½αααααΆααααα·α αα ααααα»αααααΌα Helm 2019 αα ααΈαααα»α Amsterdam Β» - Β«
ααΆαααααΆαααΆαααααααα ααααα’αααααααααααααααα αααααααΆαα Kubernetes - Helm "α
ααααα: www.habr.com