Kubernetes:角色与集群角色

问题描述 投票:0回答:3

Role
ClusterRole
有什么区别?

我应该什么时候创建一个或另一个?

我不太明白它们之间的区别。

kubernetes
3个回答
74
投票

来自文档

角色只能用于授予对单个命名空间内的资源的访问权限。

示例:列出命名空间中的所有 pod

ClusterRole 可用于授予与 Role 相同的权限,但是 因为它们是集群范围的,所以它们也可以用于授予访问权限 至:

cluster-scoped resources (like nodes)
non-resource endpoints (like “/healthz”)
namespaced resources (like pods) across all namespaces (needed to run kubectl get pods --all-namespaces, for example)

示例:列出所有命名空间中的所有 Pod。获取所有节点的列表及其公共 IP。


1
投票

集群角色还允许跨命名空间重用公共权限集(通过角色绑定)。引导管理、编辑和查看集群角色是典型的示例。


0
投票

Kubernetes 中角色和 ClusterRole 的区别:

属性 角色 集群角色
目的 定义特定命名空间内的权限 定义集群范围的权限
范围 命名空间范围 集群范围
资源类型 可以为命名空间内的资源定义规则(例如,pod、服务、部署) 可以为集群范围的资源(例如节点、持久卷)和跨所有命名空间的命名空间资源定义规则
绑定 绑定到同一命名空间内的 RoleBinding 对象 绑定到 ClusterRoleBinding 对象
示例用例 授予管理特定命名空间内资源的权限 授予管理集群范围资源或跨多个命名空间的资源的权限
最佳实践 使用角色在命名空间内进行细粒度的访问控制 谨慎使用 ClusterRoles,因为它们在整个集群中授予广泛的权限

参考:Kubernetes 的实际应用。希望这对您有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.