kubernetes - K8s - 跨命名空间使用服务帐户
问题描述
我在默认命名空间中有一个服务帐户,它带有一个 clusterRoleBinding 到一个可以观察作业的 clusterRole。
我希望在任何命名空间中使用此服务帐户,而不必在每个新命名空间中定义一个新服务帐户。初始化容器使用服务帐户检查作业是否已完成,然后才允许继续部署。
不确定我需要提供哪些额外信息,但会根据要求提供。
解决方案
您可以简单地从 RoleBinding 中的另一个命名空间引用 ServiceAccount:
例如,以下示例用于将一个命名空间中的服务帐户引用到另一个命名空间,以仅读取 pod。
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
推荐阅读
- android - 如何在安装应用程序和打开应用程序之前获取用户详细信息?
- r - 如何删除连续字母超过 3 个的单词?
- swift - 如何计算 DFT 中每个 bin 的能量?
- python - 将文件从一台电脑发送到另一台安装了owncloud的电脑
- javascript - 函数内部命名函数表达式的模式
- python - 如果其中一个是字符串,如何异或两个十六进制值?
- excel - 如何对几个参数进行排序并找出某些行?
- php - 回显 codeIgniter 函数的结果需要 jquery
- angular - 使用 Angular6 没有以反应形式调用值更改
- python - 直接在两台远程机器之间使用 Python Paramiko 的 SFTP