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关键字可有可无。 覆盖:覆盖是指派生类函数覆盖基类函数,特征是:在有继承关系的类中࿰…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...
【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...
