Kubernetes 中 RBAC、ServiceAccount 的区别和联系

news2024/10/6 2:20:05

Understanding-the-Kubernetes-RBAC-API

Author:rab


目录

    • 前言
    • 一、区别
    • 二、联系
    • 三、案例
    • 思考?


前言

首先,Kubernetes (K8s) RBAC (Role-Based Access Control) 和 ServiceAccount 都是 Kubernetes 中用于控制访问权限的两个重要概念,但是它们之间有一些区别和联系。

一、区别

1、RBAC

RBAC 是一种授权机制,用于定义和管理用户或组对 Kubernetes 资源的访问权限。它基于角色和角色绑定的概念,可以细粒度地控制用户对集群中的资源的操作权限。

2、ServiceAccount

ServiceAccount 是用于身份验证和授权的 Kubernetes 资源,它代表一个应用程序或服务在集群中的身份。每个 Pod 都会自动关联一个默认的 ServiceAccount,用于与 API 服务器进行通信。

二、联系

1、RBAC

RBAC 和 ServiceAccount 都是 Kubernetes 中的安全机制,用于确保集群中的资源只能被授权的实体访问。RBAC 提供了更细粒度的控制,而 ServiceAccount 则用于标识和认证应用程序或服务(如 Pod)。

2、ServiceAccount

ServiceAccount 是 RBAC 的一部分,RBAC 可以使用 ServiceAccount 来授权用户或组对资源的访问权限。通过为 ServiceAccount 分配适当的角色和角色绑定,可以限制应用程序或服务对资源的访问权限。

三、案例

接下来我们使用 RBAC 和 ServiceAccount 来控制对 Kubernetes 资源的访问权限。

1、创建 my-namespace 命名空间

进行资源隔离,形成一个好的习惯,要不然一堆资源集中在一起,乱七八糟的。

kubectl create namespace my-namespace

2、创建角色(Role)

vim role-test.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: my-role
  namespace: my-namespace
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "list"]
kubectl apply -f role-test.yaml

3、角色绑定(RoleBinding)

vim role-bind.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: my-role-binding
  namespace: my-namespace
subjects:
- kind: ServiceAccount
  name: default
  namespace: my-namespace
roleRef:
  kind: Role
  name: my-role
  apiGroup: rbac.authorization.k8s.io
kubectl apply -f role-bind.yaml

案例分析:

该案例中,我们创建了一个角色 my-role,并将其绑定到 default ServiceAccount。这意味着 default ServiceAccount 在 my-namespace 命名空间中具有对 pods 资源的 get 和 list 权限。其他用户或组如果没有被授予相应的角色和角色绑定,则无法访问这些资源。

请注意!这只是一个简单的示例,实际使用中可能需要更复杂的 RBAC 规则和更多的 ServiceAccount 来满足实际需求。

思考?

问:如果我们没有显示地指定 Pod 的 ServiceAccount,那 Pod 被创建后所属的 ServiceAccount 是什么?

答:是 default。每个 Pod 都有一个唯一的 ServiceAccount,用于与 Kubernetes API 服务器进行身份验证和授权。这样可以确保每个 Pod 在访问集群中的资源时都有自己的身份。而且要搞清楚的是:每个命名空间都会自动创建一个名为 default 的 ServiceAccount,如果没有指定其他的 ServiceAccount,Pod 将会自动关联到该默认的 ServiceAccount。如下图就是 Kubernetes 集群中 default 名称空间中默认的 ServiceAccount(且名为 default)。

image-20231109180539765

但是,默认的 ServiceAccount 具有较低的权限,并且通常只能访问自己所在命名空间的资源。如果需要更细粒度的访问控制,可以创建自定义的 ServiceAccount,并为其分配适当的角色和角色绑定。

问:那我们如何在 Kubernetes 中创建自定义的 ServiceAccount 呢?

答:可通过以下两种方式来定义。

1、命令行方式

# 首先创建一个namespace
kubectl create namespace my-namespace

# 接着就开始创建ServiceAccount资源
kubectl create serviceaccount my-serviceaccount -n my-namespace

2、yaml 文件方式

# 首先创建一个namespace
kubectl create namespace my-namespace
# 接着就开始创建ServiceAccount资源
vim my-serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: my-serviceaccount
  namespace: my-namespace
# 执行创建
kubectl apply -f my-serviceaccount.yaml

serviceaccount 创建完成之后,就可以创建角色并进行角色绑定应用了。

—END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1189211.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt==对接API

来到首页 https://platform.openai.com/docs/overview quickstart turorial 生成API KEY https://platform.openai.com/api-keys 来体验下 setx OPENAI_API_KEY "your-api-key-here" echo %OPENAI_API_KEY% 编写PYTHON代码 pip install --upgrade openai from …

ChatGPT 报错“Sorry, you have been blocked…” 什么原因?如何解决?

原因: 频繁切换节点,使用免费代理,账号被锁定 解决办法: 遇到这种情况,请暂时先关闭代理(VPN),停止账号登陆,过段时间或隔天再试,防止账号被封。另外不建议使…

大模型在时间序列预测领域的最新15篇论文

最近在和大佬朋友们交流的时候,发现时间序列领域有一个很有潜力的新方向:大模型时间序列。 大模型可以处理不同类型的时间序列数据,例如文本、图像、音频等,也可以适应不同的时间序列数据的变化和异常情况,有助于提高…

