2023 K8s CKA 原生K8s管理员认证
K8S之权限管理
Role 和 ClusterRole
在 RBAC API 中,一个角色包含一组相关权限的规则。权限是纯粹累加的(不存在拒绝某操作的规则)。 角色可以用 Role 来定义到某个命名空间上, 或者用 ClusterRole 来定义到整个集群作用域。
一个 Role 只可以用来对某一命名空间中的资源赋予访问权限。 下面的 Role 示例定义到名称为"default" 的命名空间,可以用来授予对该命名空间中的 Pods 的读取权限:
ClusterRole 可以授予的权限和 Role 相同, 但是因为 ClusterRole 属于集群范围,所以它也可以授予以下访问权限:
集群范围资源 (比如 nodes)
非资源端点(比如 /healthz )
跨命名空间访问的有名字空间作用域的资源(如 Pods),比如运行命令 kubectl get pods --all- namespaces 时需要此能力
下面的 ClusterRole 示例可用来对某特定命名空间下的 Secrets 的读取操作授权, 或者跨所有命名空间执行授权(取决于它是如何绑定的):