1

情况:
- 用户 A、B、C、D
- 团队 1:用户 A、用户 B
- 团队 2:用户 C、用户 D

期望:
- 每个用户都有私有卷
- 每个团队都有一个共享卷 -> 团队中的用户可以看到共享卷
- 根据权限,一些用户可以看到两者共享卷

现在搜索了很长时间,在文档中没有看到解决方案。

想法:
- 使用命名空间!问题 --> 无法再看到其他命名空间的共享卷

4

1 回答 1

1

这是您将如何做的一个例子。您可以为不同的团队使用命名空间。

然后,您可以Role为每个卷使用 a 并相应地分配给用户。(角色是命名空间的)。一个示例角色将是:

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: team1
  name: volume-access
rules:
- apiGroups: [""]
  resources: ["persistentvolume", "persistentvolumeclaims"]
  resourceNames: ["my-volume"]
  verbs: ["update", "get", "list", "patch", "watch"]

那么您的绑定将类似于:

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: pv-binding
  namespace: team1
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: volume-access
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: usera
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: userb

以上内容将由用户 A 和用户 B 共享。您可以为私有卷创建单独的角色。

于 2019-01-28T04:46:51.740 回答