ืืขืจื. ืชืจืืื: ืืืืืจ ื ืืชื ืขื ืืื Scott Lowe, ืืื ืืก ืืขื ื ืืกืืื ืจื ื-IT, ืฉืืื ืืืืืจ/ืืฉืืชืฃ ืฉื ืฉืืขื ืกืคืจืื ืืืืคืกืื (ืืขืืงืจ ื-VMware vSphere). ืืขืช ืืื ืขืืื ืืืืจืช ืืืช ืฉืื VMware Heptio (ื ืจืืฉื ื-2016), ืืืชืืื ืืืืฉืื ืขื ื ืื-Kubernetes. ืืืงืกื ืขืฆืื ืืฉืืฉ ืืืงืืื ืชืืฆืืชืืช ืืงื ืืืื ื ืื ืืืื ืชืฆืืจื ืขืืืจ Kubernetes ืืืืฆืขืืช ืืื ืืืืืื
Kustomize ืืื ืืื ืืืืคืฉืจ ืืืฉืชืืฉืื "ืืืชืืื ืืืฉืืช ืงืืฆื YAML ืคืฉืืืื ืืื ืชืื ืืืช ืืืืจืืช ืฉืื ืืช, ืืืืฉืืืจ ืืช YAML ืืืงืืจื ืฉืื ืืฉืืืฉ" (ืชืืืืจ ืืืฉืื ืืฉืืจืืช ื kubectl -k
ืืื ืืืฉืช ืืคืื ืงืฆืืื ืืืืช ืฉืื (ืื ืื ื ืืื ื-Kubernetes 1.15, ืืืื ืืจื ืื ืคืจื ืืืฉ ืืืชืจ ืืืืืืืืช ืืืืื ืืช ื-kubectl). (ืืขืจื. ืชืจืืื: ืืขื ืืฉืืจืืจ ืืืืจืื
ืืฆืืจื/ืืคืืืงืฆืื ืืคืฉืืื ืืืืชืจ ืฉืื, kustomize ืืื ืคืฉืื ืืืกืฃ ืฉื ืืฉืืืื (ืงืืฆื YAML ืืืืืืจืื ืืืืืืงืืื ืฉื Kubernetes: Deployments, Services ืืื') ืืชืืกืคืช ืจืฉืืื ืฉื ืืืจืืืช ืืฉืื ืืืื ืฉืืฉ ืืืฆืข ืืืฉืืืื ืืื. ืืืืืง ืืคื ืฉ-make ืืฉืชืืฉ ืืขืจืืช ืืืืจืืืช ืืืืืื ื Makefile
, ื-Docker ืืื ื ืืช ืืงืื ืืืื ืจ ืืืชืืกืก ืขื ืืืจืืืช ื Dockerfile
, ืืชืืื ืืืฉืืช ืฉื ืฉืืืืฉืื 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-
) ืืืืืกname
ืื ืืืฉืืืื ืืืืืืจืื ืืฉืืresources
. ืืคืืื, ืื ืืคืจืืกื ืืฉname
ืขื ืืฉืืขืืชnginx-deployment
, ืืชืืื ืืืฉืืช ืชืขืฉื ืืช ืืdev-nginx-deployment
. - ืฉืื
namespace
ืืืจื ื-kustomize ืืืืกืืฃ ืืช ืืจืื ืืฉืืืช ืื ืชืื ืืื ืืืฉืืืื. ืืืงืจื ืื, ืคืจืืกื ืืฉืืจืืช ืืืื ืกื ืืืจืื ืืฉืืืช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 -
ื ืืชื ืืืฉืช ืืชืืื ืืช kustomize ืื ืืืืฆืขืืช kubectl -k
(ืืื ืืจืกื 1.14 ืฉื Kubernetes). ืขื ืืืช, ืืืืจ ืื ืืืืืช kustomize ืืขืฆืืืืช ืืชืขืืื ืช ืืืจ ืืืชืจ ืืืืืืช kubectl ืืืฉืืืืช (ืืคืืืช ืื ืืืงืจื ืขื ืืืืืืจื Kubernetes 1.15).
ืืงืืจืืื ืขืฉืืืื ืืฉืืื: "ืืื ืื ืืืืจืืืืช ืืื ืื ืืชื ืืืื ืืขืจืื ืืช ืืงืืฆืื ืืฉืืจืืช?" ืฉืืื ืืฆืืื ืช. ืืืืืื ืฉืื ื, ืืื ืืื ืืืื ืืฉื ืืช ืงืืฆืื deployment.yaml
ะธ service.yaml
ืืฉืืจืืช, ืืื ืื ืื ืื ืืืื ืฉื ืคืจืืืงื ืฉื ืืืฉืื ืืืจ? ืฉืื ืื ืงืืฆืื ืืฉืืจืืช ืืงืฉื (ืื ืื ืืืชื ืืคืฉืจื) ืืืฆืข ืืกืืก ืืืืฉ ืฉื ืืืื ืืืฉืจ ืืชืืฆืขืื ืฉืื ืืืื ืืืงืืจ/ืืงืืจ. ืฉืืืืฉ ื-kustomize ืืืคืฉืจ ืืจืื ืืช ืืฉืื ืืืื ืืืื ืืงืืืฅ kustomization.yaml
, ืืฉืืืจืื ืืช ืืงืืฆืื ืืืงืืจืืื ืฉืืืื ืืืื ืืงืืื ืขื ืืกืืก ืืืืฉ ืฉื ืืงืืฆืื ืืืงืืจืืื ืืืืืช ืืฆืืจื.
ืืืชืจืื ืืช ืฉื kustomize ืืชืืืื ืืืงืจืื ืฉืืืืฉ ืืืจืืืื ืืืชืจ. ืืืืืื ืืขืื kustomization.yaml
ืืืืฉืืืื ื ืืฆืืื ืืืืชื ืกืคืจืืื. ืขื ืืืช, kustomize ืชืืื ืืืงืจืื ืฉืืื ืืฉ ืชืฆืืจืช ืืกืืก ืืืจืกืืืช ืจืืืช ืฉืื, ืืืืืข ืื ืืฉื ืฉืืืืช-ืขื. ืืืืืื, ืืฉืชืืฉ ืจืฆื ืืงืืช 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
ืคืฉืื ืืืจืื ืขื ืืืฉืืืื ืฉ-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. ืื ื ืืื ืฉืืฆืืชื ืฉืืืืฉืืื ืืืืืื:
-
ืฉื ื ืืช ืชืฆืืจืช ืืืกืืก ืฉื YAML ืขืืืจ ืกืืืืืช ืฉืื ืืช ืฆืืจ/ืืืืง ืืืืฆืขืืช Kustomize ; -
Kustomize - ืืืจื ืื ืืื ื ืืขืฉืืช ืชืื ืืช ื- Kubernetes ; -
ื ืืืื ืืฆืืจืชื ืฉื ืืืืืืงืื Kubernetes ืืืืฆืขืืช ืืชืืื ืืืฉืืช ; -
ืืชืืื ืืืฉืืช ืฉื ืชืจืฉืืื ืืืื ืืืขืื ืืืจื ืขื ืืชืืื ืืืฉืืช .
ืืขืจื. ืชืจืืื: ืืชื ืืืื ืื ืืืืืืฅ โโืขื ืืืืง ืงืืฉืืจืื ืฉืคืืจืกื ืืฉื
ืื ืืฉ ืื ืฉืืืืช ืื ืืฆืขืืช ืืฉืืคืืจ ืืืืืจ ืืื, ืื ื ืชืืื ืคืชืื ืืืฉืื. ื ืืชื ืืืฆืืจ ืืืชื ืงืฉืจ ื
ื .ื ืืืืชืจืื
ืงืจื ืื ืืืืื ืฉืื ื:
- ยซ
ืืืื ืืืคืชืื ืืคืืืงืฆืืืช ืืคืืขืืืช ืขื Kubernetes "; - ยซ
Kubernetes 1.14: ืกืงืืจื ืืืืืช ืฉื ืืืืืืฉืื ืืขืืงืจืืื "; - ยซ
ืืืฉ ืชืืฆืืืช ืขืืงืจืืืช ืฉื Helm Summit 2019 ืืืืกืืจืื "; - ยซ
ืืืืจืืช ืืขืฉืืช ืืื ืื ืืืืืืืช ืฉื Kubernetes - Helm ".
ืืงืืจ: www.habr.com