RoleBinding 和 ClusterRoleBinding 的区别是什么?

推荐答案

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

纠错
反馈