ããŒãã 翻蚳ã: ãã®èšäºã¯ãIT åéã§è±å¯ãªçµéšãæã€ãšã³ãžãã¢ãScott Lowe ã«ãã£ãŠå·çãããŸããã圌㯠2016 åã®æžç± (䞻㫠VMware vSphere) ã®èè
/å
±èè
ã§ãã 圌ã¯çŸåšãVMware ã®åäŒç€Ÿã§ãã Heptio (XNUMX 幎ã«è²·å) ã§åããŠãããã¯ã©ãŠã ã³ã³ãã¥ãŒãã£ã³ã°ãš Kubernetes ãå°éãšããŠããŸãã ããã¹ãèªäœã¯ããã¯ãããžã䜿çšãã Kubernetes ã®æ§æ管çã«ã€ããŠã®ç°¡æœã§ããããããå
¥éæžãšããŠæ©èœããŸãã
KusTOMize ã¯ããŠãŒã¶ãŒããå
ã® YAML ããã®ãŸãŸã«ããŠäœ¿çšå¯èœãªãŸãŸã«ããŠãããŸããŸãªç®çã«åãããŠã·ã³ãã«ã§ãã³ãã¬ãŒãã®ãªã YAML ãã¡ã€ã«ãã«ã¹ã¿ãã€ãºãããããšãå¯èœã«ããããŒã«ã§ã (説æã¯æ¬¡ããçŽæ¥åçšããŸãã) kubectl -k
ãã®æ©èœã«ã¢ã¯ã»ã¹ããã«ã¯ (ãã ããKubernetes 1.15 ã®æç¹ã§ã¯ãå¥åã®ãã€ããªã¯ kubectl ã«çµã¿èŸŒãŸããŠããæ©èœãããæ°ããã§ã)ã (ããŒãã 翻蚳ãïŒãããŠæè¿ã®ãªãªãŒã¹ã§ã¯
æãåçŽãªåœ¢åŒ/ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãkusTOMize ã¯åãªããªãœãŒã¹ã®ã³ã¬ã¯ã·ã§ã³ (Kubernetes ãªããžã§ã¯ã: ãããã€ã¡ã³ãããµãŒãã¹ãªã©ãå®çŸ©ãã YAML ãã¡ã€ã«) ãšããããã®ãªãœãŒã¹ã«å¯ŸããŠè¡ãå¿
èŠãããå€æŽã®æ瀺ã®ãªã¹ãã§ãã 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 ã«ãæå®ãããåå空éããã¹ãŠã®ãªãœãŒã¹ã«è¿œå ããããã«æ瀺ããŸãã ãã®å ŽåãDeployment ãš 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 ãªãªãŒã¹ã®å Žåã¯ããã«åœãŠã¯ãŸããŸã)ã
èªè
ã¯ãããã¡ã€ã«ãçŽæ¥ç·šéã§ããã®ã«ããªããããªã«è€éã«ãªãã®ã§ãã?ããšçåã«æããããããŸããã çŽ æŽããã質åã§ãã ç§ãã¡ã®äŸã§ã¯ã確ãã« 1ããšãã§ããŸã ãã¡ã€ã«ãå€æŽãã 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 ã䜿çšããŠãããŸããŸãªç°å¢ã®æ¬çª/ãã¹ãçšã«ããŒã¹ã® YAML æ§æãå€æŽãã ; -
KusTOMize â Kubernetes ã§ãã³ãã¬ãŒããäœæããæ£ããæ¹æ³ ; -
Customize ã䜿çšãã Kubernetes ãªããžã§ã¯ãã®å®£èšç管ç ; -
Customize ã䜿çšããã¢ããã¹ããªãŒã Helm ãã£ãŒãã®ã«ã¹ã¿ãã€ãº .
ããŒãã 翻蚳ã: ãšããŠå
¬éãããŠãããªã³ã¯ã®ãããã¯ãæšå¥šããããšãã§ããŸãã
ãã®è³æãæ¹åããããã®è³ªåãææ¡ãããå Žåã¯ããã€ã§ããã£ãŒãããã¯ããåŸ
ã¡ããŠããŸãã ãŸã§ãé£çµ¡ãã ããã
翻蚳è ããã®è¿œäŒž
ç§ãã¡ã®ããã°ããèªã¿ãã ãã:
- «
Kubernetes äžã§å®è¡ãããã¢ããªã±ãŒã·ã§ã³ã®éçºè åãã®ããŒã« "; - «
Kubernetes 1.14: äž»ãªã€ãããŒã·ã§ã³ã®æŠèŠ "; - «
ã¢ã ã¹ãã«ãã ã§éå¬ããã Helm Summit 2019 ã® XNUMX ã€ã®äž»ãªææ "; - «
Kubernetes ã®ããã±ãŒãž ãããŒãžã£ãŒã®å®è·µçãªçŽ¹ä» - Helm 'ã
åºæïŒ habr.com