我可以将一个服务帐户连接到 Kubernetes 中的多个命名空间吗?
Can I connect one service account to multiple namespaces in Kubernetes?
我有几个命名空间 - 假设 NS1
和 NS2
。我在其中创建了服务帐户 - NS1
中的 sa1
和 NS2
中的 sa2
。我已经为 sa1
创建了角色和角色绑定,以便在 NS1
和 sa2
中完成 NS2
中的事情。
我想要的是在 NS2
内授予 sa1
某些访问权限(只说 Pod Reader 角色)。
我想知道这是否可能?
您可以简单地从 RoleBinding 中的另一个命名空间引用 ServiceAccount:
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
name: pod-reader
namespace: ns2
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: pod-reader-from-ns1
namespace: ns2
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: pod-reader
subjects:
- kind: ServiceAccount
name: ns1-service-account
namespace: ns1
我有几个命名空间 - 假设 NS1
和 NS2
。我在其中创建了服务帐户 - NS1
中的 sa1
和 NS2
中的 sa2
。我已经为 sa1
创建了角色和角色绑定,以便在 NS1
和 sa2
中完成 NS2
中的事情。
我想要的是在 NS2
内授予 sa1
某些访问权限(只说 Pod Reader 角色)。
我想知道这是否可能?
您可以简单地从 RoleBinding 中的另一个命名空间引用 ServiceAccount:
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
name: pod-reader
namespace: ns2
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: pod-reader-from-ns1
namespace: ns2
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: pod-reader
subjects:
- kind: ServiceAccount
name: ns1-service-account
namespace: ns1