TikTok shop美国小店适合哪些人做?附常见运营问题解答

一、Tiktok shop小店分类 大家都知道,美国小店可以分为5 种: 美国本土个人店: 最灵活,有扶持政策;美国法人企业店:要求高,有扶持政策;美国公司中国人占股店 (ACCU店) : 权重相对低&#xff0c…

文件改名:一次性解决文件名混乱,批量重命名技巧

在日常生活和工作中,我们经常会遇到文件名混乱的问题,例如文件名重复、格式不统一或者文件名错误等。这些问题不仅会给我们带来查找和使用上的困扰,还会影响我们的工作效率。为了解决这些问题,我们可以使用批量重命名技巧&#xf…

配置资源管理

Secret Secret 是用来保存密码、token、密钥等敏感数据的 k8s 资源,这类数据虽然也可以存放在 Pod 或者镜像中,但是放在 Secret 中是为了更方便的控制如何使用数据,并减少暴露的风险。 三种类型: kubernetes.io/service-accoun…

跨境电商中的二手宝藏:二手商品市场的崛起

在数字时代的崛起下,跨境电商已经成为了国际贸易的一个重要组成部分。它为人们提供了机会,能够轻松地购买来自世界各地的新商品。 然而,除了全新的产品,二手商品市场也在跨境电商中崭露头角,为买家和卖家提供全新的机…

第十五章,输入输出流代码

package 例题;import java.io.File;public class 例题1 {public static void main(String[] args) {//创建文件对象File file new File("D:\\Java15-1.docx");//判断,如果该文件存在。exists存在的意思if (file.exists()) {//删除//file.delete();//Syst…

AD9371 Crossbar

AD9371 系列快速入口 AD9371ZCU102 移植到 ZCU106 : AD9371 官方例程构建及单音信号收发 ad9371_tx_jesd -->util_ad9371_xcvr接口映射: AD9371 官方例程之 tx_jesd 与 xcvr接口映射 AD9371 官方例程 时钟间的关系与生成 : AD9371 官方…

springcloud小说阅读网站源码

开发工具: 大等于jdk1.8,大于mysql5.5,nodejs,idea(eclipse),vscode(webstorm) 技术说明: springcloud springboot mybatis vue elementui 功能介绍&…

Unity游戏开发基础组件

Unity2D 相机调整:Projection设置为Orthographic。也就是正交模式,忽视距离。 资源: Sprite:一种游戏资源,在2D游戏中表示角色场景的图片资源 SpriteSheet:切割一张图片为多个Sprite 在Sprite Editor中可以…

Git 入门使用 —— 建库、代码上下传、常用命令

目录 一、Git 入门 1.1 Git简介 1.2 Git安装 1.3 创建码云仓库 二、Git 使用 2.1 git初始化操作 2.2 代码上传 2.3 代码下载 2.4 代码更新 2.4.1 仓库管理者 2.4.1 仓库使用者 三、Git 常用命令 一、Git 入门 1.1 Git简介 Git是一个开源的分布式版本控制系统&am…

Vue3+vite+cesium环境搭建

引言 目前有不少vue3cesium的配置教学,存在以下两个问题: (1)vue3cli方式,随着项目的迭代,npm run serve 启动调试很慢; (2)vue3vite 确实能将调试启动提升不少的&…

CloudCompare 技巧五 CSF 体积计算等

42、CSF 原始点云 我这路要的是地面分离出来,所以我选的是Flat 结果如下: 43、点云超欠挖体积计算 结果: 44、 网格表面积体积测量 45、法向量

驾考在线答题系统源码:含PC+手机版驾考宝典多题库

安装说明: 1、上传到网站根目录 2、用 phpMyadmin 导入数据库文件 db.sql 3、修改数据库链接文件 /ThinkPHP/Conf/convention.php# (记得不要用记事本修改,否则可能会出现验证码显示不了问题,建议用 Notepad 4、 帐号 admin 密码…

一文带您了解云渲染

很多刚刚接触云渲染的网友可能还不太了解云渲染,不知道云渲染是什么,不知道如何选择云渲染,不知道云渲染怎么收费,今天小编归纳总结了一些网友比较关心的问题,在本文中一一为大家解答。 云渲染是什么? 云…

RT-Thread 组件学习

FinSH控制台 在计算机发展的早期,图形系统出现之前,没有鼠标,甚至没有键盘。那时候人们如何与计算机交互呢?最早期的计算机使用打孔的纸条向计算机输入命令,编写程序。 后来随着计算机的不断发展,显示器、…

echart的tooltip显示不同的单位

效果 实现 在每个series中添加不同的 tooltip: { valueFormatter: function (value) { return value.toFixed(0) ‘A’; } }, 代码如下 var option {// grid: {// left: -13vw,//左边距72px// right: 32%,// bottom: 64%,// top:…

LaMa 论文复现:Resolution-robust Large Mask Inpainting with Fourier Convolutions

代码:GitHub - andy971022/auto-lama 论文:https://arxiv.org/abs/2109.07161 1 LaMa 论文简介 2 LaMa代码复现 2.1 环境部署 2.1.1 下载源码,创建环境,安装必需库 git clone https://github.com/advimman/lama cd lama con…

JAVASSMmysql面向高校校园体育用品租借管理系统94593-计算机毕业设计项目选题推荐(附源码)

摘 要 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,微信小程序的面向高校校园体育用品租借管理系统被用户普遍…