If you want to define a role within a namespace, use a
Role
; if you want to define a role cluster-wide, use aClusterRole
.
那么,为什么我能够在命名空间中为非命名空间资源 StorageClass
创建一个 ClusterRole
(或者简而言之,sc
) )?
kubectl -n apps create clusterrole scrole --verb=create,update,patch,delete --resource=sc
此外,Role
仅适用于命名空间资源,ClusterRole
适用于非命名空间资源,这样说是否正确>仅?
最佳答案
命名空间参数是多余的,即使您在创建 ClusterRole
时提供它,也不会使用该参数。
ClusterRole
还可以定义对命名空间范围内的资源的权限,您可以使用 RoleBinding
将权限分配给用户、组或服务帐户。当您这样做时,它基本上是为创建 RoleBinding 的命名空间内的资源提供权限。这是为了避免在每个命名空间中创建重复的 Roles 来提供相同的权限。
此外,当您在 ClusterRole
中拥有集群范围的资源时,您需要使用 ClusterRoleBinding
将权限分配给用户、组或服务帐户。
关于Kubernetes - 允许具有命名空间的 ClusterRole 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64871199/