如果照著手冊使用 helm init
安裝完 Helm 之後,使用 helm list
指令,會看到這樣的錯誤:
1 | $ helm list |
首先,在helm init前准备一个ServiceAccount
setup-helm-rbac.yaml
1 | apiVersion: v1 |
角色:Role,拥有资源的权限,可以看做是一个职业
账号:ServiceAccount,用户使用K8S API的入口
当您(真人用户)访问集群(例如使用
kubectl
命令)时,apiserver
会将您认证为一个特定的User Account
(目前通常是admin
,除非您的系统管理员自定义了集群配置)。Pod
容器中的进程也可以与apiserver
联系。 当它们在联系apiserver
的时候,它们会被认证为一个特定的Service Account
(例如default)。
刪除原本的 Tiller
1 | $ kubectl delete deployment tiller-deploy --namespace=kube-system |
重新初始化 Helm 並且指定要使用的 Service Account
1 | $ helm init --service-account tiller |
如果helm init时没指定账号,也可以用以下命令补上
1 | $ kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}' |
参考资料
Helm 部署在 GKE 上的權限問題