10-k8s-身份认证与鉴权
文章目录
- 一、ServiceAccount介绍
- 二、ServiceAccount相关的资源对象
- 三、dashboard空间示例
一、ServiceAccount介绍
-
ServiceAccount(服务账户)概念介绍
1)ServiceAccount是Kubernetes集群中的一种资源对象,用于为Pod或其他资源提供身份验证和授权,以便它们能够与Kubernetes API进行交互。
2)Service Account仅局限它所在的namespace,而每个namespace都会自动创建一个default service account。可以在Pod中通过serviceAccountName来指定使用哪个ServiceAccount。
-
解决的问题
1)身份验证: ServiceAccount为Pod提供一个身份,使Pod能够与Kubernetes API进行交互。Kubernetes API会根据ServiceAccount的身份进行授权判断。
2)权限控制: 通过ServiceAccount,Kubernetes管理员可以对Pod进行权限控制,限制它们能够访问的资源和操作,从而增强集群的安全性。
3)认证和授权: ServiceAccount使得Pod可以通过自己的身份进行认证和授权,而不是依赖于集群中其他的身份。
二、ServiceAccount相关的资源对象
-
role(k8s角色):通过RoleBinding绑定相关权限。它是Namespace级别的资源,只能作用于Namespace之内。
-
ClusterRole(集群角色): ClusterRole定义了一组权限,用于控制对Kubernetes集群级别资源的访问。它是一种权限策略,定义了哪些操作可以被执行。ClusterRole可以被多个命名空间使用。
-
RoleBinding:Role或 ClusterRole只是用于制定权限集合,具体作用于什么对象上,需要使用 RoleBinding来进行绑定。可以将Role 或 ClusterRole绑定到User、Group、Service Account 上。
ps:相关指令介绍
1)查看rolebinding信息:kubectl get rolebinding --all-namespaces
2)查看指定rolebinding 的配置信息:kubectl get rolebinding <role_binding_name> -n -o yaml
-
ClusterRoleBinding:RoleBinding用于在单个命名空间内进行权限控制,而ClusterRoleBinding用于在整个集群内进行权限控制。
-
Secret(秘密): Secret是用于存储敏感信息的资源,如密码、API密钥、证书等。ServiceAccount通常与Secret关联,Kubernetes会自动为每个ServiceAccount创建一个与之关联的Secret,其中包含了ServiceAccount的身份令牌。
-
Service Account Admission Controller介绍
通过Admission Controller插件来实现对pod修改,它是apiserver的一部分。创建或更新pod时会同步进行修改pod。当插件处于激活状态(在大多数发行版中都默认情况)创建或修改pod时,会按以下操作执行:
1)如果pod没有设置ServiceAccount,则将ServiceAccount设置为default。
2)确保pod 引用的ServiceAccount存在,否则将会拒绝请求。
3)如果pod不包含任何ImagePullSecrets,则将ServiceAccount 的 lmagePullSecrets会添加到 pod中。
4)为包含API访问的Token 的 pod添加了一个volume。
5)把volumeSource添加到安装在pod的每个容器中,挂载在/var/run/secrets/kubernetes.io/serviceaccount。 -
Service Account Controller介绍
Service Account Controller在namespaces里管理ServiceAccount,并确保每个有效的 namespaces中都存在一个名为“default”的ServiceAccount。
-
其他相关指令介绍
1)获取所有空间的ServiceAccount:kubectl get sa -A
2)获取所有空间的ClusterRole: kubectl get clusterrole -A
3)查看ClusterRole详情: kubectl get clusterrole ingress-nginx -n ingress-nginx -o yaml
三、dashboard空间示例
-
查看dashboard的用户列表:kubectl get sa -n kubernetes-dashboard

-
查看用户secrets 并且获取token
1)查看secrets : kubectl get secrets -n kubernetes-dashboard

2)获取密钥:kubectl describe secrets default-token-fjzh6 -n kubernetes-dashboard

-
创建admin用户,并且查看secrets和token
1)创建访问账号:vi /opt/dash.yaml
创建用户–》申明角色–》用户和角色绑定
apiVersion: v1 kind: ServiceAccount metadata:name: admin-usernamespace: kubernetes-dashboard --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata:name: admin-user roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-admin subjects: - kind: ServiceAccountname: admin-usernamespace: kubernetes-dashboard2)应用: kubectl apply -f /opt/dash.yaml
3)查看dashboard的用户列表:get sa -n kubernetes-dashboard

4)查看secrets: kubectl get secrets -n kubernetes-dashboard

5)获取访问令牌: kubectl describe secrets admin-user-token-d8f7x -n kubernetes-dashboard

6)查看绑定关系: kubectl get ClusterRoleBinding admin-user -n kubernetes-dashboard -o yaml

