kar*_*ina 8 kubernetes kubernetes-helm
我在Google Kubernetes Engine上安装了一个集群.
然后,我创建了命名空间"staging"
$ kubectl get namespaces
default Active 26m
kube-public Active 26m
kube-system Active 26m
staging Active 20m
Run Code Online (Sandbox Code Playgroud)
然后,我切换到在暂存命名空间中操作
$ kubectl config use-context staging
$ kubectl config current-context
staging
Run Code Online (Sandbox Code Playgroud)
然后,我在staging命名空间上使用helm安装了postgresql
helm install --name staging stable/postgresql
Run Code Online (Sandbox Code Playgroud)
但我得到了:
错误:发布分段失败:禁止名称空间"staging":用户"system:serviceaccount:kube-system:default"无法在名称空间"staging"中获取名称空间:未知用户"system:serviceaccount:kube-system:default"
这是什么意思..??如何让它工作.. ??
谢谢你..
aer*_*ite 19
由于您的群集已启用RBAC,因此您的tillerPod 似乎没有足够的权限.
您正在使用default缺少足够RBAC权限的ServiceAccount,分蘖需要.
您只需创建ClusterRole,ClusterRoleBinding和ServiceAccount即可.有了它们,您可以为您的Pod提供必要的许可.
按照以下步骤操作
_1.创建ClusterRoletiller
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: tiller
rules:
- apiGroups: ["*"]
resources: ["*"]
verbs: ["*"]
Run Code Online (Sandbox Code Playgroud)
注意:我在这里使用了完全许可.
_2.tiller在kube-system命名空间中创建ServiceAccount
$ kubectl create sa tiller -n kube-system
Run Code Online (Sandbox Code Playgroud)
_3.创建ClusterRoleBindingtiller
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
Run Code Online (Sandbox Code Playgroud)
现在,您需要在分蘖部署中使用此ServiceAccount.
正如您已有的那样,编辑它
$ kubectl edit deployment -n kube-system tiller-deploy
Run Code Online (Sandbox Code Playgroud)
设置serviceAccountName为tillerPodSpec下
阅读更多关于RBAC的信息
| 归档时间: |
|
| 查看次数: |
7178 次 |
| 最近记录: |