当前位置: 首页 > news >正文

15.4 prometheus使用的ClusterRole等RBAC对象

本节重点介绍 :

  • k8s的rbac权限模型
  • prometheus使用的ClusterRole
  • prometheus使用的ClusterRoleBinding
  • prometheus使用的serviceAccount

rbac

  • 基于角色(Role)的访问控制(RBAC)是一种基于组织中用户的角色来调节控制对 计算机或网络资源的访问的方法。

RBAC API 声明了四种 Kubernetes 对象

  • Role
  • ClusterRole
  • RoleBinding
  • ClusterRoleBinding

可操作的资源

  • Pods
  • ConfigMaps
  • Deployments
  • Nodes
  • Secrets
  • Namespaces

Role 与 ClusterRole

  • Role 总是用来在某个名字空间 内设置访问权限
  • ClusterRole 对象可以授予与 Role 对象相同的权限,但由于它们属于集群范围对象

定义 prometheus 使用的clusterRole

rule 规则

  • 规则是一组属于不同 API Group 资源上的一组操作的集合
  • 规则可以配置属性如下
resources 代表可以操作的资源对象
  • 如下面的nodes、endpoints、pods等
  resources: # 资源- nodes- nodes/proxy- services- endpoints- pods

apigroups 代表k8s的api集合

  • apiGroups: [“”] # 空字符串"" 表明使用 core API group
  • 而Deployements属于 apps API Group
verbs代表可以执行的动作
  • 比如下面的
  verbs: ["get", "list", "watch"] 
nonResourceURLs:
  • 在非资源型的URL 对象,如下面的/metrics接口可以执行get操作
- nonResourceURLs: ["/metrics"]verbs: ["get"]
完整的prometheus使用的clusterRole
apiVersion: rbac.authorization.k8s.io/v1 # api的version
kind: ClusterRole # 类型
metadata:name: prometheus
rules:
- apiGroups: [""]resources: # 资源- nodes- nodes/metrics  - nodes/proxy- services- endpoints- podsverbs: ["get", "list", "watch"] 
- apiGroups:- extensionsresources:- ingressesverbs: ["get", "list", "watch"]
- nonResourceURLs: ["/metrics"]verbs: ["get"]

RoleBinding 与 ClusterRoleBinding

  • 角色绑定将一个角色中定义的各种权限授予一个或者一组用户
  • 角色绑定包含了一组相关主体(即 subject, 包括用户 ——User、用户组 ——Group、或者服务账户 ——Service Account)以及对被授予角色的引用。
  • 在命名空间中可以通过 RoleBinding 对象授予权限,而集群范围的权限授予则通过 ClusterRoleBinding 对象完成。

定义prometheus使用的clusterRoleBinding

roleRef指定与某 Role 或 ClusterRole 的绑定关系

roleRef: # 选择需要绑定的RoleapiGroup: rbac.authorization.k8s.iokind: ClusterRolename: prometheus

Subject:主题,对应在集群中尝试操作的对象,集群中定义了3种类型的主题资源:

  • User Account:用户,
  • Group:组,这是用来关联多个账户的,集群中有一些默认创建的组,比如cluster-admin
  • Service Account:服务帐号,通过Kubernetes API 来管理的一些用户帐号,和 namespace 进行关联的,适用于集群内部运行的应用程序
  • 比如下面的 ServiceAccount对象
subjects: # 对象
- kind: ServiceAccountname: prometheusnamespace: kube-system

完整的prometheus使用的ClusterRoleBinding

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: prometheus
roleRef: # 选择需要绑定的RoleapiGroup: rbac.authorization.k8s.iokind: ClusterRolename: prometheus
subjects: # 对象
- kind: ServiceAccountname: prometheusnamespace: kube-system

完整的prometheus rbac.yaml

apiVersion: rbac.authorization.k8s.io/v1 # api的version
kind: ClusterRole # 类型
metadata:name: prometheus
rules:
- apiGroups: [""]resources: # 资源- nodes- nodes/proxy- services- endpoints- podsverbs: ["get", "list", "watch"] 
- apiGroups:- extensionsresources:- ingressesverbs: ["get", "list", "watch"]
- nonResourceURLs: ["/metrics"]verbs: ["get"]
---
apiVersion: v1
kind: ServiceAccount
metadata:name: prometheus # 自定义名字namespace: kube-system # 命名空间
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: prometheus
roleRef: # 选择需要绑定的RoleapiGroup: rbac.authorization.k8s.iokind: ClusterRolename: prometheus
subjects: # 对象
- kind: ServiceAccountname: prometheusnamespace: kube-system

将完整的RBAC 配置写入 rbac.yaml中

本节重点总结 :

  • k8s的rbac权限模型
  • prometheus使用的ClusterRole
  • prometheus使用的ClusterRoleBinding
  • prometheus使用的serviceAccount

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 算法练习题24——查找杨辉三角中的组合数
  • 另类动态规划
  • dplyr、tidyverse和ggplot2初探
  • CX_SY_RANGE_OUT_OF_BOUNDS
  • 外包干了三年,快要废了。。。
  • jQuery UI API 文档
  • RISC-V交叉编译器下载
  • eureka服务开启之后的默认登录账号密码是什么?
  • 高德地图绘图,点标记,并计算中心点
  • Leetcode面试经典150题-141.环形链表
  • 官宣:Zilliz 在亚马逊云科技中国区正式开服!
  • EA橘子平台Origin离线安装包获取
  • 树莓派安装 OpenCV 教程
  • 腾讯云使用
  • 企业采用电子招投标的原因及系统推荐
  • Google 是如何开发 Web 框架的
  • HashMap剖析之内部结构
  • JAVA SE 6 GC调优笔记
  • java8 Stream Pipelines 浅析
  • JavaScript对象详解
  • js如何打印object对象
  • nfs客户端进程变D,延伸linux的lock
  • PV统计优化设计
  • React 快速上手 - 07 前端路由 react-router
  • Vue2.x学习三:事件处理生命周期钩子
  • 使用Gradle第一次构建Java程序
  • 双管齐下,VMware的容器新战略
  • 用jquery写贪吃蛇
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • # Java NIO(一)FileChannel
  • # 数仓建模:如何构建主题宽表模型?
  • ## 基础知识
  • #window11设置系统变量#
  • (1)常见O(n^2)排序算法解析
  • (12)Hive调优——count distinct去重优化
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (day 12)JavaScript学习笔记(数组3)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (void) (_x == _y)的作用
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (六)DockerCompose安装与配置
  • (亲测有效)推荐2024最新的免费漫画软件app,无广告,聚合全网资源!
  • (三分钟)速览传统边缘检测算子
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (限时免费)震惊!流落人间的haproxy宝典被找到了!一切玄妙尽在此处!
  • (原)本想说脏话,奈何已放下
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)