相关文章:
10-k8s-身份认证与鉴权
文章目录 一、ServiceAccount介绍二、ServiceAccount相关的资源对象三、dashboard空间示例 一、ServiceAccount介绍 ServiceAccount(服务账户)概念介绍 1)ServiceAccount是Kubernetes集群中的一种资源对象,用于为Pod或其他资源提供…...
如何分析K8S中的OOMKilled问题(Exit Code 137)
什么是 OOMKilled Kubernetes 错误(Exit Code 137) 当 Kubernetes 集群中的容器超过其内存限制时,Kubernetes 系统可能会终止该容器并显示“OOMKilled”错误,这表明该进程由于内存不足而被终止。此错误的退出代码是 137。 如果遇…...
【0day】泛微e-office OA未授权访问漏洞学习
注:该文章来自作者日常学习笔记,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与作者无关。 目录 一、漏洞描述 二、影响版本 三、资产测绘 四、漏洞复现...
CSS盒子模型的详细解析
03-盒子模型 作用:布局网页,摆放盒子和内容。 盒子模型-组成 内容区域 – width & height 内边距 – padding(出现在内容与盒子边缘之间) 边框线 – border 外边距 – margin(出现在盒子外面) d…...
【mfc/VS2022】计图实验:绘图工具设计知识笔记2
按钮添加处理程序 1.类视图找到对应类右击,类向导 2. 找到对应的的按钮id 如何将画出的两个相交的圆都显示出来,而不是重叠(如下图)隐藏了一条圆弧 问题如图: 因为矩形和圆心其实是个背景色的封闭图形,所…...
Redis数据结构之quicklist
前言 为了节省内存,Redis 推出了 ziplist 数据类型,采用一种更加紧凑的方式来存储 hash、zset 元素。因为查找的时间复杂度是 O(N),且写入需要重新分配内存,所以它仅适用于小数据量的存储,而且它还存在 连锁更新 的风…...
MMKV(1)
内存准备 通过 mmap 内存映射文件,提供一段可供随时写入的内存块,App 只管往里面写数据,由操作系统负责将内存回写到文件,不必担心 crash 导致数据丢失。 数据组织 数据序列化方面选用 protobuf 协议,pb 在性能和空…...
centos 7.9 源码安装htop
1.下载源码 wget http://sourceforge.net/projects/htop/files/latest/download 2.上传到tmp目录,并解压 tar xvzf htop-1.0.2.tar.gz mv htop-1.0.2 /opt/ 进入到 cd /opt/htop-1.0.2/ 3.编译并安装 ./configure && make && make install 4.…...
Element UI之Button 按钮
Button 按钮 常用的操作按钮。 按需引入方式 如果是完整引入可跳过此步骤 import Vue from vue import { Button } from element-ui import element-ui/lib/theme-chalk/base.css import element-ui/lib/theme-chalk/button.css import element-ui/lib/theme-chalk/icon.cs…...
dig 简明教程
哈喽大家好,我是咸鱼 不知道大家在日常学习或者工作当中用 dig 命令多不多 dig 是 Domain Information Groper 的缩写,对于网络管理员和在域名系统(DNS)领域工作的小伙伴来说,它是一个非常常见且有用的工具。 无论是简单的 DNS 解析查找还…...
深度分析AMQP以及在rabbitMQ中的应用
文章目录 AMQP是什么AMQP在rabbitMQ中的应用AMQP协议的三层AMQP的三大组件AMQP的连接信道RabbitMQ 如何实现信道: AMQP是什么 AMQP(Advanced Message Queuing Protocol)是一种开放标准的消息队列协议。它提供了一个统一的、可靠的、异步的消…...
GB/T 28627-2023 抹灰石膏检测
抹灰石膏是指以半水石膏、Ⅱ型无水石膏单独或两者混合后作为主要胶凝材料,掺入集料和外加剂制成的用于建筑物室内墙面和顶棚基底抹灰找平用的石膏砂浆。 GB/T 28627-2023抹灰石膏检测项目: 测试项目 测试方法 凝结时间 GB/T 28627 保水率 GB/T 286…...
JDK版本和Gradle版本配套关系
Java versionSupport for compiling/testing/…Support for running Gradle 8 N/A 2.0 9 N/A 4.3 10 N/A 4.7 11 N/A 5.0 12 N/A 5.4 13 N/A 6.0 14 N/A 6.3 15 6.7 6.7 16 7.0 7.0 17 7.3 7.3 18 7.5 7.5 19 7.6 7.6 20 8.1 8.3 21 …...
在Linux中,怎么查看自己电脑的系统架构是什么?
2023年10月18日,周三晚上 这些命令会返回一个字符串,表示系统的架构。 常见的架构包括 x86(32位)、x86_64(64位)、ARM 等。 方法1:使用uname命令 uname -m方法2:使用arch命令 ar…...
自5月以来,俄罗斯Sandworm黑客侵入了11家乌克兰电信公司
导语:据乌克兰计算机应急响应团队(CERT-UA)的最新报告称,自2023年5月至9月,俄罗斯政府支持的黑客组织Sandworm成功侵入了乌克兰的11家电信服务提供商。这一组织被认为与俄罗斯武装部队的GRU有关。 简介 根据乌克兰计算…...
怎样做好接口自动化测试?
今天介绍一下在接口自动化测试相关实践中总结到的一些经验。 接口自动化测试的目的 自动化测试的主要目的是用来回归测试的,当代码有变化时,有可能影响不应该变化的逻辑,这个时候为了确认这种情况,就需要进行回归测试。有时候回…...
Leetcode刷题详解——找到字符串中所有字母异位词
1. 题目链接:438. 找到字符串中所有字母异位词 2. 题目描述: 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串(包括…...
Android 自定义view 圆形进度条
Android 自定义view 圆形进度条 前言一、码前分析二、开码1.画笔2.弧度3.圆弧的位置4.暴露给外部设置进度条的方法三、使用四、完整代码 总结 前言 先来看看效果,大概要实现这么一个圆形的进度条 一、码前分析 要实现这么一个进度条的效果,实际上是要画…...
混凝土基础的智能设计:VisualFoundation 12.0 Crack
实现混凝土基础的智能设计:工程师依靠 VisualFoundation:使用这个专注的工具可以更轻松、更强大地对基础进行建模。通用 FEA 工具(如VisualAnalysis)可以做很多事情,但对于特定于基础的工程来说,这更快、更智能。 草图边界 快速绘…...
C++中成员函数的重载覆盖与隐藏
1.重载与覆盖 重载:成员函数被重载的特征:在同一个类中,函数名相同,参数不同,vritual关键字可有可无。 覆盖:覆盖是指派生类函数覆盖基类函数,特征是:在有继承关系的类中࿰…...
解决Arm Compiler许可证平台不匹配错误(FLEXnet -89)
1. 问题现象与背景解析 最近在调试基于Arm架构的嵌入式系统时,遇到了一个棘手的许可证错误。当尝试使用Arm Compiler 6进行代码编译时,突然弹出了以下错误信息: Error: C3397E: Cannot obtain license for Arm_Compiler (feature compiler)…...
Armv8原子操作调试:LDXR/STXR指令对与独占监视器
1. 理解LDXR/STXR指令对的核心机制在Armv8-A架构中,LDXR(Load Exclusive Register)和STXR(Store Exclusive Register)是一对用于实现原子操作的指令。这对指令的工作机制可以类比为"拿号排队"系统࿱…...
三极管的削波失真是什么
削波失真(Clipping Distortion)是指当放大电路(如三极管、运放)的输出信号幅度超过了其供电电压或输出动态范围的极限时,信号的顶部和/或底部被“削平”而发生的失真现象。1. 它是如何发生的?以一个共射放大…...
Browser-Use 实战指南:让 AI 自己操控浏览器的 7 个实用场景
Browser-Use 实战指南:让 AI 自己操控浏览器的 7 个实用场景 你打开浏览器,搜索、填表、采集数据、截图、下载文件。这些每天重复的动作,能不能让 AI 替你干? Browser-Use 给了一个相当干脆的答案:把浏览器交给 AI&…...
基于Vercel AI SDK与Next.js 14构建智能编程助手:从架构到部署实战
1. 项目概述:一个面向开发者的AI编程助手脚手架最近在GitHub上看到一个挺有意思的项目,叫vercel-labs/coding-agent-template。光看名字,你大概能猜到,这是一个跟AI编程助手相关的模板项目。没错,它本质上是一个预先配…...
开源轻量CRM系统skill-twenty-crm技术解析与全栈部署指南
1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目,叫devchaudhary24k/skill-twenty-crm。光看这个名字,你可能会有点懵,这“Skill Twenty CRM”到底是个啥?作为一个在软件开发和团队协作领域摸爬滚打多年的老手&#x…...
AI黑魔法实战:LLM应用性能优化与成本控制高级技巧
1. 项目概述:当AI遇上“黑魔法”最近在GitHub上闲逛,发现了一个名为“lvcn/ai-black-magic”的项目,这个名字本身就充满了吸引力。对于任何在AI领域摸爬滚打过的开发者来说,“黑魔法”这个词往往意味着那些不按常理出牌、却能解决…...
如何快速打造专业直播画面:OBS StreamFX插件终极指南
如何快速打造专业直播画面:OBS StreamFX插件终极指南 【免费下载链接】obs-StreamFX StreamFX is a plugin for OBS Studio which adds many new effects, filters, sources, transitions and encoders! Be it 3D Transform, Blur, complex Masking, or even custom…...
避坑指南:Halcon在C# WinForm中图像处理的内存管理与窗口显示问题
Halcon与C#联合开发中的内存管理与窗口显示避坑指南 引言 在工业视觉应用开发中,Halcon与C#的联合开发模式因其高效性和灵活性而广受欢迎。然而,许多开发者在实际项目中常会遇到一些棘手的"坑",尤其是内存管理和窗口显示方面的问题…...
Cursor Pro免费激活工具:技术探索与实践指南
Cursor Pro免费激活工具:技术探索与实践指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your trial reques…...
