无法在指定的命名空间上安装kubernetes图表
我已经在Google Kubernetes引擎上安装了一个集群 然后,我创建了名称空间“staging” 然后,我切换到在临时名称空间中操作无法在指定的命名空间上安装kubernetes图表,kubernetes,kubernetes-helm,Kubernetes,Kubernetes Helm,我已经在Google Kubernetes引擎上安装了一个集群 然后,我创建了名称空间“staging” 然后,我切换到在临时名称空间中操作 $ kubectl config use-context staging $ kubectl config current-context staging helm install --name staging stable/postgresql $ kubectl create sa tiller -n kube-system 然后,我使用helm
$ kubectl config use-context staging
$ kubectl config current-context
staging
helm install --name staging stable/postgresql
$ kubectl create sa tiller -n kube-system
然后,我使用helm on staging命名空间安装了postgresql
$ kubectl config use-context staging
$ kubectl config current-context
staging
helm install --name staging stable/postgresql
$ kubectl create sa tiller -n kube-system
但我得到了:
错误:发布转移失败:命名空间“转移”被禁止:用户“系统:serviceaccount:kube系统:默认”无法获取命名空间“转移”:未知用户“系统:serviceaccount:kube系统:默认”中的命名空间
这是什么意思。。??如何让它工作
谢谢您。由于您的群集已启用RBAC,您的
舵柄吊舱似乎没有足够的权限
tiller要求,您使用的是缺少足够RBAC权限的default
ServiceAccount
创建ClusterRole、ClusterRoleBinding和ServiceAccount所需的一切。有了它们,你可以为你的Pod提供必要的许可
遵循以下步骤
_一,。创建ClusterRoletiller
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: tiller
rules:
- apiGroups: ["*"]
resources: ["*"]
verbs: ["*"]
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: tiller
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system
apiGroup: ""
roleRef:
kind: ClusterRole
name: tiller
apiGroup: rbac.authorization.k8s.io
注意:我在这里使用了完全权限
_二,。在kube系统
命名空间中创建ServiceAccounttiller
$ kubectl config use-context staging
$ kubectl config current-context
staging
helm install --name staging stable/postgresql
$ kubectl create sa tiller -n kube-system
_三,。创建ClusterRoleBindingtiller
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: tiller
rules:
- apiGroups: ["*"]
resources: ["*"]
verbs: ["*"]
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: tiller
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system
apiGroup: ""
roleRef:
kind: ClusterRole
name: tiller
apiGroup: rbac.authorization.k8s.io
现在,您需要在tiller部署中使用此ServiceAccount
因为您已经有了一个,请编辑它
$ kubectl edit deployment -n kube-system tiller-deploy
将PodSpec下的serviceAccountName
设置为tiller
阅读更多关于的信息,尝试:
正如Scott S在评论中建议的那样。你能用kubectl config get contexts
更新你的帖子吗?你的tiller pod没有获取命名空间的权限。您需要更新在toiler播客中使用的角色谢谢!这是用户“system:servicecomport:kube system:default”无法在我遇到的名称空间问题中获取名称空间的唯一解决方案。对于未来的读者,当@aerokite撰写有关创建ClusterRole tiller和ClusterRoleBinding tiller的文章时,将其yaml复制并粘贴到两个不同的文件中,然后在每个文件上调用kubectl create-f
,我无法理解tiller部署部分的编辑,因为我在PodSpec下找不到serviceAccountName。我确实在网页上找到了helminit--upgrade--service account tiller
,这似乎解决了最后一个问题。