Kustomize เชฎเชพเชŸเซ‡ เชธเช‚เช•เซเชทเชฟเชชเซเชค เชชเชฐเชฟเชšเชฏ

เชจเซ‰เซ…เชง. เช…เชจเซเชตเชพเชฆ: เชฒเซ‡เช– เชธเซเช•เซ‹เชŸ เชฒเซ‹เชตเซ‡ เชฆเซเชตเชพเชฐเชพ เชฒเช–เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹, เชœเซ‡ IT เชฎเชพเช‚ เชฌเชนเซ‹เชณเซ‹ เช…เชจเซเชญเชต เชงเชฐเชพเชตเชคเชพ เชเชจเซเชœเชฟเชจเชฟเชฏเชฐ เช›เซ‡, เชœเซ‡เช“ เชธเชพเชค เชฎเซเชฆเซเชฐเชฟเชค เชชเซเชธเซเชคเช•เซ‹เชจเชพ เชฒเซ‡เช–เช•/เชธเชน-เชฒเซ‡เช–เช• เช›เซ‡ (เชฎเซเช–เซเชฏเชคเซเชตเซ‡ VMware vSphere เชชเชฐ). เชคเซ‡ เชนเชตเซ‡ เชคเซ‡เชจเซ€ VMware เชชเซ‡เชŸเชพเช•เช‚เชชเชจเซ€ Heptio (2016 เชฎเชพเช‚ เชนเชธเซเชคเช—เชค) เชฎเชพเชŸเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡, เชœเซ‡ เช•เซเชฒเชพเช‰เชก เช•เชฎเซเชชเซเชฏเซเชŸเชฟเช‚เช— เช…เชจเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ เชตเชฟเชถเซ‡เชทเชคเชพ เชงเชฐเชพเชตเซ‡ เช›เซ‡. เชŸเซ‡เช•เซเชจเซ‹เชฒเซ‹เชœเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชฎเชพเชŸเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชตเซเชฏเชตเชธเซเชฅเชพเชชเชจเชจเชพ เชธเช‚เช•เซเชทเชฟเชชเซเชค เช…เชจเซ‡ เชธเชฎเชœเชตเชพเชฎเชพเช‚ เชธเชฐเชณ เชชเชฐเชฟเชšเชฏ เชคเชฐเซ€เช•เซ‡ เชŸเซ‡เช•เซเชธเซเชŸ เชชเซ‹เชคเซ‡ เชœ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡. เช•เชธเซเชŸเชฎเชพเช‡เช เช•เชฐเซ‹, เชœเซ‡ เชคเชพเชœเซ‡เชคเชฐเชฎเชพเช‚ K8s เชจเซ‹ เชญเชพเช— เชฌเชจเซเชฏเซ‹ เช›เซ‡.

Kustomize เชฎเชพเชŸเซ‡ เชธเช‚เช•เซเชทเชฟเชชเซเชค เชชเชฐเชฟเชšเชฏ

