推荐答案
RoleBinding 和 ClusterRoleBinding 的主要区别在于它们的作用范围:
RoleBinding:将角色(Role 或 ClusterRole)绑定到特定命名空间中的用户、组或服务账户。它仅在指定的命名空间内生效。
ClusterRoleBinding:将集群角色(ClusterRole)绑定到集群范围内的用户、组或服务账户。它在整个集群中生效,不受命名空间限制。
本题详细解读
RoleBinding
- 作用范围:RoleBinding 的作用范围限定在某个特定的命名空间内。它只能在该命名空间中授予权限。
- 绑定对象:RoleBinding 可以绑定 Role 或 ClusterRole。如果绑定的是 ClusterRole,则该 ClusterRole 的权限会被限制在 RoleBinding 所在的命名空间内。
- 适用场景:适用于需要为某个命名空间内的用户、组或服务账户授予权限的场景。
ClusterRoleBinding
- 作用范围:ClusterRoleBinding 的作用范围是整个集群,不受命名空间的限制。它可以在集群范围内授予权限。
- 绑定对象:ClusterRoleBinding 只能绑定 ClusterRole,不能绑定 Role。
- 适用场景:适用于需要为整个集群中的用户、组或服务账户授予权限的场景,例如集群管理员权限。
示例
RoleBinding 示例:
-- -------------------- ---- ------- ----------- ---------------------------- ----- ----------- --------- ----- --------- ---------- ------- --------- - ----- ---- ----- ----- --------- ------------------------- -------- ----- ---- ----- ---------- --------- -------------------------
这个 RoleBinding 将
pod-reader
角色绑定到default
命名空间中的用户alice
。ClusterRoleBinding 示例:
-- -------------------- ---- ------- ----------- ---------------------------- ----- ------------------ --------- ----- --------------------- --------- - ----- ---- ----- ----- --------- ------------------------- -------- ----- ----------- ----- ------------- --------- -------------------------
这个 ClusterRoleBinding 将
cluster-admin
角色绑定到集群范围内的用户admin
。