Kubernetes RoleBinding 可以在不同的命名空间中拥有主题吗?

问题描述 投票:0回答:1

RoleBinding 主题确实有一个

namespace
字段,但是当我在一个命名空间中创建一个 RoleBinding,而主题在另一个命名空间中时,它似乎不起作用。

完整示例:

apiVersion: v1
kind: Namespace
metadata:
  name: namespace1

---

apiVersion: v1
kind: Namespace
metadata:
  name: namespace2

---

apiVersion: v1
kind: ServiceAccount
metadata:
  name: test-sa
  namespace: namespace1

---

apiVersion: v1
kind: Secret
metadata:
  name: test-secret
  namespace: namespace2
type: Opaque
data:
  foo: "Zm9vCg=="

---
 
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: test-secret-reader
  namespace: namespace2
rules:
- apiGroups: [""]
  resources: ["secret"]
  verbs: ["get"]
 
---

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: test-secret-reader
  namespace: namespace2
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: test-secret-reader
subjects:
- kind: ServiceAccount
  name: test-sa
  namespace: namespace1

使用

kubectl auth can-i
进行测试:

$ kubectl auth can-i get secret -n namespace2 --as system:serviceaccount:namespace1:test-sa
no
kubernetes rbac k8s-serviceaccount
1个回答
0
投票

角色和角色绑定是命名空间范围的资源。它们仅在命名空间内工作。您不能在一个命名空间中拥有角色,而在另一命名空间中拥有主题。

© www.soinside.com 2019 - 2024. All rights reserved.