ããã«ã¡ã¯ãã¿ããªã
ãã®ãããã¯ã«é¢é£ããä»ã®åé¡ã«ã€ããŠã³ã¡ã³ããã Slackã«ã€ããŠæããŸããã
Kubernetesã®æ
ãå§ãããšããåå空éã«ã€ããŠèªã¿ãã¹ã³ãŒãä»ããªãœãŒã¹ã®åå空éã䜿çšããŠåå空éãšããŠè€æ°ã®ç°å¢ãäœæããç°å¢ãå¯èœãªéãåäžã«ä¿ã€ããšãã§ãããšããã¢ã€ãã¢ãæ°ã«å
¥ããŸããã èªå®¶è£œã®kubectlã©ãããŒã䜿çšããCI / CDã®æåã®è©Šã¿ã§ã¯ãããã¯ããŸãæ©èœããŸããããããã«Helmã«ç§»è¡ããŸããã ããã¯ããªãªãŒã¹åãåå空éå
šäœã§äžæã®å€ã§ãªããã°ãªããªããšããåé¡ã«ããã«ééããããããããéæããããã«èŠåŽãå§ããªããã°ãªããªãã£ãå Žæã§ãïŒCfrãhttpsïŒ//github.com/kubernetes/helm/issues/1219ïŒã ç§ã¯name: {{ .Chart.Name }}
ã䜿çšããŠãã®ã¢ãããŒãã«åºå·ããããšããŸããããããã¯ããèªäœã§å€ãã®åé¡ãåŒãèµ·ãããŸãã
ããã«ã€ããŠèãã httpsïŒ//github.com/kubernetes/helm/issues/1768ãhttps://github.com/kubernetes/helm/issues/980ãªã©ã®åé¡ã«é¢ãã@technosophosã®ä»ã®ã³ã¡ã³ããèªãã»ã©ããã€ãã£ãã®kubernetesåå空éåŠçãšæ¯èŒããäžæŽåãæ¬åœã«å¿ èŠãªã®ãããããšã䟡å€ãããã®ã ãããã
èŠçŽãããšãããããããHelmãªãªãŒã¹ã¯åå空éã«ãã€ã³ããããŠããªãããšãç解ããŠããŸããããªãœãŒã¹ãäœæããïŒã»ãšãã©ã®å ŽåïŒåå空éãå®çŸ©ããŠããŸãã çè«çã«ã¯ã .Release.Namespace
ãªãŒããŒã©ã€ãããããšã§è€æ°ã®åå空éã«ã€ã³ã¹ããŒã«ã§ããŸãããHelmã¯è€æ°ã®åå空éã§ç¢ºå®ã«åäœã§ããªããããåé¡ãé²ãããã«ãããè¡ããªãããšã匷ããå§ãããŸãã
ãŸããHelmã¯ãã€ã³ã¹ããŒã«ããããã®ãšã¯ç°ãªãåå空éã§ãªãªãŒã¹ãã¢ããã°ã¬ãŒãããããã€ã³ã¹ããŒã«åŸã«åå空éããŸã£ããæž¡ããªãã£ãããããªã©ãåå空éã§ç¹æ®ãªããšãè¡ãããšã«ã€ããŠéåžžã«å³å¯ã§ã¯ãããŸããïŒkubectlã§èš±å¯ãããŠããªãããšïŒã
äžæ¹ãKubernetesã¯ãããã¥ã¡ã³ãããåŒçšããããã«ãã»ãšãã©ãã¹ãŠã®ãªãœãŒã¹ãåå空éã«ã¹ã³ãŒãããŸãïŒ Namespaces provide a scope for names. Names of resources need to be unique within a namespace, but not across namespaces.
ã Kubectlã¯ããªãœãŒã¹ãã¢ãã¬ã¹æå®ããããã«åžžã«åå空éãæž¡ãéã®äœ¿çšæã«ãéåžžã«å³å¯ã§ãã
ããã2ã€ãçµã¿åããããšãHelmã®çŸåšã®ã¢ãããŒãã¯ããŠãŒã¶ãŒãåå空éã¹ã³ãŒãã®Kubernetesã®ãã€ãã£ãåŠçã䜿çšã§ããªãããã«ãããšåæã«ãåå空ééã®ãã£ãŒã/ãªãªãŒã¹ããµããŒãããªããšããå°è±¡ãæã£ãŠããŸãã ç¹ã«ãHelmããã€ãã£ãæ©èœãå¥ã®æ¹æ³ã§åŠçãããããã䜿çšããããšãæ¬è³ªçã«ãããã¯ããŠãããšããäºå®ã¯ãç§ã«ã¯å°ãééã£ãŠãããšæããŸããïŒ
ãã®æ±ºå®ã¯å°æ¥ã®åå空ééã®ãªãªãŒã¹ããµããŒãã§ããããã«ããããã«è¡ããããšããçºèšã«é¢é£ããŠãåå空éã®ã¹ã³ãŒãããããã©ã®ããã«ãããã¯ãããããããŸãããïŒ åå空éã®åœåïŒä»æ¥ã®æ³šæãå¿
èŠãªæ¹æ³ãšåæ§ïŒãšåå空éã®åãæž¡ãã«æ³šæããå¿
èŠããããŸãããã€ã³ã¹ããŒã«æã«åäžã®åå空éãæž¡ããšããçŸåšã®ã¢ãããŒããæ©èœããŸããã
ç§ãããªããç解ããŠãããã©ããã¯ããããŸããã ãªãªãŒã¹åã1ã€ã ãã«ããŠãè€æ°ã®åå空éã«ãããã€ãããã§ããïŒ
@ 21stioãã®éãã Kubernetesããã¥ã¡ã³ãããïŒ
Kubernetesã¯ãåãç©çã¯ã©ã¹ã¿ãŒã«æ¯ããããè€æ°ã®ä»®æ³ã¯ã©ã¹ã¿ãŒããµããŒãããŸãã ãããã®ä»®æ³ã¯ã©ã¹ã¿ãŒã¯åå空éãšåŒã°ããŸãã
ãš
åå空éã¯ãååã®ã¹ã³ãŒããæäŸããŸãã ãªãœãŒã¹ã®ååã¯ãåå空éå ã§äžæã§ããå¿ èŠããããŸãããåå空ééã§äžæã§ããå¿ èŠã¯ãããŸããã
å人çã«ã¯ãhelmããã®åå空éã®æŠå¿µãå°éããªãçç±ã¯èããããŸããã
åæããŸãã ç§ã®åå空éã¯ãã¹ãŠ${site}-${environment}
ã®åœ¢åŒã§ãããç§ã®ãªãªãŒã¹ã¯${site}-${environment}-${description}
ã§ãã site
ãinternal
ãŸãã¯www
ããã environment
ãdev
ã staging
ããŸãã¯team-a
ã team-b
ãããã³description
ã¯ã nginx
ã migrations
ã cache
ãªã©ã®ããã«ãªããŸãã
ãããã ${site}-${environment}
ã¯éåžžã«åé·ã§ãã
NAMESPACE NAME
www-dev www-dev-redis-1234567890-cj241
www-dev www-dev-proxy-1234567890-kfd44
www-staging www-staging-redis-1234567890-cj241
www-staging www-staging-proxy-9876543210-kfd44
internal-team-b internal-team-b-redis-1234567890-cj241
internal-team-b internal-team-b-nginx-1234567890-cj241
ç§ãæçµçã«åŸããã®ã§ããããããã¯redis-1234567890..
ãŸãã¯proxy-9876543210..
ã ãã§ããããšãæãŸããã§ã
ãã£ãŒããã³ãã¬ãŒãã§ãªãªãŒã¹åã䜿çšããŠããã®ã§ããã¹ãŠã®ãµãŒãã¹åãšãããåã«ããããã¹ãŠã®äœåãªãã®ãå«ãŸããŠããŸãã ãã§ã«åå空éããã³ãã¬ãŒãã«æž¡ããŠããã®ã§ãå¿ èŠã«å¿ããŠååã«åå空éãç°¡åã«å«ããããšãã§ããŸãããçŸåšã®ããã«ãããã©ã«ãã®ãã«ã ã¹ãã£ãã©ãŒã«ãã£ã³ã°ã䜿çšããããšã§ããã¹ãŠã®ãªãœãŒã¹åã®äžéšã«ãªã£ãŠããŸãã
K8såå空éã¯ãã§ã«ç§ãã¡ã®åå空éã§ããåå空éãè¡çªãé²ãããã«èšèšãããŠããå Žåããã¹ãŠã®ãã®ã«åå空éã®ãã¬ãã£ãã¯ã¹ãä»ããå¿ èŠã¯ãããŸããã
æ瀺çã«ãåå空éã«é¢é£ãããã«ã ãã£ãŒãã䜿çšããŠãµãŒãã¹ãä»ã®k8sãã€ãã£ãã¿ã€ãã§å®è¡ã§ããã®ãšåãããšãã§ããã°ãæ¬åœã«çŽ æŽãããã§ãããã
ããšãã°ã次ã®ããšãã§ããããã«ããããšæããŸãã
helm install --namespace abc --name redis stable/redis
helm install --namespace def --name redis stable/redis
@Janpot @bcorijnäžèšã®åæã¯ãHelmãã£ãŒãã¯ãåå空éå ã«ã«ãã»ã«åããããªããžã§ã¯ãã§ã®ã¿æ©èœãããšããããšã§ãã Helmããããã®ãªãœãŒã¹ã®çš®é¡ã ãã«éå®ããããšã¯æãã§ããŸããã
åå空éãèšå®ãããŠããªããµãŒãããŒãã£ã®ãªãœãŒã¹ã«ã€ããŠã¯ã©ãã§ããïŒ ãŸãã¯ããåå空éããå Žæã§ã¯ãªãããªã·ãŒå±æ§ã§ããRBACïŒhttps://kubernetes.io/docs/admin/authorization/ïŒïŒ
ä»ã®å Žæã§äœåºŠãèšã£ãããšã¯ç¥ã£ãŠããŸãããç§ãã¡ã®æçµçãªç®æšã¯ãåããã£ãŒãããè€æ°ã®åå空éã«ãªãœãŒã¹ããããã€ã§ããããã«ããããšã§ãã ïŒãŠãŒã¹ã±ãŒã¹ïŒã¢ããªã«ã¯ã³ã³ãããŒã«ãã¬ãŒã³ãšããŒã¿ãã¬ãŒã³ããããã»ãã¥ãªãã£å¢çãäœæããããã«ãããããå¥ã ã®åå空éã«ãããã€ããå¿ èŠããããŸãïŒ
ãªãªãŒã¹ãåå空éã«ãã€ã³ããããšã次ã®æ©èœã倱ãããŸãã
ããã«ãããååä»ãã®åé¡ãå°ãé£ãããªãããšã¯ç解ããŠããŸãããHelmã¯ã¯ããã«å¹ åºãKubernetesãªãœãŒã¹ãæäœã§ããŸãã
åå空éä»ããªãªãŒã¹ãšåå空éãªããªãªãŒã¹ã®äž¡æ¹ããµããŒãããããšã¯å¯èœã§ããããïŒ
@technosophosèŠçŽãããšã2ã€ã®äž»èŠãªèŠå ããããŸãã
1ïŒåå空éãèšå®ãããŠããªããªãœãŒã¹ã®ç®¡ç
2ïŒãã£ãŒããåå空éå
šäœã«ã€ã³ã¹ããŒã«ã§ããããã«ããå°æ¥ã®èšç»
ç§ã¯ããªãã®äž»åŒµãç解ããŠããŸããããããçŸåšã®å®è£ ã«åºå·ããçç±ã§ãããã©ããã¯ããããŸããããããã®æžå¿µã«å¯ŸåŠããããã«å°ã匷å¶ããå¿ èŠããããšããå°è±¡ãããããã§ãã
ãã«ãåå空éãã£ãŒããããŸã/èªç¶ã«æ©èœããããã«ã¯ããªãªãŒã¹ãåå空éã«å ¥ããHelmã®çŸåšã®æŠå¿µãæ©èœããªããããåå空éã·ã¹ãã ã®ããªãã®ãªãŒããŒããŒã«ãå¿ èŠã«ãªãå¯èœæ§ããããŸããïŒ _EDITïŒãªãªãŒã¹ãå®éã«åå空éåãããŠããå Žåããã«ãåå空éãã£ãŒãã¯ãç°ãªãåå空éãæã€2ã€ã®ãªãªãŒã¹ãå«ãå æ¬çãªãã£ãŒãã«ãªããŸããïŒ_
åå空éã®ãªããªãœãŒã¹ã管çããããã ç§ã¯å人çãªçµéšããªãã®ã§å€æããã®ã¯å°ãé£ããã§ãããåå空éã管çãããªãªãŒã¹ãRBACãŸãã¯TPRã«ã¯åå空éãå«ãŸãããããHelmã¯ä»ã®ãšããå®ç§ã§ã¯ãªãäœæ¥æ¹æ³ã«ãªã£ãŠãããšæããŸããããããããç¡èŠããŸããïŒ
çµéšããªãããã«äœãã足ããªããããããŸããããååãã¹ã³ãŒãã³ã°ãããåå空éãç¡èŠããŠãåãçµæã«ãªããŸãããªãªãŒã¹åãšã»ã¬ã¯ã¿ãŒããããã®ãªãœãŒã¹ãæ±ããšãã¯ãæ£ãã/äžæã§ãã ïŒç§ãåæããã®ã¯ããªãã®è²¬ä»»ã§ãïŒ
ãããã£ãŠããªãªãŒã¹ãã¹ã³ãŒãããã ãã§ã¯ããŸããããªããããããŸããããHelmã§ã®åŠçæ¹æ³ãšãå°æ¥åŠçãããæ¹æ³ãããäžåºŠç¢ºèªãã䟡å€ã¯ãããŸããïŒ @JanpotãèšåããŠããããã«ããã°ããŒãã«ããªãªãŒã¹ãšåå空éãªãªãŒã¹ã®äž¡æ¹ã®ãªãã·ã§ã³ã
ãã€_veryã®personal_æèŠã¯@ã®æ¹æ³ã§å±éããããšãkylebyerly銬åã@chancezã§ãããšç§ã¯ãäžèšã®å€ãã®äžè¬çãªäœæ¥ã®ãã®æ¹æ³ãé²ã2ã€ã®ãŠãŒã¹ã±ãŒã¹ãããã§ãã
ãŸããèŠç¹ãç¹°ãè¿ããŸãããã«ã ãã£ãŒãã¯ãåå空éã¬ãã«ã§ã¯ãªããã°ããŒãã«ã¬ãã«ã§åäœããŸãã ãããã£ãŠããããã®ååã¯ã°ããŒãã«ã«äžæã§ãã
è€æ°ã®åå空éã®ã°ã©ãã®å Žåãä¿®æ£ããå¿ èŠãããã®ã¯ãåå空ééã§ã¯ãšãªãå®è¡ããTillerã®æ©èœã§ãã ïŒå®éã«ã¯ãè€æ°ã®åå空éã®ãã£ãŒããå®éã«_ã€ã³ã¹ããŒã«_ã§ããŸããTillerã¯ãããã確å®ã«ç §äŒã§ããªãããããããã確å®ã«ã¢ããã°ã¬ãŒããŸãã¯åé€ããããšã¯ã§ããŸããïŒã
åå空éã®ãªãã¢ã€ãã ã®å Žåãç¶æ³ã¯éåžžã«è€éã«ãªããŸãã åå空éã®ãªããã®ã管çããåå空éã®ãªãªãŒã¹ãããããããä»ã®åå空éã«åœ±é¿ãäžããå¯èœæ§ããããŸãã RBACãšTPRãã©ã®ããã«æ©èœããããã芧ãã ããã ãããã¯ãHelmãåã«ãµããŒãããªãããšã決å®ã§ãããã®ã§ã¯ãªããåå空éããåœé ããããšãç¹ã«RBACã®å Žåããã®äŸ¡å€ãããå€ãã®åé¡ãçºçããŸãã
ãªãªãŒã¹åã«åå空éãä»ããæ£åœãªçç±ã¯ãŸã ããããŸããã æåã®èŠæ ã¯ãKubernetesã®ãã¹ãŠã®ïŒéèŠãªïŒãã®ãåå空éã«ã¹ã³ãŒããããŠãããšãã誀解ã«åºã¥ããŠããŸãã ããããTPRãRBACã®ãããªéèŠãªãã®ã¯ããã§ã¯ãããŸããã ä»ã®äžæºã®å€§éšåã¯ã圌ãã䜿çšãã_ã¢ãããã¯_åœåã¹ããŒã ãHelmã§ã¯ããããã§ã¯ãªãããšããäºå®ã«é¢ãããã®ã®ããã§ãã ãªãªãŒã¹ããåå空éå ããšããŠèª€ã£ãŠè¡šçŸãã巚倧ãªäºææ§ãç Žãå€æŽãäœæããããšã«ãã£ãŠãããåé¿ããããšã¯ãåãã¹ãééã£ãã¢ãããŒãã®ããã«æãããŸãã
@technosophos
ãã«ãããŒã ã¹ããŒã¹ãã£ãŒããå®éã«ã€ã³ã¹ããŒã«ã§ããããã«ãªããŸãã
ã©ã®ããã«ïŒ åå空éã«é¢ããæŠå¿µãæ§æã®ã©ãã«çœ®ãã¹ãã§ããïŒ
è€æ°ã®åå空éã®ãªãªãŒã¹ãå ¬åŒã«ãµããŒãããäºå®ã¯ãããŸããïŒ
Helm 3.0ãŸã§ã¯ããã«ãåå空éãªãªãŒã¹ãå®å šã«ãµããŒãããäºå®ã¯ãããŸããããããè¡ããšãäžäœäºææ§ã倱ãããHelm / Tillerã®Kubernetesã³ãŒãã®å€ããå€§å¹ ã«ãªãã¡ã¯ã¿ãªã³ã°ããå¿ èŠããããŸãã
æ®å¿µãªãããhelmã䜿çšããŠè€æ°ã®åå空éããããã€ããã³ç®¡çã§ããªãããšã¯ã倧ããªåé¡ã§ãã
ç§ãã¡ã®èšç»ã¯ããã¹ãŠã®ã¢ããªïŒå°ããªã°ã©ããªã©ïŒãäŸåé¢ä¿ãšããŠæã€å
æ¬çãªã°ã©ããäœæããããšã§ããã ãã¹ãŠã®ã¢ããªã¯ç¬èªã®åå空éã«ååšããŸããããã¯ä»æ§ã«ãããã®ã§ãïŒå°æ¥çã«ã¯ãåå空éããšã«RBACã䜿çšããããšèããŠããŸãïŒã ã¢ã³ãã¬ã©ãã£ãŒãã䜿çšãããšã values.yml
1ã€ãããªãå Žåã«ãããŸããŸãªãã€ã¯ããµãŒãã¹ã®ã¯ã©ã¹ã¿ãŒå
šäœãäžåºŠã«ã€ã³ã¹ããŒã«ããã³ã¢ããã°ã¬ãŒãã§ããŸããããã¯éåžžã«äŸ¿å©ã§ãã
@technosophos ãããããšãã äžèšã®ãµããŒãã¯ãå°ãªããšãHelm 3.0ãŸã§ã¯ãããã«ã¯å±ããªãããšã«æ³šæããŠãã ããã
è€æ°ã®åå空éããµããŒãããããã«Helm / Tillerã§æ£ç¢ºã«ãªãã¡ã¯ã¿ãªã³ã°ããå¿ èŠããããã®ã«ã€ããŠã®äžè¬çãªèãæ¹ã¯ãããŸããïŒ ãããšã3.0ã¯é ãããŸããïŒ
ãã«ã name
ãããå€ãã®UUIDãšããŠæ±ãã --name-template
ã䜿çšããŠãåçŽã ãã©ã³ãã ãªååãçæã§ããããã«ããŸããã åå空éèªäœãå°éãããããããã奜ããšã¯èšããŸããããäž¡æ¹ã®ç¹ãããããŸããç§ãã¡ã«ãšã£ãŠã¯ãæå°éã®ãªãŒããŒãããã§ããã§ååã§ãã
äŸïŒ https ïŒ
> helm install --namespace www-dev --name-template "{{randAlpha 6 | lower}}" stable/redis
> kubectl --namespace www-dev get pods
NAME READY STATUS RESTARTS AGE
uvtiwh-redis-4101942544-qdvtw 1/1 Running 0 14m
> helm list --namespace www-dev
NAME REVISION UPDATED STATUS CHART NAMESPACE
uvtiwh 1 ... DEPLOYED redis-0.8.0 www-dev
@icerevalæ¥ç¶ããã¢ããªã§redisïŒuvtiwhïŒã®ååãã©ã®ããã«èŠã€ããŸããïŒ
ã¯ã©ã¹ã¿ãŒã§ã®äœ¿çšãæ€èšããŠãããã¿ãŒã³ã¯æ¬¡ã®ãšããã§ãã
kube-system
å
ã®1ã€ã®Tillerã€ã³ã¹ã¿ã³ã¹ãã¯ã©ã¹ã¿ãŒç®¡çè
ã䜿çšããã«ã ã®ãªãªãŒã¹åã¯äžççã«ãŠããŒã¯ããªèšèšååã¯ãç§ãã¡ã®ãããªãœãããã«ãããã³ãå±éã«ãšã£ãŠé çã®çš®ã§ãããããæšå¥šãããã¢ãããŒãã«ã€ããŠãã£ãšç¥ããããšæããŸãã
Helmãååãšåå空éã«åºã¥ããŠãªãªãŒã¹ãèå¥ãããšããæŠå¿µã«æºæ ããŠããªãããšãç¥ã£ããšããç§ã¯éåžžã«å€±æããŸããã ç§ã®æèŠã§ã¯ãããã¯ããªãœãŒã¹ãããããã®åå空éå ã§äžæã§ããKubernetesã®èšèšååã«æºæ ããŠããŸããïŒäžéšã®ã°ããŒãã«ãªãœãŒã¹ãé€ãïŒã
ä»ã®æçš¿è
ããã®ã¹ã¬ããã§ã³ã¡ã³ãããŠããããã«ãã¢ããªã±ãŒã·ã§ã³ã®ããŸããŸãªã°ã«ãŒãã«å¯ŸããŠãç°å¢ã«æ¥å°ŸèŸãä»ããããè€æ°ã®åå空éããããŸãã ãããã3ã€ãŸãã¯4ã€ã®ç°å¢ã«æ°çŸã®ç°ãªãå±éããããŸãã ç°ãªãåå空éå
ã§åãååã®ãµãŒãã¹ãåç
§ã§ããããã«ãåå空éå
ã®äžæã®DNSåã«å€§ããäŸåããŠããŸãã äŸãã°ã ç§ãã¡ã®redisãµãŒãã¹ã¯ãåå空éa-test
ãša-prod
äž¡æ¹ã§tcpïŒ// redisãä»ããŠã¢ã¯ã»ã¹ã§ããŸããããã§ãäž¡æ¹ã®åå空éã«ã¯redisã®ãããã€æžã¿ããŒãžã§ã³ããããŸãã
ããããã«ã 3ã®è°è«ã®ãã€ã³ããšããŠã¿ãŒã²ããã«ããŠããŸããããã«ã¯èšå€§ãªéèŠãããããã§ãã
å察ã®ç¹ïŒ
ã»ãšãã©ãã¹ãŠã®ãã£ãŒãããªãŒã¯ãæ°žç¶æ§/ API /ã¬ãã«7ã®ALBïŒ+ staticïŒã©ã€ã³ã«æ²¿ã£ãŠåå²ãããè€æ°ã®åå空éã«ã¢ãŒãã£ãã¡ã¯ãããããã€ããŸãã ãã®ã¹ã¿ã³ããã€ã³ãloveãããã«ã ãªãªãŒã¹åãã°ããŒãã«ã§ãããšããäºå®ã
èŠåºãååš--namespace
ã§ãªãã·ã§ã³helm
ããŒã¹å±€ã¯ãèµ€/éã®å±éäžå±€ã«ããåå©çšããããšãã§ããå€å±€ã¢ããªã±ãŒã·ã§ã³ã®çµã¿ç«ãŠã®ã¹ã¿ã³ããã€ã³ãããå圹ã«ç«ã¡ãŸããã ã¢ãŒãã£ãã¡ã¯ãã®ååã«{{ .Release.Name }}
掟çããæååãæ¿å
¥ãã代ããã«ããããã€ããšã«æ°ããåå空éãäœæããŸãã ããã«ããã決å®è«çã«åœ¢æããããµãŒãã¹URLããã§ãŒã³æ§æïŒ same_service_name.some_product_release20171102a.svc.cluster.local
> same_service_name.some_product_release20171105c.svc.cluster.local
ïŒãä»ããŠäŒæã§ããŸãã
ãšã«ããèªåçæããããªãªãŒã¹åã¯gobbledygookã§ããããã helm list
ã§ãã®èåŸã«ãããã®ã«å¿ å®ã§ã¯ãªãããã補å/ã¹ã¿ãã¯åãã掟çããæååãšå調ã«å¢å ãããªãªãŒã¹ã§--name
ãããŒããªãŒããŒã©ã€ãããŸã/ãã«ãããŒãžã§ã³ïŒ "appname-v20171103xyz"
ïŒãã£ãŒãã®ã©ããã«--name-template
å€ãå®çŸ©ãããã£ãŒãå+æ¥æãã掟çãããã«ãIDå€ãŸãã¯æ瀺çãªãã«ãIDå€ã䜿çšã§ããããã«ããããšèããŠããŸãã
äŸ
ããŒã¹æ°žç¶å±€
apiVersion: v1
kind: Service
metadata:
name: redis
namespace: {{ .Values.global.product }}-persistence-{{ .Values.global.tier }}
labels:
app: redis
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
...
次ã®ãããªå¥ã®åå空éããæ¶è²»ãããŸãã
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: {{ .Values.global.product }}
namespace: {{ .Release.Name }}
labels:
app: {{ .Values.global.product }}
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
...
env:
- name: REDIS_SERVER_HOSTNAME
-----> value: "redis.{{ .Values.global.product }}-persistence-{{ .Values.global.tier }}.svc.cluster.local"
äžèšã®2ã€ã®ãã³ãã¬ãŒãã¯ã2ã€ã®å¥åã®ãã£ãŒãïŒæ°žç¶æ§ãã£ãŒããšAPIãã£ãŒãïŒã®äžéšã§ããã3çªç®ã®å
æ¬çãªãã£ãŒããä»ããŠå¥ã
ã«ãŸãã¯å
±åã§å®è¡ã§ããŸãã ã©ã¡ãã®å Žåãã .global.
ã䜿çšããŠãããããå€ã¯ã³ãã³ãã©ã€ã³ã§1åãªãŒããŒã©ã€ãããããã¹ãŠã®ãµããã£ãŒãã«ãããã«é©çšãããŸãã
ãã®ã¢ãããŒãã§ã¯ãå®å åå空éã®å€ãReleaseNameã®åå°é¢æ°ã§ããå Žåãããã°ãååºå®ã§ããå Žåããããããåãã°ããŒãã«ReleaseNameã§ã¹ã¿ãã¯ãäœæããããšãããšã·ã¹ãã ãæå¥ãèšãããã«ãReleaseNameãã°ããŒãã«ã§ããããšã«ã»ãšãã©äŸåããŠããŸãã
åå空éã䜿çšããå©ç¹ã®1ã€ã¯ãåå空éå
ã®ãªããžã§ã¯ãåïŒDNSåãå«ãïŒãããŒã«ã«ã§ãããåå空éããåå空éã«å€æŽããå¿
èŠããªãããšã§ãã ç¹ã«äžèšã®@dvdotsenkoã®äŸã§ã¯ãREDIS_SERVER_HOSTNAMEã¯åãã§ããå¿
èŠãããïŒããšãã°ã redis
ïŒãã°ããŒãã«åãããå€ãæ¿å
¥ããå¿
èŠã¯ãããŸããã ãã®çç±ã¯ãç¹°ãè¿ããé¿ããããã§ãã
åçŽãã®èŠ³ç¹ããïŒãããŠãè€æ°ã®åå空éã®ãããã€ãåå空éã®ãªããªããžã§ã¯ããªã©ãèªç¶ã«è€éãªã±ãŒã¹ã¯å¥ãšããŠïŒãçæ³çãªã±ãŒã¹ã¯ãåå空éãã¹ã¿ãã¯ããã¢ã»ã³ãã«ãããã¢ããªã±ãŒã·ã§ã³ã®ã€ã³ã¹ã¿ã³ã¹ã1ã€ã ãå«ãããšã§ãã
ããã«ãããã¹ã¿ãã¯å ã®ååãããŒã«ã«ã§åçŽã«ããæãéèŠãªããšã«ãåå空éã«çžå¯Ÿçã§ããããåºå®ããããšãã§ããŸãã
èããããã¢ãããŒãã¯ãhelmãä»æ¥ã®ããã«åçŽãªã±ãŒã¹ãå€ããå°ãªãããµããŒãããããšã§ãïŒãªããžã§ã¯ãã«åå空éãä»ããããšãé¿ããŸãïŒã ããã«ãããã»ãšãã©ã®çšéã§ããã«äœ¿çšã§ãããåççã§å®å šãªãã¹ããã©ã¯ãã£ã¹ã®ããã©ã«ããçæãããŸãã ãŸãã @ dvdotsenkoãš@bcorijnã説æãããŠãŒã¹ã±ãŒã¹ãå¯èœã«ããããã«ãïŒè€éããç ç²ã«ããŠïŒããå€ãã®èªç±ãå¯èœã«ããé«åºŠãªåå空éã¢ãŒããæã€ããšãã§ããŸãã
ç§ã®$ .02
@pnickolovã«åæããå¿ èŠãããé害ã§ãã ãã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ã150ãè¶ ããç°å¢ãšè€æ°ã®ã¯ã©ã¹ã¿ãŒããããåãã¢ããªã±ãŒã·ã§ã³ã¹ã¿ãã¯ã®ããªã¢ã³ããå®è¡ããå¿ èŠããããŸãã åå空éã¯ãã®åé¡ã解決ããç¹ã«ãµãŒãã¹ãã£ã¹ã«ããªã«é¢é£ããŠãç°å¢ã®åé¢ãšæ§æã®ç°¡çŽ åãå¯èœã«ããŸãã
ãµãŒãã¹ãšã³ããã€ã³ããå åŒãã£ãŒãã§æ§æããç°¡åãªæ¹æ³ããªãå Žå...çŽç²ã«å€ãä»ããŠ...
ãããçŽãããããšæããŸãã @technosophosãæžããŠããããã«ïŒ
ãªãªãŒã¹ã¯åå空éã«ãã€ã³ããããŠããŸããã ïŒãã®ããããªãªãŒã¹èªäœã«åå空éå®çŸ©ãå«ããããšãã§ããŸãïŒã å®éãïŒå人çã«è©Šãããšã¯èšããŸãããïŒè€æ°ã®åå空éã«è€æ°ã®ãªããžã§ã¯ããäœæããåäžã®ã°ã©ããå±éããããšã¯å¯èœã§ããã¯ãã§ãã
ç§ã¯ãããæ£ç¢ºã«ç解ããã®ã«èŠåŽããŠããŸãã ç§ã¯ããã¥ã¡ã³ããèŠãŠãããGHã§ããã€ãã®åé¡ã調ã¹ãŸãããããŸã æ··ä¹±ããŠããŸãã
helm install --namespace
ã䜿çšããŠãã¿ãŒã²ããã«ããåå空éãæå®ã§ããŸãã ãããç§ã®è³ªåïŒ
helm install --namespace
æå®ãããåå空éãååšããªãå ŽåãHelmã¯ãããäœæããŸããïŒ æ¬¡ã«ãchrtããäœæãããã¹ãŠã®ãªãœãŒã¹ã«ãã®åå空éãèšå®ããŸããïŒãããã®è³ªåã«ãããç§ã¯--namespace
ã§éã¶ããšããèºèºããŸãããããã¯ãšãŠãäžæ確ã§ãã 誰ããç§ããããç解ããã®ãæäŒã£ãŠããããªããç§ã¯ãããæ¬åœã«æè¬ããŸãã ããããšãïŒ
f helm install --namespaceã§æå®ãããåå空éãååšããªãå ŽåãHelmã¯ãããäœæããŸããïŒ
ã¯ãã åå空éããŸã ååšããªãå Žåã --namespace
ã¯ãã£ãŒãã«æå®ãããåå空éãäœæããŸãã
ãªãœãŒã¹ãã³ãã¬ãŒããã¡ã¿ããŒã¿ã§åå空éãæå®ããŠããå Žåãhelmã¯ãããäžæžãããŸããïŒ
ãããããã£ãŒãã®åå空éãªãœãŒã¹ãšåæ§ã«--namespace
åãåå空éãæå®ããå Žåãåå空éã¯æåã«èããæ©ã«ãã£ãŠã€ã³ã¹ããŒã«ããããã£ãŒããåãããŒã ã¹ããŒã¹ãåã€ã³ã¹ããŒã«ããŸãã
ããã«ã³ã³ããã¹ãã説æãããšãhelmã®ã¢ã€ãã¢ã¯ã helm install --namespace
ã«ãã£ãŠæäŸãããåå空éã«ãã¹ãŠã®ãªãœãŒã¹ãã€ã³ã¹ããŒã«ããããšã§ãã ãã£ãŒãã®åå空éããããŒãã³ãŒãã£ã³ã°ãããŠãããŠãŒã¶ãŒã¯ãéåžžãè€æ°ã®åå空éã«ãã£ãŒããã€ã³ã¹ããŒã«ããããšèããŠããŸãã
ããã¯OPãææ¡ããŠããããšããå°ãå€ãããããã¯ã§ãããããã«è³ªåãããå Žåã¯ãæ°ãããã±ãããéãããSlackã«åå ããŠãã ããã :)
ãã®è°è«ã«åå ãããã®ãããããªãð芪åã«ããŠãã ããð
ã¹ã¿ãã¯ãèªãã§é¢é£ãã--namespace
ãªãã·ã§ã³ã«ã€ããŠã¯ãå€ãã®æ··ä¹±ãèŠãããŸããããã¯ã人ã
ãïŒããªãåççã«ïŒæ
£ããŠããkubectl --namespace
ã«äŒŒãŠãããšæ³å®ããŠããããã§ããããã«ãããã¢ã¯ãã£ããã£ããã®åå空éã«å¹æçã«å¶éãããŸãïŒè§£æãšã©ãŒã®å¯äœçšã§ãããå®éã«ã¯ã»ãã¥ãªãã£ã§ã¯ãããŸããïŒã tiller
ã¯ã¯ã©ã¹ã¿ãŒå
šäœã§åäœããã¯ã©ã¹ã¿ãŒãµãŒãã¹ã§ããããã helm
ã®å Žåã¯ããã§ã¯ãããŸããã ãã®ãªãã·ã§ã³ã¯ã --default-namespace
ãšããååã®æ¹ãé©åã§ãã ããã¯ããªãœãŒã¹ãç¹å®ã®åå空éãæå®ããªãå Žåã«ãªãœãŒã¹ã移åããåå空éã§ãã
ç§ã¯ãã§ã«ãåãªãªãŒã¹ã®ããŸããŸãªã³ã³ããŒãã³ããè€æ°ã®åå空éã«ãããã€ãããã£ãŒãã«äŸåããŠãããhelm3.0ã§ã®ãµããŒãã®åŒ·åã楜ãã¿ã«ããŠããŸãã ðð
ãŸãããã«ãããã³ãã§åå空éãå¶éãããã€ã³ã¹ããŒã«ãå¿
èŠãªãŠãŒã¹ã±ãŒã¹ããããŸãã IMHOã®ã¹ã³ãŒããŸãã¯åå空éãžã®ãªãªãŒã¹ã®å¶éã¯ã helm
/ tiller
ã匷å¶ã«é¢ä¿ãããã®ã§ã¯ãããŸãããããã¯ãRBACã®ä»äºã§ãã ãããå®çŸããããã®ã¢ãã«ã¯å°ãªããšã2ã€ãããçŸåš1ã€ãå¯èœã§ãã
tiller
ãããã®åå空éã§ã®æäœã®ã¿ãèš±å¯ãããµãŒãã¹ã¢ã«ãŠã³ããšRBACã䜿çšããŠå±éããŸãã ããã¯çŸåšæ©èœããŠããã人ã
ãããã䜿çšããŠããã®ãç®ã«ããŸãã ãã«ãããã³ãã¯ã©ã¹ã¿ãŒã«æé©ã§ããtiller
å Žåã ãhelm
ãŠãŒã¶ãŒãšããŠãããã€ãå°æ¥ã®helm
ããŒãžã§ã³ã§tiller
ã¯ãè€æ°ã®åå空éã«ãŸããããªãªãŒã¹ããµããŒãããªãããRBACåå空éã®å¶éãé©çšã§ããŸããåããã£ãŒããç°ãªãåå空éã«ã€ã³ã¹ããŒã«ãããããåããªãœãŒã¹åïŒredisãªã©ïŒã䜿çšãããå Žåã ããã¯å®å
šã«å¯èœã§ããããã¯ããªããããªãã®ãã£ãŒããã³ãã¬ãŒããæžãæ¹æ³ã«ããã£ãŠããŸãã ãªãœãŒã¹åã®åã«ãªãªãŒã¹åãä»ããå¿
èŠã¯ãããŸãããããã¯ãå€ãã®ãã£ãŒããåŸãããã©ã«ã/èŠåã§ãã æè¿ã®ãã£ãŒãã«ã¯ããªãªãŒã¹åã®ãã¬ãã£ãã¯ã¹ãè¿œå ã§ãã.fullnameOverride
å€ããã§ã«å«ãŸããŠããŸãã å¿
èŠã«å¿ããŠã redis
ãredis
ãšããŠãã¹ãŠã®helm install
ãããã€ã§ããŸãã
ç§ãã¡ã¯@gmileãšåæ§ã®ç¶æ³ã«ããããããè¡ãããã®ãã¹ããã©ã¯ãã£ã¹ãç¥ãããã£ãã®ã§ãã ã³ã¢ã¢ããªã±ãŒã·ã§ã³ã§ããingestion-service
ã¯kafka
äŸåããŠããã zookeeper
äŸåããŠããŸãã ãã ãã3ã€ãã¹ãŠãç¬èªã®åå空éã«é
眮ããå¿
èŠããããŸãããåäžã®ãã«ã install
ä»ããŠç®¡çããå¿
èŠããããŸãã kafka
ã®requirements.yaml
ã«ingestion-service
kafka
ãè¿œå ããããšãèšç»ããŠããŸããã ããããååŸkafka
ç¬èªã®åå空éã§ã¯ãªããšãç°¡åã«èŠãããhelm
æã
ã¯ããåé€ãããããã«è¡ã£ãŠããŸããã©ã®ãããªã®ã§ã requirements.yaml
ãšç°ãªãæã€helm install
ã®äž¡æ¹ã®å±éã«ã
ããã泚ç®ãããŠããFYIã§ãããã»ã¯ã·ã§ã³3ïŒç¶æ 管çã®äžã«ãªã¹ããããŠããHelm3ææ¡ã®äžéšã§ãã ãã£ãŒãããã¯ãæè¿ããŸãïŒ
ããã¯çŽ æŽããããã¥ãŒã¹ã§ã@bacongobblerðð
@bacongobbler Helm 3ã¯ã @ prat0318ã§èª¬æãããŠããããã«ãrequirements.yamlã§äŸåãã£ãŒãã«åå¥ã®åå空éãæå®ããããšããµããŒã
ææ¡ææžããïŒèªãã§ãã ããïŒïŒsmile :)ïŒ
$ helm install -n foo bar --namespace=dynamite # installs release, releaseVersion, and un-namespaced charts into dynamite namespace.
Helm 2ãšåæ§ã«ããªãœãŒã¹ãç¬èªã®åå空éãæ瀺çã«å®£èšããŠããå ŽåïŒããšãã°ãmetadata.namespace = somethingã䜿çšïŒãHelmã¯ããããã®åå空éã«ã€ã³ã¹ããŒã«ããŸãã ãã ããææè åç §ã¯åå空éãä¿æããªãããããã®ãããªãªãœãŒã¹ã¯åºæ¬çã«ç®¡çãããªããªããŸãã
@bacongobblerèªãã ã®ã§ãããããããµããŒãããŠãããšã¯æããŸããã ç§ãå¶åŸ¡ãããã£ãŒãã«ããŒãã³ãŒããããmetadata.namespaceãæå³ããã®ã§ã¯ãªããåžžã«ãµããŒããããŠããŸãã ã€ãŸããç·šéããæ©èœããªããµãŒãããŒãã£ã®ã°ã©ãã®åå空éãæå®ããããšã§ãã ããšãã°ãrequirements.yamlã§ã¯ãstable / kubernetes-dashboardã«äŸåããŠãããkube-systemã«ã€ã³ã¹ããŒã«ãããã®ã§ããããã£ãŒãã¯éçºåå空éã«å ¥ããŸãã
90æ¥éæäœããªããšãåé¡ã¯å€ããªããŸãã
/remove-lifecycle stale
ããŠãåé¡ãæ°èŠãšããŠããŒã¯ããŸãã
å€ãåé¡ã¯ãããã«30æ¥ééã¢ã¯ãã£ãã«ãªããšè
æããæçµçã«ã¯éããŸãã
ãã®åé¡ãä»ãã解決ã§ããå Žåã¯ã /close
ã
SIG-ãã¹ããkubernetes /ãã¹ãã»ã€ã³ãã©ããã³/ãŸãã¯ãžã®ãã£ãŒãããã¯ãéä¿¡fejta ã
/ lifecycle stale
@gmileç§ã¯ãhelmfileã¡ã³ãããhelmfileã®ãã®ç¹å®ã®åé¡ãä¿®æ£ããŠããªããš99ïŒ
確信ããŠããŸãã helmfile.yamlã§ç°ãªãåå空éãæã€vault
ãšããååã®2ã€ã®ãªãªãŒã¹ã宣èšãã helmfile sync
ãå®è¡ãããšããªãªãŒã¹åvault
ãæåã®ãªãªãŒã¹ã§èŠæ±ãããããã倱æããŸãã
å 責äºé ïŒç§ã¯helmfileã䜿çšããŠããããã¹ãããŠããªãã®ã§ãç§ã¯ééã£ãŠãããšèšãããããšæããŸãã ð
æåŸã®ã³ã¡ã³ããèŠéããå Žåã«åããŠãHelm 3ã§ã¯ãHelmããªãªãŒã¹ãåŠçããæ¹æ³ãå€æŽããŠããã«å¯ŸåŠããŠããŸãã :)
@ steven-sheehyãã®ç¹å®ã®åé¡ã¯ãå®çŸ©ãããŠãããã®ãããç¹å®ã®åå空éã«ãããã€ããããã«ãµããã£ãŒããæ¡åŒµããããšã«ãããŠããããä¿®æ£ãããå¯èœæ§ããããŸãã
/ remove-lifecycle stale
é¢é£ïŒ https ïŒ
Helm 3ã«å®è£ ãããŠããŸããåå空éã³ã³ããã¹ãã®å€æŽã¯ããŸã£ããå¥ã®ã€ã³ã¹ã¿ã³ã¹ãåç §ããŸãã
><> ./bin/helm version
version.BuildInfo{Version:"v3.0+unreleased", GitCommit:"5eb48f4471ac3aa9a3c87a07ee6f9e5bbc60a0e1", GitTreeState:"clean"}
><> ./bin/helm list --all-namespaces
NAME REVISION UPDATED STATUS CHART NAMESPACE
chartmuseum 1 2019-02-08 08:56:29.566393188 -0800 PST deployed chartmuseum-1.9.0 default
chartmuseum 1 2019-02-08 09:14:01.978866327 -0800 PST deployed chartmuseum-1.9.0 foo
çŽ æŽããããã¥ãŒã¹@bacongobbler
ãã®å€æŽãèãããšãåå空éåãlist
åºåã®æåã®åã«ç§»åããããšã¯çã«ããªã£ãŠããŸããã æåã®2åããªãªãŒã¹ãäžæã«èå¥ããããã«ïŒ
ããã©ã«ãã®äžŠã¹æ¿ãã¯ãåå空éãšãªãªãŒã¹ã«ãããã®ã§ããå¯èœæ§ããããããåãåå空éå
ã®ãªãªãŒã¹ã¯ã°ã«ãŒãåãããŸããããšãã°ããã¹ãŠã®kube-system
ãªãªãŒã¹ã¯äžç·ã«ãªããŸãã
ãã¡ããã
ä»ã®ãšãããç§ã¯ãã 䜿çšããŸã
helm install --name <namespace>-<name> ...
ã¯ããçŸåšã®åäœã¯æªèãæŸã¡ãŸãããå¿ èŠãªã®ã¯ç®¡çããã°ããŒãã«ã«äžæã®ååã ãã§ããããªãªãŒã¹ã®ååã®è€åããŒãäœæã§ããªãçç±ã¯ãããŸããã
ããããŸããã3ã€ã®åºæ¬çãªã·ããªãªãããããã§ãïŒããããã«ããŸããŸãªé åãæ··åšããå¯èœæ§ããããŸãïŒã
ããã¯ãããŸããŸãªã·ããªãªã«å¯ŸåŠããããã®åççãªã¢ãããŒãã§ããããã
--namespace
ãã©ã°ãæå®ãããŠããå Žåãåå空éãæ¿å
¥/ãªãŒããŒã©ã€ãããŸããäœè«ã§ãããç§ã¯èããæ©ã䜿çšããã helm template
ã奜ãã®ã§ãããã課é¡ãã©ãã ãå€ãããã¯ããããŸããã
@technosophos
Helm v2ãåå空éãšã©ã®ããã«çžäºäœçšããv3ãã©ã®ããã«ç°ãªãããç解ããããšããŠããŸããããã®ã¹ã¬ããã®å€ãã³ã¡ã³ãã®1ã€ã§æ··ä¹±ããŸãã
ãŸããèŠç¹ãç¹°ãè¿ããŸãããã«ã ãã£ãŒãã¯ãåå空éã¬ãã«ã§ã¯ãªããã°ããŒãã«ã¬ãã«ã§åäœããŸãã ãããã£ãŠããããã®ååã¯ã°ããŒãã«ã«äžæã§ãã
...ã
åå空éã®ãªãã¢ã€ãã ã®å Žåãç¶æ³ã¯éåžžã«è€éã«ãªããŸãã åå空éã®ãªããã®ã管çããåå空éã®ãªãªãŒã¹ãããããããä»ã®åå空éã«åœ±é¿ãäžããå¯èœæ§ããããŸãã RBACãšTPRãã©ã®ããã«æ©èœããããã芧ãã ããã ãããã¯ãHelmãåã«ãµããŒãããªãããšã決å®ã§ãããã®ã§ã¯ãªããåå空éããåœé ããããšãç¹ã«RBACã®å Žåããã®äŸ¡å€ãããå€ãã®åé¡ãçºçããŸãã
HelmV3ãããããã€ããããªãªãŒã¹ã¯å®éã«ã¯åå空éãä»ããããŠããããã§ãã ããã¯æ£ããã§ããïŒ RBACã®åé¡ãã©ã®ããã«è§£æ±ºããããç¥ã£ãŠããŸããïŒ ããªããææããåé¡ãåé¿ããããã«ç§ãèããããšãã§ããå¯äžã®è§£æ±ºçã¯ãHelm v3ãã£ãŒããRBACãªããžã§ã¯ãã®å€æŽããµããŒãããªãããšã§ãããv3ãã£ãŒãã管çããµããŒããããã©ããã瀺ãv3ã«é¢ããããŸããŸãªããã°æçš¿ãªã©ã«ã¯äœãèŠã€ãããŸããã§ããRBACãªããžã§ã¯ããã©ããã
æ¬åœã«å¿
èŠãªã®ã¯ãåå空éãã©ã¡ãŒã¿ãŒã䜿çšã§ããããã«ããããšã ãã§ãã
æ¥èŸã§ã¯ãªããªãªãŒã¹ãèå¥ããããã®è€åããŒãšããŠã®ååãã©ã¡ãŒã¿ãŒ
åå空éãååã«ã
ç§ã¯helmv3ã®ææ¡ãèªãã§ããŸããããè³¢æãªããšã¯
k8sããã§ã«äœ¿çšããŠããã»ã¬ã¯ã¿ãŒãã¿ãŒã³ãæ¡çšããå¿
èŠã¯ãããŸãã
ç¹å®ã®ãã£ãŒã«ãããµããŒãããŸãã
ç«ã2019幎6æ25æ¥ã«ã¯ãåå11æ01åAM BatmanAoDã®[email protected]ã¯æžããŸããïŒ
@technosophos https://github.com/technosophos
Helm v2ãåå空éãšã©ã®ããã«çžäºäœçšããv3ãã©ã®ããã«çžäºäœçšããããç解ããããšããŠããŸã
ç°ãªãã§ãããããããŠãã®ã¹ã¬ããã®ããªãã®å€ãã³ã¡ã³ãã®1ã€ã¯ç§ãæ··ä¹±ãããŸãïŒãŸããèŠç¹ãç¹°ãè¿ããŸãããã«ã ãã£ãŒãã¯ã°ããŒãã«ã§åäœããŸã
åå空éã¬ãã«ã§ã¯ãªããã¬ãã«ã ãããã£ãŠããããã®ååã¯ã°ããŒãã«ã«äžæã§ããåå空éã®ãªãã¢ã€ãã ã®å Žåãç¶æ³ã¯éåžžã«è€éã«ãªããŸãã ç§ãã¡ã¯æã£ãŠããã ãã
åå空éãèšå®ããããªãªãŒã¹ã¯ãåå空éãèšå®ãããŠããªããã®ã管çããŸãã
ä»ã®åå空éã«åœ±é¿ãäžããŸãã RBACãšTPRãã©ã®ããã«æ©èœããããã芧ãã ããã
ãããã¯ãHelmãåã«ãµããŒãããªãããšã決å®ã§ãããã®ã§ã¯ãããŸããã
åå空éããåœé ããããšãç¹ã«ãã®äŸ¡å€ãããå€ãã®åé¡ãçºçããŸãã
RBACã䜿çšããŸããHelmV3ãããããã€ããããªãªãŒã¹ã¯å®éã«ã¯åå空éãä»ããããŠããããã§ãã
ããã¯æ£ããã§ããïŒ RBACã®åé¡ãã©ã®ããã«è§£æ±ºããããç¥ã£ãŠããŸããïŒ å¯äžã®
ç§ãèããããšãã§ãã解決çã¯ãããªããææããåé¡ãåé¿ããã§ããã
Helm v3ãã£ãŒãã¯RBACãªããžã§ã¯ãã®å€æŽããµããŒãããŠããŸããããèŠã€ãããŸããã§ãã
ããŸããŸãªããã°æçš¿ãªã©ã®v3ã«é¢ãããã®ã¯ãv3ãã©ããã瀺ããŸã
ãã£ãŒãã¯ãRBACãªããžã§ã¯ãã®ç®¡çããµããŒããããã©ããããµããŒãããŸããâ
ã³ã¡ã³ãããã®ã§ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/helm/helm/issues/2060?email_source=notifications&email_token=AACFHREXHFSKFSB7FXQ5VPTP4JMP3A5CNFSM4DCII7X2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2Z
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AACFHRH2JPXPKMX23WVQLCDP4JMP3ANCNFSM4DCII7XQ
ã
@BatmanAoD @gyndick Helm v3ã§ã¯ããã£ãŒãã¯ãŠãŒã¶ãŒã³ã³ããã¹ãã«ã€ã³ã¹ããŒã«ãããŸãã ããã¯ããã®ãŠãŒã¶ãŒåå空éã«ã€ã³ã¹ããŒã«ããããŠãŒã¶ãŒã®RBACã䜿çšããããšãæå³ããŸãã ãªãªãŒã¹åãåå空éã«åºã¥ããŠããŸãã
Alpha.1ãªãªãŒã¹ïŒ https://github.com/helm/helm/releases/tag/v3.0.0-alpha.1ïŒã§è©Šããã dev-v3
ãã©ã³ããããã«ãã§ããŸãã
helmv3ã¯äœ¿çšããŸããã éçšããŒã ããšã«ç°ãªããŸã
å¶çŽãšç©äºã®ããæ¹ã æäœããŒã«ã¯ã·ã³ãã«ã§ããå¿
èŠããããŸãã
åäžç®çã®ãŠãŒãã£ãªãã£ãã€ãŸãUnixå²åŠãšäºææ§ããããŸãã
ã¹ã¯ãªãããããžãã¯ãªã©ã¯ãããã±ãŒãžãããŒãžã£ãŒã®å€éšã«ãããŸãã
TLDR;
Unixå²åŠãšäºææ§ãããããšã®æãéèŠãªåŽé¢ã¯
ã¹ãããéã«ãšã¹ã±ãŒãããããæäŸããæ©èœã
ããã®ããžã¹ãã£ã¯ã¹ãåŠçãããé·ãèªååãããã¯ãŒã¯ãããŒãæã€
ãããå£ãããŸã§ãå¢ãžã®ããããã¯çŽ æŽãããã§ãã ãŠãŒã¶ãŒã«æäŸãããŠããªãå Žå
å¿
èŠãªèªååã®ãããŒã®ãã¹ãŠã®ã¹ããããæåã§å®è¡ããæ©èœ
ãã³ãã©ã®ç®±ã«ãªããŸãã
v3ã§ææ¡ãããè€éãã¯ãå€ãã®å€ãã®ééããæªãããšãæããŸã
25幎ã®çµéšã®æ©æµãåããŠããªã人ã
ããã®ãã¶ã€ã³ã
è¿œå ãããè€éãã¯ãåžžã«ãç©äºãè¡ãã®ãé£ããããŸãã
ç¬èªã®éçºç°å¢ãšãªãéçšããŒã«
ããªã¢ãŒãžãé
ãããŸãã
å®ç§ãªäŸã¯ã誰ãã1ã€ã®å·šå€§ã§æãããããšã«ææåãããšãã§ã
æžãããã¹ã¯ãªããã åæ¢ãçºçããã¹ã¯ãªããã®äžéšãå®è¡ããå¿
èŠããããŸãã
ä»ã®éšåã¯å³å¯ã«é¿ããå¿
èŠããããŸããããããã®éšåã¯
ã¡ã€ã³ããžãã¯ã ã§ã¯ãäžäœäœãããŸããïŒ å¿
æ»ã«ãªã£ãŠããã«åº§ã
ãããã°ã®è¯ãæ¹æ³ãæ¬åœã«ãªãã³ãŒãããªãã¡ã¯ã¿ãªã³ã°ããŸãã
ãµããŒãããããã«ãšã³ã·ã¹ãã ã«çµã¿èŸŒãŸãããã¹ãŠã®ããŒã«ã«ã€ããŠèããŠãã ãã
ç¹å®ã®èšèªã§ã®ãœãããŠã§ã¢ã®éçºãšéçšã ããªãã§ã¯ãªã
ããªãé·ãéããã«ã ã«ãããæäŸã§ããããã«ãªãã§ãããã
ãããã£ãŠãããŒãžã§ã³éã®ç§»è¡ã管çããæ¹æ³ã®è²¬ä»»ãè² ã£ãŠãã ãã
å±éãããŠãããœãããŠã§ã¢ãéçºããŠãã人ã
ãšã®ãœãããŠã§ã¢ã
ããã±ãŒãžãããŒãžã£ãŒã¯ãã·ã³ãã«ã§è»œéã§ã
責任ã
ä»ã®äœããçã¿ãæ±ããŠããŸãã ççŽã«èšã£ãŠãhelmV2ã¯ã»ãŒå®ç§ã§ã
ãªãªãŒã¹ã远跡ããæ¹æ³ãä¿®æ£ããã ãã®å Žåã
2019幎6æ26æ¥æ°Žææ¥ãåå1æ31åããŒãã£ã³ããããŒ[email protected]
æžããŸããïŒ
@BatmanAoD https://github.com/BatmanAoD @gyndick Helm v3ã§ã¯ãã°ã©ãã¯
ãŠãŒã¶ãŒã³ã³ããã¹ãã«ã€ã³ã¹ããŒã«ãããŸãã ããã¯ããã®ãŠãŒã¶ãŒã«ã€ã³ã¹ããŒã«ãããŠããããšãæå³ããŸã
åå空éã§ããããŠãŒã¶ãŒã®RBACã䜿çšããŸãã ãªãªãŒã¹åã¯
åå空éããŒã¹ããAlpha.1ãªãªãŒã¹ã§è©Šãããšãã§ããŸãã
https://github.com/helm/helm/releases/tag/v3.0.0-alpha.1ãŸãã¯ãã«ãå
dev-v3ãã©ã³ããâ
ã³ã¡ã³ãããã®ã§ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/helm/helm/issues/2060?email_source=notifications&email_token=AACFHREUTX77SJCPWZLQKATP4MSNRA5CNFSM4DCII7X2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2Z
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AACFHRCAQLWUYHH6RJSUYF3P4MSNRANCNFSM4DCII7XQ
ã
@hickeymaè¿ä¿¡ããããšãããããŸãïŒ å®éãHelmèªäœãv3ã§ClusterRolesãäœæãããªã©ã®ã°ããŒãã«æäœãå®è¡ã§ãããã©ããã»ã©ãHelmã®æäœãã¢ã¯ã»ã¹å¶åŸ¡ãããæ¹æ³ïŒããã¯é¢é£ããåé¡ã§ããïŒã«ã€ããŠã¯ããŸãçåã«æã£ãŠããŸããã
@BatmanAoDã¯ã©ã¹ã¿ãŒã¹ã³ãŒãã®ãªãœãŒã¹ã§ãããããããã¯æ©èœããã¯ãã§ãã æ©äŒãããã°è©ŠããŠã¿ã䟡å€ããããããããŸããã
æãåèã«ãªãã³ã¡ã³ã
æ瀺çã«ãåå空éã«é¢é£ãããã«ã ãã£ãŒãã䜿çšããŠãµãŒãã¹ãä»ã®k8sãã€ãã£ãã¿ã€ãã§å®è¡ã§ããã®ãšåãããšãã§ããã°ãæ¬åœã«çŽ æŽãããã§ãããã
ããšãã°ã次ã®ããšãã§ããããã«ããããšæããŸãã