Kustomize เช เชเช• เชธเชพเชงเชจ เช›เซ‡ เชœเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“เชจเซ‡ "เชตเชฟเชตเชฟเชง เชนเซ‡เชคเซเช“ เชฎเชพเชŸเซ‡ เชธเชฐเชณ, เชŸเซ‡เชฎเซเชชเชฒเซ‡เชŸ-เชฎเซเช•เซเชค YAML เชซเชพเช‡เชฒเซ‹เชจเซ‡ เช•เชธเซเชŸเชฎเชพเช‡เช เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ‡ เช›เซ‡, เชฎเซ‚เชณ YAML เช…เช•เชฌเช‚เชง เช…เชจเซ‡ เช‰เชชเชฏเซ‹เช—เซ€ เช›เซ‹เชกเซ€เชจเซ‡" GitHub เชชเชฐ เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€เชจเซ‡ เช•เชธเซเชŸเชฎเชพเช‡เช เช•เชฐเซ‹). Kustomize เชธเซ€เชงเซเช‚ เชšเชฒเชพเชตเซ€ เชถเช•เชพเชฏ เช›เซ‡ เช…เชฅเชตเชพ, เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ 1.14 เชฎเซเชœเชฌ, เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ kubectl -k เชคเซ‡เชจเซ€ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพเชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ (เชœเซ‹เช•เซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ 1.15 เชฎเซเชœเชฌ, เช…เชฒเช— เชฆเซเชตเชฟเชธเช‚เช—เซ€ เช•เซเชฌเซ‡เช•เซเชŸเชฒเชฎเชพเช‚ เชฌเชจเซ‡เชฒเซ€ เช•เซเชทเชฎเชคเชพเช“ เช•เชฐเชคเชพเช‚ เชจเชตเซ€ เช›เซ‡). (เชจเซ‰เซ…เชง. เช…เชจเซเชตเชพเชฆ: เช…เชจเซ‡ เชคเชพเชœเซ‡เชคเชฐเชจเชพ เชชเซเชฐเช•เชพเชถเชจ เชธเชพเชฅเซ‡ เช•เซเชฌเชฐเซเชจเซ€เชŸเซเชธ 1.16 เช•เชธเซเชŸเชฎเชพเช‡เช เช•เชฐเซ‹ เชฆเซเชตเชพเชฐเชพ เช†เชงเชพเชฐเชญเซ‚เชค kubeadm เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเชฎเชพเช‚ เชชเชฃ.) เช† เชชเซ‹เชธเซเชŸเชฎเชพเช‚, เชนเซเช‚ เชตเชพเชšเช•เซ‹เชจเซ‡ เช•เชธเซเชŸเชฎเชพเช‡เชเชจเซ€ เชฎเซ‚เชณเชญเซ‚เชค เชฌเชพเชฌเชคเซ‹เชจเซ‹ เชชเชฐเชฟเชšเชฏ เช•เชฐเชพเชตเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚.

เชคเซ‡เชจเชพ เชธเซŒเชฅเซ€ เชธเชฐเชณ เชธเซเชตเชฐเซ‚เชช/เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชฎเชพเช‚, kustomize เช เชซเช•เซเชค เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ‹ เชธเช‚เช—เซเชฐเชน เช›เซ‡ (YAML เชซเชพเช‡เชฒเซ‹ เช•เซ‡ เชœเซ‡ Kubernetes เช‘เชฌเซเชœเซ‡เช•เซเชŸเชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ‡ เช›เซ‡: เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸเซเชธ, เชธเซ‡เชตเชพเช“, เชตเช—เซ‡เชฐเซ‡.) เช‰เชชเชฐเชพเช‚เชค เชคเซ‡ เชธเช‚เชธเชพเชงเชจเซ‹เชฎเชพเช‚ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชฎเชพเชŸเซ‡เชจเซ€ เชธเซ‚เชšเชจเชพเช“เชจเซ€ เชธเซ‚เชšเชฟ. เชœเซ‡เชฎ เชฎเซ‡เช•เชฎเชพเช‚ เชธเชฎเชพเชฏเซ‡เชฒ เชธเซ‚เชšเชจเชพ เชธเซ‡เชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฅเชพเชฏ เช›เซ‡ Makefile, เช…เชจเซ‡ เชกเซ‹เช•เชฐ เชคเชฐเชซเชฅเซ€ เชธเซ‚เชšเชจเชพเช“เชจเชพ เช†เชงเชพเชฐเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐ เชฌเชจเชพเชตเซ‡ เช›เซ‡ 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 เชจเชพ "เชธเชฐเชณ" เช‰เชชเชฏเซ‹เช— เชชเชฐ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃเชฎเชพเช‚เชฅเซ€ เชšเชฟเชคเซเชฐ

