K8s中Role(ClusterRole)资源类型rules字段详解

打印 上一主题 下一主题

主题 977|帖子 977|积分 2931

在Kubernetes(K8s)中,Role资源类型的rules字段用于界说哪些操作(verbs)可以在哪些资源(resources)上执行。Role是一种命名空间级别的资源,它答应你对命名空间内的资源举行细粒度的访问控制。

  • resources
    resources字段指定了脚色可以访问的资源类型。这些资源类型可以是Kubernetes API中界说的任何资源,例如Pods、Services、Deployments、ConfigMaps等。你可以在resources字段中列出多个资源类型,以答应脚色访问这些类型的资源。
  • verbs
    verbs字段界说了脚色可以对资源执行的操作。这些操作可以是尺度的HTTP方法,如get、list、watch、create、update、patch、delete等。通过在verbs字段中列出这些操作,你可以控制脚色对资源的具体行为。
rules字段是一个数组,每个元素都是一个规则对象,规则对象中界说了可以执行的操作和适用的资源。下面是一个Role资源界说的示例,其中包含了rules字段:
  1. apiVersion: rbac.authorization.k8s.io/v1  
  2. kind: Role  
  3. metadata:  
  4.   name: pod-reader  
  5.   namespace: default  
  6. rules:  
  7. - apiGroups: [""]  # 空字符串表示核心API群组  
  8.   resources: ["pods"]  # 资源类型是pods  
  9.   verbs: ["get", "list", "watch"]  # 允许的操作是get、list和watch
复制代码
在这个例子中,我们创建了一个名为pod-reader的Role,它答应用户读取(get、list、watch)命名空间default中的Pods资源。

  • apiGroups字段指定了资源所属的API群组。空字符串("")表示焦点API群组,即没有特定群组的资源,如Pods、Services等。对于属于特定群组的资源,你需要在这里指定相应的群组名称。
  • resources字段是一个字符串数组,列出了该规则适用的资源类型。在这个例子中,我们指定了pods资源类型。
  • verbs字段是一个字符串数组,列出了答应在资源上执行的操作。在这个例子中,我们答应get、list和watch操作。
除了这些根本字段外,Role规则还可以包含其他字段,如resourceNames,用于指定规则适用的具体资源对象的名称。
请注意,Role和ClusterRole之间的主要区别在于它们的作用范围:Role仅适用于特定的命名空间,而ClusterRole适用于整个集群。在创建Role或ClusterRole时,你需要根据你的需求选择合适的作用范围。
最后,为了将脚色绑定到用户、组或服务账户,你还需要创建RoleBinding(对于命名空间级别的脚色)或ClusterRoleBinding(对于集群级别的脚色)。这些绑定将脚色与主体相干联,从而实现访问控制。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

耶耶耶耶耶

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表