Kubernetes 为多个名称空间创建serviceaccount

Kubernetes 为多个名称空间创建serviceaccount,kubernetes,Kubernetes,我正在尝试使用相同的令牌在Kubernetes中创建一个serviceaccount,并且只允许他们访问三个名称空间。这在库伯内特斯可能吗 我所做的: 我创建我的服务帐户: kubectl create serviceaccount myuser 我创建了一个角色: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: labels: kubernetes.io/bootstrapping: rba

我正在尝试使用相同的令牌在Kubernetes中创建一个serviceaccount,并且只允许他们访问三个名称空间。这在库伯内特斯可能吗

我所做的:

我创建我的服务帐户:

kubectl create serviceaccount myuser
我创建了一个角色:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    kubernetes.io/bootstrapping: rbac-defaults
  name: myrole
rules:
- apiGroups:
  - ""
  resources:
  - pods/attach
  - pods/exec
  - pods/portforward
  - pods/proxy
  - secrets
  - services/proxy
  verbs:
  - get
  - list
  - watch
我创建了一个ClusterRoleBinding

kind: ClusterRoleBinding
metadata:
  labels:
  name: myRoleBinding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: myrole
subjects:
- kind: ServiceAccount
  name: myuser
  namespace: wordpress
- kind: ServiceAccount
  name: myuser
  namespace: mysql
- kind: ServiceAccount
  name: myuser
  namespace: redis
我试图在名称空间wordpress中获取机密,但得到以下结果:

Error from server (Forbidden): pods is forbidden: User
"system:serviceaccount:default:myuser" cannot list resource "secrets" in API group
 "" in the namespace "wordpress"

希望有人能帮上忙。

试着把这个放在你的集群角色里

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    kubernetes.io/bootstrapping: rbac-defaults
  name: myrole
rules:
- apiGroups:
  - "*"
  resources:
  - pods/attach
  - pods/exec
  - pods/portforward
  - pods/proxy
  - secrets
  - services/proxy
  verbs:
  - get
  - list
  - watch

您希望将该clusterrole绑定到所有三个名称空间中的服务帐户。为此,请在每个命名空间中创建一个命名空间角色绑定

i、 e


您正在使用
默认
命名空间中的服务帐户,该帐户不是您分配角色的帐户之一。谢谢!这就是我要找的!
$ kubectl create rolebinding myrolebinding --serviceaccount=default:myuser --clusterrole=myrole --namespace=wordpress

$ kubectl create rolebinding myrolebinding --serviceaccount=default:myuser --clusterrole=myrole --namespace=namespace2

$ kubectl create rolebinding myrolebinding --serviceaccount=default:myuser --clusterrole=myrole --namespace=namespace3