首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >helm list :不能在名称空间"kube-system“中列出configmap。

helm list :不能在名称空间"kube-system“中列出configmap。
EN

Stack Overflow用户
提问于 2017-10-10 17:25:20
回答 8查看 54.6K关注 0票数 116

我在kubernetes 8集群上安装了helm 2.6.2。helm init工作得很好。但是,当我运行helm list时,会出现这个错误。

代码语言:javascript
复制
 helm list
Error: configmaps is forbidden: User "system:serviceaccount:kube-system:default" cannot list configmaps in the namespace "kube-system"

如何修复此RABC错误消息?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2017-10-11 12:29:08

一旦这些命令:

代码语言:javascript
复制
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"}}}}'      
helm init --service-account tiller --upgrade

问题已经解决了。

票数 236
EN

Stack Overflow用户

发布于 2018-11-13 09:03:07

更安全的答案

接受的答案提供了对Helm的完全管理访问,这并不是最好的安全解决方案。只要做更多的工作,我们就可以限制Helm对特定命名空间的访问。舵机文件中的更多细节。

代码语言:javascript
复制
$ kubectl create namespace tiller-world
namespace "tiller-world" created
$ kubectl create serviceaccount tiller --namespace tiller-world
serviceaccount "tiller" created

定义一个允许Tiller管理tiller-world中的所有资源的角色,就像在role-tiller.yaml中一样

代码语言:javascript
复制
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: tiller-manager
  namespace: tiller-world
rules:
- apiGroups: ["", "batch", "extensions", "apps"]
  resources: ["*"]
  verbs: ["*"]

然后跑:

代码语言:javascript
复制
$ kubectl create -f role-tiller.yaml
role "tiller-manager" created

rolebinding-tiller.yaml中,

代码语言:javascript
复制
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: tiller-binding
  namespace: tiller-world
subjects:
- kind: ServiceAccount
  name: tiller
  namespace: tiller-world
roleRef:
  kind: Role
  name: tiller-manager
  apiGroup: rbac.authorization.k8s.io

然后跑:

代码语言:javascript
复制
$ kubectl create -f rolebinding-tiller.yaml
rolebinding "tiller-binding" created

之后,您可以运行helm inittiller-world命名空间中安装Tiller。

代码语言:javascript
复制
$ helm init --service-account tiller --tiller-namespace tiller-world

现在,在您的环境变量中使用--tiller-namespace tiller-world或设置TILLER_NAMESPACE=tiller-world作为所有命令的前缀。

更多未来证明答案

别再用蒂勒了。舵机3完全消除了对Tiller的需求。如果使用Helm 2,可以使用helm template从Helm图表生成yaml,然后运行kubectl apply将对象应用到Kubernetes集群。

代码语言:javascript
复制
helm template --name foo --namespace bar --output-dir ./output ./chart-template
kubectl apply --namespace bar --recursive --filename ./output -o yaml
票数 37
EN

Stack Overflow用户

发布于 2018-07-16 14:12:17

Helm使用“默认”服务帐户运行。您应该为它提供权限。

只读权限的

代码语言:javascript
复制
kubectl create rolebinding default-view --clusterrole=view --serviceaccount=kube-system:default --namespace=kube-system

用于管理访问的:例如:安装软件包.

代码语言:javascript
复制
kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default
票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46672523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档