配置 RBAC

当你安装 Alauda Build of Kueue 时,会为我们假定会与 Kueue 交互的两个主要角色创建以下一组 ClusterRole:

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

1. 为批处理管理员授予权限

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

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

# batch-admin-role-binding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: kueue-admins
subjects:
- kind: User
  name: admin@cpaas.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

2. 为批处理用户授予权限

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

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

要为命名空间 team-a 中的用户 team-a-owner@cpaas.com 授予这些权限,请创建一个 RoleBinding,其清单类似于以下内容:

# team-a-batch-user-role-binding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: kueue-users
  namespace: team-a
subjects:
- kind: User
  name: team-a-owner@cpaas.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