kubernetes 组定义。创建和详细信息

Jxa*_*dro 8 kubernetes

如何在 kubernetes 中创建组?kubernetes 中创建的默认组有哪些?

在我的 kubernetes 安装中,这是 ClusterRoleBinding 的主题部分:

subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: Group
  name: default
- apiGroup: rbac.authorization.k8s.io
  kind: Group
  name: system:serviceaccounts:default
- kind: ServiceAccount
  name: default
  namespace: kube-system
- apiGroup: rbac.authorization.k8s.io
  kind: Group
  name: system:nodes
- apiGroup: rbac.authorization.k8s.io
  kind: Group
  name: federation-system
- apiGroup: rbac.authorization.k8s.io
  kind: Group
  name: system:serviceaccounts:federation-system
Run Code Online (Sandbox Code Playgroud)

例如,如何查看“默认”组的组件。kubectl 获取 xxx?我如何创建自己的群组?

任何指向特定于组的文档的指针,而不是关于 RBAC 或授权的文档(我总是陷入 k8s 文档并且它不解释组),我们将不胜感激。

谢谢。

Sav*_*oto 6

您不在 Kubernetes 中创建组,但这些组是在身份提供程序中定义的。

例如,我使用 Openstack 的 Keystone 作为身份提供者。我使用不记名令牌登录,Kubernetes 验证连接到 Keystone 的令牌,并用我的用户名和 Openstack 中的项目 UUID 进行应答。项目 UUID 就是 Kubernetes 中的组。

我可以写以下内容:

---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: read-pods
  namespace: default
subjects:
- kind: Group
  name: <openstack_project_uuid>
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: pod-reader
  apiGroup: rbac.authorization.k8s.io
Run Code Online (Sandbox Code Playgroud)

或者如果我想使用用户

---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: read-pods
  namespace: default
subjects:
- kind: User
  name: <openstack_user_name>
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: pod-reader
  apiGroup: rbac.authorization.k8s.io
Run Code Online (Sandbox Code Playgroud)

可能有人用 LDAP 示例发布了类似的答案。我一直只使用 Openstack Keystone。但我希望我回答了你的问题。