INSTALLING TILLERããã©ããŒããããšããŠããŸããã次ã®ãšã©ãŒãçºçããŸãã
$ helm list
Error: configmaps is forbidden: User "system:serviceaccount:kube-system:default" cannot list resource "configmaps" in API group "" in the namespace "kube-system"
$
helm version
ã®åºåïŒ
$ helm version
Client: &version.Version{SemVer:"v2.12.1", GitCommit:"02a47c7249b1fc6d8fd3b94e6b4babf9d818144e", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.12.1", GitCommit:"02a47c7249b1fc6d8fd3b94e6b4babf9d818144e", GitTreeState:"clean"}
$
kubectl version
ã®åºåïŒ
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.1", GitCommit:"eec55b9ba98609a46fee712359c7b5b365bdd920", GitTreeState:"clean", BuildDate:"2018-12-13T10:39:04Z", GoVersion:"go1.11.2", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.1", GitCommit:"eec55b9ba98609a46fee712359c7b5b365bdd920", GitTreeState:"clean", BuildDate:"2018-12-13T10:31:33Z", GoVersion:"go1.11.2", Compiler:"gc", Platform:"linux/amd64"}
$
ã¯ã©ãŠããããã€ããŒ/ãã©ãããã©ãŒã ïŒAKSãGKEãMinikubeãªã©ïŒïŒ
ãã¢ã¡ã¿ã«ãLinux
ããããé¢é£ããŠãç§ã¯ãã£ã©ãŒãšããŒã«ããŒã¹ã®ã¢ã¯ã»ã¹å¶åŸ¡ã«ãã¢ã¯ã»ã¹ããããšããŠããŸããã404ãååŸããŠããŸãã
https://docs.helm.sh/using_helm/#role -based-access-control
æ¢ããŠãã人ã®ããã®æ°ããURLïŒ https ïŒ//helm.sh/docs/rbac/#role -based-access-control
ä¿®æ£æ¹æ³ã説æããã«åé¡ãéããã®ã¯è¯ããããŸãã:-)
代ããã«ããããŠãã ããã
ãšã©ãŒïŒconfigmapsã¯çŠæ¢ãããŠããŸãïŒãŠãŒã¶ãŒ " systemïŒserviceaccount ïŒkube- systemïŒdefault "ã¯ãªã¹ãã§ããŸãã
ãŸããåå¿è
ã®ããã®ããã€ãã®æ
å ±ã
Kubernetesã«ã¯æ¬¡ã®ãã®ããããŸãã
ãããã£ãŠãäžèšã®ã¡ãã»ãŒãžã§ã¯ãTillerãåå空éãkube-systemãã«ç»é²ãããŠããã¢ã«ãŠã³ããdefaultããšããŠæ©èœããŠããããšãããããŸãã ããããããªãã¯åœŒãååãªåœ¹å²ã«çžãä»ããŠããŸããã§ããã
ããã§åé¡ã«æ»ããŸãã
ã©ã®ããã«è¿œè·¡ããŸããïŒ
kubectl [--namespace kube-system] get serviceaccount
kubectl [--namespace kube-system] create serviceaccount tiller
kubectl [--namespace kube-system] get clusterrole
kubectl [--namespace kube-system] get clusterrole cluster-admin -o yaml
kubectl [--namespace kube-system] get clusterrolebinding
kubectl [--namespace kube-system] create clusterrolebinding tiller-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
kubectl [--namespace kube-system] get deploy tiller-deploy -o yaml
åºåã«ã¯ãserviceAccountããšãserviceAccountNameãã®èšå®ããªãããã§ãã
...
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
...
ã¯ãã®å Žåããã£ã©ãŒã«äœ¿çšããããã¢ã«ãŠã³ããè¿œå ããŸãã
kubectl [--namespace kube-system] patch deploy tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
ïŒPowerShellã䜿çšããŠããå Žåã¯ã以äžã§@snpdevããã®æçš¿ã確èªããŠãã ããïŒ
ããã§ãåã®ãã§ãã¯ã³ãã³ããç¹°ãè¿ããŠãéãã確èªããŸãã
...
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
serviceAccount: tiller <-- new line
serviceAccountName: tiller <-- new line
terminationGracePeriodSeconds: 30
...
ã¯ãã ãããªæãã
@ m-abramovichãœãªã¥ãŒã·ã§ã³ã¯ç§ã®ããã«åããã
泚ïŒPowershellã䜿çšããŠããå Žåãã³ãã³ãã¯æ¬¡ã®ãšããã§ãã
kubectl --namespace kube-system patch deploy tiller-deploy -p '{\"spec\":{\"template\":{\"spec\":{\"serviceAccount\":\"tiller\"}}}}'
ãããŠã2èŸãš1/2ããªãã®èª¬æã¯ãŸã 圹ã«ç«ã¡ãŸãããªãã®å¿ããã¹ã±ãžã¥ãŒã«ããæéãå²ããŠè©³çŽ°ã§åœ¹ç«ã€ããã«ããŠãããŠããããšãã @bacongobblerãšã¯ç°ãªã@ m- abramovich
ãããŠã2èŸãš1/2ããªãã®èª¬æã¯ãŸã 圹ã«ç«ã¡ãŸãããªãã®å¿ããã¹ã±ãžã¥ãŒã«ããæéãå²ããŠè©³çŽ°ã§åœ¹ç«ã€ããã«ããŠãããŠããããšãã @bacongobblerãšã¯ç°ãªã@ m-abramovich
ãã®å·ãéããã®ã¯ãéãã人ã§ãã æããã«åœŒãã¯åé¡ã解決ãããšæããŸããã
ããã«ãå ã®èª¬æã§ã¯ãåé¡ãéããã«æäŸããã圹å²ããŒã¹ã®ã¢ã¯ã»ã¹å¶åŸ¡ããã¥ã¡ã³ããžã®é©åãªãªã³ã¯ãæ±ããããŠããŸããã
æåŸã«ã @ bacongobblerã¯ãå€ãã®äººã«ãšã£ãŠéèŠãªäŒæ¥ã§ãã12æ25æ¥ã«ãèŠæ±ãããæ å ±ãæäŸããããã«æéããããŸããã @iamaverrickç³ãèš³ãããŸããããããªãã®ã³ã¡ã³ãã¯ããªãäžé©åã ãšæããŸãã
ããã ãã®ã¹ã¬ããã«çããã®ãèŠããŠããŸãã...ãã°ããçµã¡ãŸããã
@marckhouzamã®ããã§ã®ä»®å®ã¯æ£ããã§ãïŒåé¡ã¯ã¯ãªã¹ãã¹ã®æ¥ã«éãããŸããã ãã®æ¥ãããŸããŸå®¶æãšäžç·ã«ããŸããããOPãããã®ç°¡åãªè³ªåãèŠãŸããã
ããããé¢é£ããŠãç§ã¯ãã£ã©ãŒãšããŒã«ããŒã¹ã®ã¢ã¯ã»ã¹å¶åŸ¡ã«ãã¢ã¯ã»ã¹ããããšããŠããŸããã404ãååŸããŠããŸãã
ã ããç§ã¯æ£ãããªã³ã¯ã§ç°¡åãªçããæã¡ãã¯ãªã¹ãã¹ã®ãç¥ãã«æ»ããšæããŸããã ç¿æ¥ãOPãåé¡ã解決ããã®ã§ããã以äžã®ãã©ããŒã¢ããã¯å¿ èŠãªããšæããŸããã
ç§ã®ã³ã¡ã³ããç°¡æœãŸãã¯åœ¹ã«ç«ããªããšæããããšæããšãæ¬åœã«è ¹ãç«ã€ã ç§ã¯åé¡ã解決ããããšããŠããŸããã§ããã OPãããªããŒã·ãŒãºã³ã«èªåãã¡ã§è§£æ±ºçãèŠã€ããããšããŠããéãç§ã¯åã«ã³ã³ããã¹ããæäŸããŠããŸããã
OPã®åé¡ããã©ããŒã¢ããããŠåçãæäŸããŠããã@ m-abramovichãš@snpdevã«æè¬ããŸãã
@iamaverrickåé¡ã«å¯Ÿå¿ãããšãã«ãããã¥ã¡ã³ããžã®ãªã³ã¯ãæäŸããããšã¯çãããããŸããã ããã¯åœ¹ã«ç«ããªãããã§ã¯ãããŸããããã³ãã¥ããã£ãšããŠç§ãã¡ãå€ãã®æéãè²»ãããŠããããã¥ã¡ã³ããžã®ä¿¡å¿µã§ãã ããã¥ã¡ã³ããäžååãªå Žåããã®äººã¯éåžžå¿çããããã«ããå¿çè ã«ããã«ã³ã³ããã¹ããæäŸããæ©äŒãäžããããŸãã ãŸããããã¥ã¡ã³ããæ¹åããå¿ èŠãããããšãèªèã§ããŸãã ãŠãŒã¶ãŒããã®ãã®ãããªå¯Ÿè©±ãŸãã¯ãã£ãŒãããã¯ããªããã°ãããã¥ã¡ã³ãã¯æ¹åãããŸããã
é·æçã«ã¯ãããè¯ãããã¥ã¡ã³ãã¯ãé¢é£ã®ãªããã°ãæ©èœã®åé¡ãæèµ·ããå¿ èŠããã以äžã«äººã ãå©ããŸãã
å¥ã®ã¬ãã«ã§ã¯ã @ bacongobblerãããªããŒã·ãŒãºã³äžã«å¿çããããšã¯éåžžã«å°è±¡çã§ãã ç§ãã¡ã¯çãæåãå°œããããšããŠãã人ã ã§ããããšãå¿ããªãã§ãã ããã
ã¿ããªãæ°æ¥œã«ãã£ãŠãã ããã
ç§ãã¡ã¯ãã¹ãŠãœãããŠã§ã¢éçºè
ã§ããã人çã«ãããŠåã䟡å€èŠ³ãå
±æããŠããŸãã ç§ãã¡ã¯ããªããæ³åããããšãã§ãããããã¯ããã«å€ãã®å
±éç¹ãæã£ãŠããŸãã ãäºããå°éããŸãããã
@marckhouzamäžé©åã§ããïŒ åœ¢ã圢ããç§ã®ã³ã¡ã³ãã§èª°ãã軜èããããšã¯ãããŸããã ç§ã¯èªåã®èŠ³ç¹ããäºå®ãç°¡åã«è¿°ã¹ãŸããã ãã®ã³ã¡ã³ãã¯@bacongobblerã«çŽæ¥èšåãããŠããŸããããããã«2ã»ã³ããå ¥ããä»ã®ãã¹ãŠã®äººã§ã¯ãããŸããã§ããã äŒæ¥ã«ãªã³ã¯ã貌ãä»ããŠããã@bacongobblerã«æè¬ããŸãã å ã®è³ªåã§ã¯ã圌ã¯åé¡ãæ±ããŠããŠããªã³ã¯ã§ã¯ãªãã¬ã€ãã³ã¹ãå¿ èŠã§ãããšè¿°ã¹ãŠããŸãã 建èšçãªæ¹å€ãåãå ¥ããããšãã§ããªãå Žåã¯ããããã®ã¹ã¬ããã«äœãæçš¿ããªãã§ãã ããã ç§ãã¡ã¯çãããè¯ããªããããè¯ãæ å ±ãæäŸããããšããŠãããœãããŠã§ã¢éçºè ã§ãã
質åã§çããã»ã®ãããã@ bacongobblerãç§ã®çãã確èªãã@ m-abramovichãçŽ æŽãããã³ã¡ã³ããããã®ã§ã詳现ã蚌æããªãã£ãããšããè©«ã³ããŸãã
çããã®å©ããæèŠã«æ¬åœã«æè¬ããŠããŸãã次åã¯ãã£ãšè¯ãä»äºãããããšæããŸããçŽæããŸãïŒ
ç¹°ãè¿ãã«ãªããŸããããããåŒãèµ·ãããŠç³ãèš³ãããŸããïŒç§ã¯ãããããã«å°éãããšã¯æ¬åœã«æã£ãŠããŸããã§ãã...
ç§ã®2ã»ã³ãïŒ https ïŒ//helm.sh/docs/intro/quickstart/ããã©ããŒãããšãRBACã«ã€ããŠã®èšåããªããããã«ããæ瀺ã«ããããã£ã©ãŒã®ã€ã³ã¹ããŒã«ãæ©èœããªããªããŸãã ã°ãŒã°ã«æ€çŽ¢ã¯ããã§ãã®åé¡ã«ã€ãªãããŸãã
ããããããã¯ã€ãã¯ã¹ã¿ãŒãã¬ã€ãã匷åããŠããã®èœãšãç©Žã«ã€ããŠåå¿è ã«èŠåããããšããŠåéã§ããŸããïŒ
åææ¡ä»¶ã®äžã«ãã€ã³ã¹ããŒã«ã«é©çšããã»ãã¥ãªãã£æ§æã決å®ãããããããŸããã䜿ãæšãŠã¯ã©ã¹ã¿ãŒã§è©ŠããŠã¿ããšããããããããã°ãã¯æ°ã«ããªãã®ã§ãäœãããå¿ èŠã¯ãããŸããã
äœããããå¿ èŠãããããšã«æ°ä»ãããšããŠããæ瀺ãžã®ãªã³ã¯ã¯ãããŸããã
ç§ã®2ã»ã³ãïŒ https ïŒ//helm.sh/docs/intro/quickstart/ããã©ããŒãããšãRBACã«ã€ããŠã®èšåããªããããã«ããæ瀺ã«ããããã£ã©ãŒã®ã€ã³ã¹ããŒã«ãæ©èœããªããªããŸãã ã°ãŒã°ã«æ€çŽ¢ã¯ããã§ãã®åé¡ã«ã€ãªãããŸãã
ããããããã¯ã€ãã¯ã¹ã¿ãŒãã¬ã€ãã匷åããŠããã®èœãšãç©Žã«ã€ããŠåå¿è ã«èŠåããããšããŠåéã§ããŸããïŒ
@pohly
ãããªãã¯ãããã¯ããé¢ä¿ãªããšæããŸãã
HelmV3ã¯Tillerã䜿çšããŸããã ã ããããã¶ããããã¯ä»ã§ã¯äŸ¡å€ããªãã
@ m-abramovichããããšãããããŸãïŒ ããªãã®è©³çŽ°ãªãŠã©ãŒã¯ã¹ã«ãŒã¯ãç§ããã®åé¡ãä¹ãè¶ããã®ã«åœ¹ç«ã¡ãŸããã åçãæžãã®ã«æéãå²ããŠããã ããããããšãããããŸããã
ãã®èª¬æã¯çŽ æŽãããã§ãïŒ ããããšãïŒ
æãåèã«ãªãã³ã¡ã³ã
ä¿®æ£æ¹æ³ã説æããã«åé¡ãéããã®ã¯è¯ããããŸãã:-)
代ããã«ããããŠãã ããã
ãŸããåå¿è ã®ããã®ããã€ãã®æ å ±ã
Kubernetesã«ã¯æ¬¡ã®ãã®ããããŸãã
ãããã£ãŠãäžèšã®ã¡ãã»ãŒãžã§ã¯ãTillerãåå空éãkube-systemãã«ç»é²ãããŠããã¢ã«ãŠã³ããdefaultããšããŠæ©èœããŠããããšãããããŸãã ããããããªãã¯åœŒãååãªåœ¹å²ã«çžãä»ããŠããŸããã§ããã
ããã§åé¡ã«æ»ããŸãã
ã©ã®ããã«è¿œè·¡ããŸããïŒ
kubectl [--namespace kube-system] get serviceaccount
ããã§ãªãå Žåã¯äœæããŸãã
kubectl [--namespace kube-system] create serviceaccount tiller
kubectl [--namespace kube-system] get clusterrole
次ã®æ¹æ³ã§åœ¹å²ã®å 容ã確èªã§ããŸãã
kubectl [--namespace kube-system] get clusterrole cluster-admin -o yaml
kubectl [--namespace kube-system] get clusterrolebinding
ååã«åºã¥ããŠç解ããã®ãé£ããå Žåã¯ãåã«æ°ãããã®ãäœæã§ããŸãã
kubectl [--namespace kube-system] create clusterrolebinding tiller-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
kubectl [--namespace kube-system] get deploy tiller-deploy -o yaml
åºåã«ã¯ãserviceAccountããšãserviceAccountNameãã®èšå®ããªãããã§ãã
ã¯ãã®å Žåããã£ã©ãŒã«äœ¿çšããããã¢ã«ãŠã³ããè¿œå ããŸãã
kubectl [--namespace kube-system] patch deploy tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
ïŒPowerShellã䜿çšããŠããå Žåã¯ã以äžã§@snpdevããã®æçš¿ã確èªããŠãã ããïŒ
ããã§ãåã®ãã§ãã¯ã³ãã³ããç¹°ãè¿ããŠãéãã確èªããŸãã
ã¯ãã ãããªæãã