เชœเซ‹ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ เชคเซ‹ เช†เช‰เชŸเชชเซเชŸ เชฐเซ€เชกเชพเชฏเชฐเซ‡เช•เซเชŸ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡:

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 เชซเช•เซเชค เชคเซ‡ เชธเช‚เชธเชพเชงเชจเซ‹ เชœเชพเชนเซ‡เชฐ เช•เชฐเซ‹ เช•เซ‡ เชœเซ‡ เช•เชธเซเชŸเชฎเชพเช‡เชเชฎเชพเช‚ เชถเชพเชฎเซ‡เชฒ เชนเซ‹เชตเชพ เชœเซ‹เชˆเช.

เชฆเชฐเซ‡เช• เชซเชพเช‡เชฒเชฎเชพเช‚ 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 เชตเชฟเชถเซ‡ เช˜เชฃเชพ เชธเชพเชฐเชพ เชฒเซ‡เช–เซ‹ เช…เชจเซ‡ เชชเซเชฐเช•เชพเชถเชจเซ‹ เช›เซ‡. เช…เชนเซ€เช‚ เช•เซ‡เชŸเชฒเชพเช• เช›เซ‡ เชœเซ‡ เชฎเชจเซ‡ เช–เชพเชธ เช‰เชชเชฏเซ‹เช—เซ€ เชœเชฃเชพเชฏเชพ เช›เซ‡:

เชจเซ‰เซ…เชง. เช…เชจเซเชตเชพเชฆ: เชคเชฎเซ‡ เช† เชฐเซ€เชคเซ‡ เชชเซเชฐเช•เชพเชถเชฟเชค เชฅเชฏเซ‡เชฒ เชฒเชฟเช‚เช•เซเชธเชจเชพ เชฌเซเชฒเซ‹เช•เชจเซ€ เชชเชฃ เชญเชฒเชพเชฎเชฃ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เชธเช‚เชชเชคเซเชคเชฟ เชฏเซเชŸเชฟเชฒเชฟเชŸเซ€เชจเซ€ เชตเซ‡เชฌเชธเชพเชˆเชŸ เชชเชฐ, เชคเซเชฏเชพเชฐเชฌเชพเชฆ kustomize เชตเชฟเชถเซ‡เชจเชพ เชจเชตเซ€เชจเชคเชฎ เช…เชนเซ‡เชตเชพเชฒเซ‹ เชธเชพเชฅเซ‡เชจเชพ เชตเชฟเชกเซ€เชฏเซ‹เชจเซ‹ เชธเช‚เช—เซเชฐเชน.

เชœเซ‹ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช† เชธเชพเชฎเช—เซเชฐเซ€เชจเซ‡ เชธเซเชงเชพเชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเซเชฐเชถเซเชจเซ‹ เช…เชฅเชตเชพ เชธเซ‚เชšเชจเซ‹ เชนเซ‹เชฏ, เชคเซ‹ เชนเซเช‚ เชชเซเชฐเชคเชฟเชธเชพเชฆ เชฎเชพเชŸเซ‡ เชนเช‚เชฎเซ‡เชถเชพ เช–เซเชฒเซเชฒเซ‹ เช›เซเช‚. เชคเชฎเซ‡ เชฎเชพเชฐเซ‹ เชธเช‚เชชเชฐเซเช• เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ Twitter เช…เชฅเชตเชพ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชธเซเชฒเซ‡เช• เชšเซ‡เชจเชฒ. เช•เชธเซเชŸเชฎเชพเช‡เช เชตเชกเซ‡ เชคเชฎเชพเชฐเชพ เชฎเซ‡เชจเชฟเชซเซ‡เชธเซเชŸเชจเซ‡ เชธเช‚เชถเซ‹เชงเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชจเช‚เชฆ เชฎเชพเชฃเซ‹!

เช…เชจเซเชตเชพเชฆเช• เชคเชฐเชซเชฅเซ€ เชชเซ€เชเชธ

เช…เชฎเชพเชฐเชพ เชฌเซเชฒเซ‹เช— เชชเชฐ เชชเชฃ เชตเชพเช‚เชšเซ‹:

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