设置 RBAC

在集群中设置基于角色的访问控制 (RBAC) 以控制可以查看和创建 Kueue 对象的用户的类型。

此页面展示了如何在集群中设置基于角色的访问控制 (RBAC) 以控制可以查看和创建 Kueue 对象的用户的类型。

此页面适用于 批处理管理员

开始之前

确保满足以下条件

  • 正在运行 Kubernetes 集群。
  • kubectl 命令行工具与集群通信。
  • 已安装 Kueue.

本页假设您已熟悉 kubernetes 中的 RBAC

安装中包含的 ClusterRoles

安装 Kueue 时,将创建以下一组 ClusterRoles,用于我们假设将与 Kueue 交互的两个主要角色

  • kueue-batch-admin-role 包含管理 ClusterQueues、Queues、Workloads 和 ResourceFlavors 的权限。
  • kueue-batch-user-role 包含管理 Jobs 以及查看 Queues 和 Workloads 的权限。

向批处理管理员授予权限

批处理管理员通常需要所有命名空间的 kueue-batch-admin-role ClusterRole。

要将 kueue-batch-admin-role 角色绑定到由用户 admin@example.com 表示的批处理管理员,请使用类似于以下内容的清单创建一个 ClusterRoleBinding

# batch-admin-role-binding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: read-pods
subjects:
- kind: User
  name: admin@example.com
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: kueue-batch-admin-role
  apiGroup: rbac.authorization.k8s.io

要创建 ClusterRoleBinding,请保存前面的清单并运行以下命令

kubectl apply -f batch-admin-role-binding.yaml

向批处理用户授予权限

批处理用户通常需要以下权限

  • 在他们的命名空间中创建和查看 Jobs。
  • 查看其命名空间中可用的队列。
  • 查看其命名空间中 Workloads 的状态。

要向 team-a@example.com 用户组授予命名空间 team-a 的这些权限,请使用类似于以下内容的清单创建一个 RoleBinding

# team-a-batch-user-role-binding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: read-pods
  namespace: team-a
subjects:
- kind: Group
  name: team-a@example.com
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: kueue-batch-user-role
  apiGroup: rbac.authorization.k8s.io

要创建 RoleBinding,请保存前面的清单并运行以下命令

kubectl apply -f team-a-batch-user-role-binding.yaml


上次修改时间为 2024 年 3 月 25 日:将任务整理到文件夹中 (#1899) (d43d3ea4)