Helm: ์˜ค๋ฅ˜ : ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฆด๋ฆฌ์Šค ์ด๋ฆ„์ด ์—†์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2017๋…„ 10์›” 23์ผ  ยท  27์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: helm/helm

์•ˆ๋…• ์—ฌ๋Ÿฌ๋ถ„
๋‚˜๋Š” ๋‹จ์ง€ ๋ฌด์—‡์ด ์ž˜๋ชป๋˜๊ณ  ์žˆ๋Š”์ง€ ์ „ํ˜€ ๋ชจ๋ฅธ๋‹ค.

์ฒ˜์Œ ์‹คํ–‰์„ ์‹œ๋„ํ•œ ํ›„ :

$ helm install stable/mongodb-replicaset
Error: no available release name found

i "๋น„ํ™œ์„ฑํ™”"RBAC

kubectl create clusterrolebinding permissive-binding --clusterrole=cluster-admin --user=admin --user=kubelet --group=system:serviceaccounts 

๊ทธ๋Ÿฌ๋‚˜ ์•„๋ฌด๊ฒƒ๋„ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

$ helm install stable/mongodb-replicaset
Error: no available release name found

Kubernetes

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.0", GitCommit:"6e937839ac04a38cac63e6a7a306c5d035fe7b0a", GitTreeState:"clean", BuildDate:"2017-09-28T22:57:57Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.1", GitCommit:"f38e43b221d08850172a9a4ea785a86a3ffa3b3a", GitTreeState:"clean", BuildDate:"2017-10-11T23:16:41Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

์ง€๋ฐฐ

$ helm version
Client: &version.Version{SemVer:"v2.6.2", GitCommit:"be3ae4ea91b2960be98c07e8f73754e67e87963c", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.6.2", GitCommit:"be3ae4ea91b2960be98c07e8f73754e67e87963c", GitTreeState:"clean"}

helms repos

$ helm search | grep mongo
stable/mongodb                  0.4.17  NoSQL document-oriented database that stores JS...
stable/mongodb-replicaset       2.1.2   NoSQL document-oriented database that stores JS...

ํ‹ธ๋Ÿฌ ํฌ๋“œ

$ kubectl get pods --all-namespaces | grep tiller
kube-system   tiller-deploy-5cd755f8f-c8nnl               1/1       Running   0          22m
````

tiller log
```bash
[tiller] 2017/10/23 19:12:50 preparing install for
[storage] 2017/10/23 19:12:50 getting release "busted-shark.v1"
[storage/driver] 2017/10/23 19:13:20 get: failed to get "busted-shark.v1": Get https://10.96.0.1:443/api/v1/namespaces/kube-system/configmaps/busted-shark.v1: dial tcp 10.96.0.1:443: i/o timeout
[tiller] 2017/10/23 19:13:20 info: generated name busted-shark is taken. Searching again.
[storage] 2017/10/23 19:13:20 getting release "lucky-rabbit.v1"
[storage/driver] 2017/10/23 19:13:50 get: failed to get "lucky-rabbit.v1": Get https://10.96.0.1:443/api/v1/namespaces/kube-system/configmaps/lucky-rabbit.v1: dial tcp 10.96.0.1:443: i/o timeout
[tiller] 2017/10/23 19:13:50 info: generated name lucky-rabbit is taken. Searching again.
[storage] 2017/10/23 19:13:50 getting release "exiled-lynx.v1"
[storage/driver] 2017/10/23 19:14:20 get: failed to get "exiled-lynx.v1": Get https://10.96.0.1:443/api/v1/namespaces/kube-system/configmaps/exiled-lynx.v1: dial tcp 10.96.0.1:443: i/o timeout
[tiller] 2017/10/23 19:14:20 info: generated name exiled-lynx is taken. Searching again.
[storage] 2017/10/23 19:14:20 getting release "eloping-echidna.v1"
[storage/driver] 2017/10/23 19:14:50 get: failed to get "eloping-echidna.v1": Get https://10.96.0.1:443/api/v1/namespaces/kube-system/configmaps/eloping-echidna.v1: dial tcp 10.96.0.1:443: i/o timeout
[tiller] 2017/10/23 19:14:50 info: generated name eloping-echidna is taken. Searching again.
[storage] 2017/10/23 19:14:50 getting release "soft-salamander.v1"
[storage/driver] 2017/10/23 19:15:20 get: failed to get "soft-salamander.v1": Get https://10.96.0.1:443/api/v1/namespaces/kube-system/configmaps/soft-salamander.v1: dial tcp 10.96.0.1:443: i/o timeout
[tiller] 2017/10/23 19:15:20 info: generated name soft-salamander is taken. Searching again.
[tiller] 2017/10/23 19:15:20 warning: No available release names found after 5 tries
[tiller] 2017/10/23 19:15:20 failed install prepare step: no available release name found
questiosupport

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

https://github.com/kubernetes/helm/issues/2224#issuecomment -356344286์— ๋”ฐ๋ผ ๋‹ค์Œ ๋ช…๋ น์œผ๋กœ ์˜ค๋ฅ˜๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'

๋ชจ๋“  27 ๋Œ“๊ธ€

Kubernetes 1.8 ์ง€์›์€ ์ตœ๊ทผ์—์•ผ helm v2.7.0์— ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฏ€๋กœ Helm v2.6.2๊ฐ€ 1.8 ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ž‘๋™ ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. v2.7.0-rc1 ๋ฆด๋ฆฌ์Šค๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ณ  ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? v2.7.0-rc1 ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋กœ์ปฌ์— ์„ค์น˜ํ•˜๊ณ  helm reset && helm init ์‹คํ–‰ํ•˜๋ฉด ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ! :)

@bacongobbler ํžŒํŠธ๋ฅผ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•˜์ง€๋งŒ ์ผ์น˜๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

helm version
Client: &version.Version{SemVer:"v2.7.0", GitCommit:"08c1144f5eb3e3b636d9775617287cc26e53dba4", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.7.0", GitCommit:"08c1144f5eb3e3b636d9775617287cc26e53dba4", GitTreeState:"clean"}

๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ ์‹œ๋„ํ•˜๋ฉด :

$ helm install stable/mongodb-replicaset
Error: no available release name found

๋‹ค์Œ ๋กœ๊ทธ์™€ ํ•จ๊ป˜ :

[tiller] 2017/10/26 18:11:22 preparing install for
[storage] 2017/10/26 18:11:22 getting release "listless-toucan.v1"
[storage/driver] 2017/10/26 18:11:36 get: failed to get "zealous-panther.v1": Get https://10.96.0.1:443/api/v1/namespaces/kube-system/configmaps/zealous-panther.v1: dial tcp 10.96.0.1:443: i/o timeout
[tiller] 2017/10/26 18:11:36 info: generated name zealous-panther is taken. Searching again.
[storage] 2017/10/26 18:11:36 getting release "terrifying-serval.v1"
[storage/driver] 2017/10/26 18:11:52 get: failed to get "listless-toucan.v1": Get https://10.96.0.1:443/api/v1/namespaces/kube-system/configmaps/listless-toucan.v1: dial tcp 10.96.0.1:443: i/o timeout
[tiller] 2017/10/26 18:11:52 info: generated name listless-toucan is taken. Searching again.
[storage] 2017/10/26 18:11:52 getting release "jittery-rat.v1"
[storage/driver] 2017/10/26 18:12:06 get: failed to get "terrifying-serval.v1": Get https://10.96.0.1:443/api/v1/namespaces/kube-system/configmaps/terrifying-serval.v1: dial tcp 10.96.0.1:443: i/o timeout
[tiller] 2017/10/26 18:12:06 info: generated name terrifying-serval is taken. Searching again.
[storage] 2017/10/26 18:12:06 getting release "wayfaring-dachshund.v1"
[storage/driver] 2017/10/26 18:12:22 get: failed to get "jittery-rat.v1": Get https://10.96.0.1:443/api/v1/namespaces/kube-system/configmaps/jittery-rat.v1: dial tcp 10.96.0.1:443: i/o timeout
[tiller] 2017/10/26 18:12:22 info: generated name jittery-rat is taken. Searching again.
[storage] 2017/10/26 18:12:22 getting release "lucky-arachnid.v1"
[storage/driver] 2017/10/26 18:12:36 get: failed to get "wayfaring-dachshund.v1": Get https://10.96.0.1:443/api/v1/namespaces/kube-system/configmaps/wayfaring-dachshund.v1: dial tcp 10.96.0.1:443: i/o timeout
[tiller] 2017/10/26 18:12:36 info: generated name wayfaring-dachshund is taken. Searching again.
[storage] 2017/10/26 18:12:36 getting release "gangly-lambkin.v1"
[storage/driver] 2017/10/26 18:12:52 get: failed to get "lucky-arachnid.v1": Get https://10.96.0.1:443/api/v1/namespaces/kube-system/configmaps/lucky-arachnid.v1: dial tcp 10.96.0.1:443: i/o timeout
[tiller] 2017/10/26 18:12:52 info: generated name lucky-arachnid is taken. Searching again.
[storage] 2017/10/26 18:12:52 getting release "boiling-kudu.v1"
[storage/driver] 2017/10/26 18:13:06 get: failed to get "gangly-lambkin.v1": Get https://10.96.0.1:443/api/v1/namespaces/kube-system/configmaps/gangly-lambkin.v1: dial tcp 10.96.0.1:443: i/o timeout
[tiller] 2017/10/26 18:13:06 info: generated name gangly-lambkin is taken. Searching again.
[storage] 2017/10/26 18:13:06 getting release "quoting-sloth.v1"
[storage/driver] 2017/10/26 18:13:22 get: failed to get "boiling-kudu.v1": Get https://10.96.0.1:443/api/v1/namespaces/kube-system/configmaps/boiling-kudu.v1: dial tcp 10.96.0.1:443: i/o timeout
[tiller] 2017/10/26 18:13:22 info: generated name boiling-kudu is taken. Searching again.
[storage] 2017/10/26 18:13:22 getting release "nordic-rabbit.v1"
[storage/driver] 2017/10/26 18:13:36 get: failed to get "quoting-sloth.v1": Get https://10.96.0.1:443/api/v1/namespaces/kube-system/configmaps/quoting-sloth.v1: dial tcp 10.96.0.1:443: i/o timeout
[tiller] 2017/10/26 18:13:36 info: generated name quoting-sloth is taken. Searching again.
[tiller] 2017/10/26 18:13:36 warning: No available release names found after 5 tries
[tiller] 2017/10/26 18:13:36 failed install prepare step: no available release name found
[storage/driver] 2017/10/26 18:13:52 get: failed to get "nordic-rabbit.v1": Get https://10.96.0.1:443/api/v1/namespaces/kube-system/configmaps/nordic-rabbit.v1: dial tcp 10.96.0.1:443: i/o timeout
[tiller] 2017/10/26 18:13:52 info: generated name nordic-rabbit is taken. Searching again.
[tiller] 2017/10/26 18:13:52 warning: No available release names found after 5 tries
[tiller] 2017/10/26 18:13:52 failed install prepare step: no available release name found

ํ™•์ธ...
๋‚˜๋Š” ์˜ฅ์–‘๋ชฉ์„ ํ†ตํ•ด ํ”Œ๋ž€๋„ฌ์„ ๊ต์ฒดํ•˜๊ณ  ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

https://github.com/kubernetes/helm/issues/2224#issuecomment -356344286์— ๋”ฐ๋ผ ๋‹ค์Œ ๋ช…๋ น์œผ๋กœ ์˜ค๋ฅ˜๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'

๋งŽ์€ ์ ‘๊ทผ ๋์— ๋งˆ์นจ๋‚ด ์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole = cluster-admin --serviceaccount = kube- system : tiller
kubectl patch deploy --namespace kube-system tiller-deploy -p '{ "spec": { "template": { "spec": { "serviceAccount": "tiller"}}}}'

์œ„์˜ 3 ์ค„๋„์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
kubectl ํด๋ผ์ด์–ธํŠธ : 1.9.6
kubectl ์„œ๋ฒ„ : 1.8.7
helm ํด๋ผ์ด์–ธํŠธ : 2.8.2
helm ์„œ๋ฒ„ : 2.8.2

๋ฌธ์ œ๊ฐ€ ๋‚˜ํƒ€๋‚˜๊ณ  ์–ธ๊ธ‰ ๋œ ์†”๋ฃจ์…˜์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ :

Kube Client Version: 1.10.1
Kube Server Version: 1.10.1
Helm Client: "v2.9.0"
Helm Server: "v2.9.0"

๋˜ํ•œ minikue๋ฅผ ์ผœ๊ณ  helm list ์‹คํ–‰ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
Error: Get http://localhost:8080/api/v1/namespaces/kube-system/configmaps?labelSelector=OWNER%!D(MISSING)TILLER: dial tcp 127.0.0.1:8080: connect: connection refused

@viane ์‹œ๋„ helm init --service-account default ; ๋‹ค๋ฅธ ํ‹ฐ์ผ“์ด์ง€๋งŒ ๋™์ผํ•œ ์ผ๋ฐ˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

@viane ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค. (๊ฒฝ์šด๊ธฐ ์„œ๋น„์Šค ๋ฐ ๋ฐฐํฌ์— kubectl delete ๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

$ kubectl create serviceaccount --namespace kube-system tiller
$ kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
$ helm init --service-account tiller

๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ๊ทธ๊ฒƒ์„ ๊ณ ์ณค์Šต๋‹ˆ๋‹ค.

helm reset && helm init ๋Š” ์ €์—๊ฒŒ ์ ํ•ฉํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ ์œ„์˜ RBAC ์†”๋ฃจ์…˜๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
๋งˆ์ง€๋ง‰์œผ๋กœ Tiller๋ฅผ ์‚ญ์ œ ํ•œ ๋‹ค์Œ https://github.com/kubernetes/helm/issues/3055#issuecomment -385296641์˜ ์ œ์•ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์‹œ ์ž‘๋™ํ•˜๊ฒŒํ–ˆ์Šต๋‹ˆ๋‹ค.

kubectl delete deployment tiller-deploy --namespace kube-system
helm init --upgrade --service-account default

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‚˜๋Š” ๋‹ค์Œ์„ ์‹œ๋„ํ–ˆ๋‹ค

kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'

์™€ ๋”๋ถˆ์–ด
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
"์„œ๋ฒ„ ์˜ค๋ฅ˜ (BadRequest) : ๊ฐœ์ฒด ํ‚ค ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘์„ ์ฐพ๋Š” ์ž˜๋ชป๋œ ๋ฌธ์ž '๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค."

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ ๋ช…๋ น์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

$ kubectl create serviceaccount --namespace kube-system tiller
$ kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
$ helm init --service-account tiller

๋‚˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์•˜๋‹ค :
failed: clusterroles.rbac.authorization.k8s.io .... [clusterroles.rbac.authorization.k8s.io "cluster-admin" not found]

๋„์™€์ฃผ์„ธ์š”! ...
๋‹ค์Œ์€ ๋‚ด ์ •๋ณด์ž…๋‹ˆ๋‹ค.
ํˆฌ๊ตฌ ๋ฒ„์ „

Client: &version.Version{SemVer:"v2.9.0", GitCommit:"f6025bb9ee7daf9fee0026541c90a6f557a3e0bc", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.9.0", GitCommit:"f6025bb9ee7daf9fee0026541c90a6f557a3e0bc", GitTreeState:"clean"}

kubectl ๋ฒ„์ „

Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.0", GitCommit:"925c127ec6b946659ad0fd596fa959be43f0cc05", GitTreeState:"clean", BuildDate:"2017-12-15T21:07:38Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"windows/amd64"}
Server Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.6", GitCommit:"9f8ebd171479bec0ada837d7ee641dec2f8c6dd1", GitTreeState:"clean", BuildDate:"2018-03-21T15:13:31Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

minikube ๋ฒ„์ „
minikube version: v0.25.0

์ด์ƒํ•œ ์ ์€ Helm์„ ์‚ฌ์šฉํ•˜์—ฌ 5 ์›” 9 ์ผ์— stable / nginx-ingress๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์„ฑ๊ณต์ ์œผ๋กœ ์„ค์น˜ ํ•œ ๋‹ค์Œ Kubernetes๋ฅผ ์‚ญ์ œ (์—ฐ์Šต์šฉ) ํ•œ ๋‹ค์Œ ์˜ค๋Š˜ Kubernetes๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜๊ณ  stable / nginx-ingress๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ค๋ฅ˜.

๋ฏธ๋ฆฌ ์ง€์› ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

@ nguyenhuuloc304 ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. cluster-admin ClusterRole์„ ๋งŒ๋“ค์–ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค.

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  annotations:
    rbac.authorization.kubernetes.io/autoupdate: "true"
  creationTimestamp: null
  labels:
    kubernetes.io/bootstrapping: rbac-defaults
  name: cluster-admin
rules:
- apiGroups:
  - '*'
  resources:
  - '*'
  verbs:
  - '*'
- nonResourceURLs:
  - '*'
  verbs:
  - '*'

๋‚˜๋Š” ์ด๊ฒƒ์„ ๊ฐ€์ด๋“œ ์–ด๋”˜๊ฐ€์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ •๋ง ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. azure์˜ AKS๋Š” ๊ธฐ๋ณธ ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ์ž ์—ญํ• ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ๋“ค์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.
https://github.com/jenkins-x/jx/issues/485#issuecomment -376804810
https://github.com/Azure/acs-engine/issues/1892#issuecomment -353960778์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ACS์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

redis๋ฅผ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.
kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole = cluster-admin --serviceaccount = kube- system : tiller
helm init --service-account tiller --upgrade
helm update repo. # ํผ์ฆ์˜ ๋งˆ์ง€๋ง‰ ์กฐ๊ฐ
helm install stable / redis-๋ฒ„์ „ 3.3.5

์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.
kube ํด๋ผ์ด์–ธํŠธ : v1.10.4
kube ์„œ๋ฒ„ : v1.9.6
helm ํด๋ผ์ด์–ธํŠธ / erver v2.9.1

# helm install stable/prometheus --namespace=monitoring --set rbac.create="true"
Error: no available release name found

# helm search | grep prometheus
coreos/grafana                          0.0.35                                          Grafana instance for kube-prometheus
coreos/kube-prometheus                  0.0.82                                          Manifests, dashboards, and alerting rules for e...
coreos/prometheus                       0.0.43                                          Prometheus instance created by the CoreOS Prome...
coreos/prometheus-operator              0.0.26          0.20.0                          Provides easy monitoring definitions for Kubern...
stable/prometheus                       6.7.2           2.2.1                           Prometheus is a monitoring system and time seri...

์ด ๋ผ์ธ์„ ์‹คํ–‰ํ•˜๊ณ  ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์‹œ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! : kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller

#kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
clusterrolebinding.rbac.authorization.k8s.io "tiller-cluster-rule" created
[root@ip-172-31-90-223 charts]# helm install stable/prometheus --namespace=monitoring --set rbac.create="true"
NAME:   ungaged-sloth
LAST DEPLOYED: Thu Jun 14 23:52:31 2018
NAMESPACE: monitoring
STATUS: DEPLOYED

Error: no available release name found ์ด ํ‘œ์‹œ๋˜๋Š” ๋ฐ ์™œ ๊ทธ๋ ‡๊ฒŒ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋‚˜์š”? ์ •์งํ•˜๊ฒŒ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ๋ฐ›๋Š” ๋ฐ 5 ๋ถ„์ด ๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์ž‘๋™ํ•˜๋„๋ก ์‹œ๋„ํ•ด์•ผํ•˜๋Š” 40,000 ๊ฐœ์˜ ์ž‘์—…์— 5m * 40,000์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

์ €์—๊ฒŒ๋Š” ๋‹จ์ผ ์†”๋ฃจ์…˜์ด ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ๋‚˜๋Š” ์ž˜ ๊ฒฝ์šด๊ธฐ ๋“ฑ์œผ๋กœ minikube์„ ๋‹ค์‹œ ์„ค์น˜ํ•˜๊ณ  ๋‚ด๊ฐ€ ๊ทธ๋žฌ์–ด ์ด ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„ :

ํด๋Ÿฌ์Šคํ„ฐ์— RBAC (์—ญํ•  ๊ธฐ๋ฐ˜ ์•ก์„ธ์Šค ์ œ์–ด)๊ฐ€ ํ™œ์„ฑํ™” ๋œ ๊ฒฝ์šฐ ๊ณ„์†ํ•˜๊ธฐ ์ „์— ์„œ๋น„์Šค ๊ณ„์ • ๋ฐ ๊ทœ์น™์„ ๊ตฌ์„ฑ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์‹ค์ œ๋กœ ๋ฌธ์„œ์— ์–ธ๊ธ‰๋˜์–ด ์žˆ์ง€๋งŒ์ด ๋‹จ๋ฝ ๋’ค์— ๋‚˜ํƒ€๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ์•ฝ๊ฐ„ ํ˜ผ๋ž€ ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

๊ณต์œ ๊ฐ€ ๋ฌธ์ œ๊ฐ€๋˜์ง€ ์•Š๋Š” ์‚ฌ์„ค ๋„คํŠธ์›Œํฌ์˜ ํด๋Ÿฌ์Šคํ„ฐ ๋˜๋Š” minikube์™€ ๊ฐ™์ด ์™„์ „ํžˆ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹ํด๋Ÿฌ์Šคํ„ฐ์—์„œ Helm์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ณด์•ˆ ๊ตฌ์„ฑ์„ ์ ์šฉํ•˜์ง€ ์•Š๋Š” ๊ธฐ๋ณธ ์„ค์น˜๊ฐ€ ๊ดœ์ฐฎ์œผ๋ฉฐ ํ™•์‹คํžˆ ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ๋ณด์•ˆ ๋‹จ๊ณ„์—†์ด Helm์„ ์„ค์น˜ํ•˜๋ ค๋ฉด Helm์„ ์„ค์น˜ ํ•œ ๋‹ค์Œ Helm์„ ์ดˆ๊ธฐํ™”ํ•˜์‹ญ์‹œ์˜ค.

์•„๋ž˜ ์ง€์นจ์€ helm v2.11.0 ๋ฐ kube 1.12.1 ๋ฒ„์ „์—์„œ๋„ ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

$ kubectl create serviceaccount --namespace kube-system tiller
$ kubectl create clusterrolebinding tiller-cluster-rule --clusterrole = cluster-admin --serviceaccount = kube- system : tiller
$ helm init --service-account tiller

sudo iptables -P FORWARD ACCEPT

์œ„์˜ ๋ช…๋ น์€ ์˜ค๋ฅ˜๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด๊ฐ€ํ•ด์•ผ๋งŒํ•˜๋Š” ์ „๋ถ€์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์†”๋ฃจ์…˜์€ ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ฌธ์•ˆ ์ธ์‚ฌ
Ranga

๊ฐ™์€ ๋ฐฉ์‹์ด์ง€๋งŒ ํ…Œ๋ผ ํผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  resource "kubernetes_service_account" "tiller" {
    metadata {
      name = "tiller"
      namespace = "kube-system"
    }
  }

  resource "kubernetes_cluster_role_binding" "tiller-cluster-rule" {

    metadata {
      name = "tiller-cluster-rule"
    }

    role_ref {
      kind = "ClusterRole"
      name = "cluster-admin"
      api_group = "rbac.authorization.k8s.io"
    }

    subject {
      kind = "ServiceAccount"
      namespace = "kube-system"
      name = "tiller"
      api_group = ""
    }

    provisioner "local-exec" {
      command = "helm init --service-account tiller"
    }
  }

์ด๊ฑฐ ํ•ด๋ดค ์–ด?
sudo iptables -P FORWARD ACCEPT
๋ฌธ์•ˆ ์ธ์‚ฌ
Ranga

์œ„์˜ ๋ชจ๋“  ์˜ต์…˜์„ ํ—›๋˜์ด ์‹œ๋„ํ–ˆ๊ณ  rangapv๊ฐ€ ์ œ์•ˆํ•œ ์˜ต์…˜์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์œ„์˜ ์•„๋ฌด๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์œ„์—์„œ ์–ธ๊ธ‰ ํ•œ ์†”๋ฃจ์…˜ ์ค‘ ์–ด๋Š ๊ฒƒ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

$ kubectl ๋ฒ„์ „
ํด๋ผ์ด์–ธํŠธ ๋ฒ„์ „ : version.Info {Major : "1", Minor : "12", GitVersion : "v1.12.4", GitCommit : "f49fa022dbe63faafd0da106ef7e05a29721d3f1", GitTreeState : "clean", BuildDate : "2018-12-14T07 : 10 : 00Z ", GoVersion :"go1.10.4 ", ์ปดํŒŒ์ผ๋Ÿฌ :"gc ", ํ”Œ๋žซํผ :"darwin / amd64 "}
์„œ๋ฒ„ ๋ฒ„์ „ : version.Info {Major : "1", Minor : "13", GitVersion : "v1.13.2", GitCommit : "cff46ab41ff0bb44d8584413b598ad8360ec1def", GitTreeState : "clean", BuildDate : "2019-01-10T23 : 28 : 14Z ", GoVersion :"go1.11.4 ", ์ปดํŒŒ์ผ๋Ÿฌ :"gc ", ํ”Œ๋žซํผ :"linux / amd64 "}

$ helm ๋ฒ„์ „
ํด๋ผ์ด์–ธํŠธ : & version.Version {SemVer : "v2.12.3", GitCommit : "eecf22f77df5f65c823aacd2dbd30ae6c65f186e", GitTreeState : "clean"}
์„œ๋ฒ„ : & version.Version {SemVer : "v2.12.3", GitCommit : "eecf22f77df5f65c823aacd2dbd30ae6c65f186e", GitTreeState : "clean"}

$ kubectl create serviceaccount --namespace kube-system tiller
์„œ๋ฒ„ ์˜ค๋ฅ˜ (AlreadyExists) : ์„œ๋น„์Šค ๊ณ„์ • "tiller"๊ฐ€ ์ด๋ฏธ ์žˆ์Šต๋‹ˆ๋‹ค.
Ravis-MacBook-Pro-2 : .kube ravi $ kubectl create clusterrolebinding tiller-cluster-rule --clusterrole = cluster-admin --serviceaccount = kube- system : tiller
์„œ๋ฒ„ ์˜ค๋ฅ˜ (AlreadyExists) : clusterrolebindings.rbac.authorization.k8s.io "tiller-cluster-rule"์ด ์ด๋ฏธ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
Ravis-MacBook-Pro-2 : .kube ravi $ helm init --service-account tiller --upgrade
$ HELM_HOME์ด /Users/ravi/.helm์— ๊ตฌ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Tiller (Helm ์„œ๋ฒ„ ์ธก ๊ตฌ์„ฑ ์š”์†Œ)๊ฐ€ ํ˜„์žฌ ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
ํ—ฌ๋ฐ ํ•ดํ”ผ!
Ravis-MacBook-Pro-2 : .kube ravi $ helm ์—…๋ฐ์ดํŠธ ์ €์žฅ์†Œ
"update"๋ช…๋ น์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 'helm repo update'๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

์ฐจํŠธ ์ €์žฅ์†Œ์—์„œ ์ตœ์‹  ์ •๋ณด๋ฅผ ๊ฐ€์ ธ ์˜ค๋Š” ๋™์•ˆ ์ž ์‹œ ๊ธฐ๋‹ค๋ ค์ฃผ์„ธ์š” ...
... ๋กœ์ปฌ ์ฐจํŠธ ์ €์žฅ์†Œ ๊ฑด๋„ˆ ๋›ฐ๊ธฐ
... "์•ˆ์ •๋œ"์ฐจํŠธ ์ €์žฅ์†Œ์—์„œ ์„ฑ๊ณต์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.
์—…๋ฐ์ดํŠธ ์™„๋ฃŒ. โŽˆ ํ•ดํ”ผ ํ—ฌ๋ฐ! โŽˆ

Ravis-MacBook-Pro-2 : .kube ravi $ helm install stable / redis
์˜ค๋ฅ˜ : ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฆด๋ฆฌ์Šค ์ด๋ฆ„์ด ์—†์Šต๋‹ˆ๋‹ค.

์•ผ,

ํด๋Ÿฌ์Šคํ„ฐ ์—ญํ•  ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์ด์—†๋Š”๋ณด๋‹ค ์•ˆ์ „ํ•œ ์†”๋ฃจ์…˜ :

  1. $ {TILLER_NAMESPACE}์—์„œ ๋‹ค์Œ ์—ญํ• ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
TILLER_NAMESPACE='your tiller namespace'
cat <<EOF | kubectl create -n ${TILLER_NAMESPACE} -f -
- kind: Role
  apiVersion: v1
  metadata:
    name: tiller
  rules:
  - apiGroups:
    - ""
    resources:
    - configmaps
    verbs:
    - create
    - get
    - list
    - update
    - delete
  - apiGroups:
    - ""
    resources:
    - namespaces
    verbs:
    - get
EOF
  1. ์„œ๋น„์Šค ๊ณ„์ • ์ƒ์„ฑ, ๋กœ์ปฌ ์—ญํ•  ๋ฐ”์ธ๋”ฉ ๋ฐ ํŒจ์น˜ ๋ฐฐํฌ
kubectl create serviceaccount --namespace ${TILLER_NAMESPACE} tiller
kubectl create rolebinding tiller-rule --role=tiller --serviceaccount=${TILLER_NAMESPACE}:tiller
kubectl patch deploy --namespace ${TILLER_NAMESPACE} tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'

์œ„์˜ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

ํ‹ธ๋Ÿฌ ์ฐจํŠธ๋ฅผ ํ”„๋กœ์ ํŠธ์— ๋ฐฐํฌํ•˜๋ ค๋ฉด ํ‹ธ๋Ÿฌ ํŽธ์ง‘ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

kubectl create rolebinding tiller-edit-rights -n ${YOUR-PROJECT_NAMESPACE} --clusterrole=edit --serviceaccount=${TILLER_NAMESPACE}:tiller

์œ„์˜ ์†”๋ฃจ์…˜ ์ค‘ ์–ด๋Š ๊ฒƒ๋„ ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์ง€๋งŒ ๋‹ค์Œ ๋งํฌ์˜ ์ง€์นจ์€ ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

https://scriptcrunch.com/helm-error-no-available-release/

์œ„์˜ ์†”๋ฃจ์…˜ ์ค‘ ์–ด๋Š ๊ฒƒ๋„ ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์ง€๋งŒ ๋‹ค์Œ ๋งํฌ์˜ ์ง€์นจ์€ ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

https://scriptcrunch.com/helm-error-no-available-release/

๊ณ ๋งˆ์›Œ ์นœ๊ตฌ, ์ž‘๋™

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