kubernetes给指定用户分配调用k8s的api权限
文章目录
- 概要
- 利用RBAC添加角色权限
- 使用shell命令创建角色权限
- 使用配置文件创建角色权限
- 调用k8s的api
- 获取k8s账户的token
- 小结
概要
使用kubernetes部署项目时,有些特殊场景,我们需要在自己创建的pod里面调用k8s的api来管理k8s,但是需要使用指定用户权限,该用户证使用当前命名空间的资源,不能使用其他命名空间的api和资源。
利用RBAC添加角色权限
创建命名空间,创建后会默认新建一个service_account
kubectl create namespace demo
使用shell命令创建角色权限
创建role和rolebinding
kubectl create role demo_admin_role --resource=* --verb=* --namespace=demo
kubectl create rolebinding demo_admin_role_binding --role=demo_admin_role --serviceaccount=demo:default --namespace demo
使用配置文件创建角色权限
kubectl create -n xijia -f rbac.yaml
配置文件如下:
- 定义了role和rolebinding,role名称为创建的role名称为【admin_role】,以及rolebinding名称为【admin_role_binding】。
- rolebinding的作用就是把role和account关联起来,这样我们的account就能拿到相应的权限。
- role包括了deployments,pods,services,configmaps四个资源的get,list,watch,create,update,delete。如果想给所有权限,也可以用*
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:name: admin_rolenamespace: demo
rules:
- apiGroups:- "apps"resources:- "deployments"verbs:- "get"- "list"- "watch"- "create"- "update"- "delete"
- apiGroups:- ""resources:- "pods"- "services"- "configmaps"verbs:- "get"- "list"- "watch"- "create"- "update"- "delete"---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:name: admin_role_bindingnamespace: demo
roleRef:apiGroup: rbac.authorization.k8s.iokind: Rolename: admin_role
subjects:
- kind: ServiceAccountname: defaultnamespace: demo
调用k8s的api
默认调用k8s的api是会返回401认证失败的错误的,所以我们需要先拿到demo:default账户的token才能调用k8s的api接口
获取k8s账户的token
kubectl describe secret --namespace demo default-token-frn4q
可以看到返回的token非常长,这个是正常的,后面这个就是认证的token。
先进入pod,我们在pod里面测试调用k8s的api。下面的命令就是获取demo命名空间下的所有pod。
curl -k --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6Ik1zZ3BGcTNoam9FakxjOW93QTVyY3JhOWY5Z1RibkhCOENkSkNST0Uzc1kifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJ4aWppYSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJ0ZXN0MTIzLXRva2VuLTV3NTQ5Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6InRlc3QxMjMiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI1ZmRkN2IxYy02YTcxLTQ2ODQtYTM2ZC1lZTNkMGQzN2Y3YmMiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6eGlqaWE6dGVzdDEyMyJ9.AANC-2tRA17cvsqrAQM3_3JnE1BeMhg1tnSU_SThayj_0FqKOcZXecq3biQAPKPmHEBtNI9CFZnsihBDKV7o9I8OPl_8-urBIk9IrhlaYx7iu8OefA-zqNTofL331bbTuwJriE6qInFdKQH8YpJgJbpSyJLYptiu6Uqm_O2KVOASH0P5msZ_caMv7KvTsV-oYGM3XhrlL_eVIX10ENKNaF13nvglUH6mRcu4s2PB6E9KKMvsO7c7QSj9iJPj6semxTUEOf2iQJXlWIE2p6lReYGnNavh471kytwopt5GzG_8l4cH8XKX5v_tj1UroIPGqVGqHKUfPL3C3hucdUe4Gw" https://kubernetes.default.svc:443/api/v1/namespaces/demo/pods
如果获取default命名空间下的pod,就会返回403权限不足的错误
curl -k --header "Authorization: Bearer YOUR_TOKEN" https://kubernetes.default.svc:443/api/v1/namespaces/default/pods
小结
k8s的api十分丰富,平时用到的deployment,pod,service都可以使用api来操作。官方文档如下:https://kubernetes.io/zh-cn/docs/reference/access-authn-authz/rbac/#api-overview
相关文章:

kubernetes给指定用户分配调用k8s的api权限
文章目录 概要利用RBAC添加角色权限使用shell命令创建角色权限使用配置文件创建角色权限 调用k8s的api获取k8s账户的token 小结 概要 使用kubernetes部署项目时,有些特殊场景,我们需要在自己创建的pod里面调用k8s的api来管理k8s,但是需要使用…...
无人机的弱点和限制
1.电池和续航能力: 续航时间短:大多数无人机依赖锂电池供电,续航时间通常在30分钟至1小时之间,限制了其长时间任务的执行能力。 能量密度低:现有电池技术的能量密度无法满足长时间飞行需求,需要突破性的发…...

ElementUI的基本搭建
目录 1,首先在控制终端中输入下面代码:npm i element-ui -S 安装element UI 2,构架登录页面,login.vue编辑 3,在官网获取对应所需的代码直接复制粘贴到对应位置 4,在继续完善,从官网添加…...

Modbus TCP与TCP/IP协议间的差异与应用场景
Modbus TCP概述 Modbus协议简介 Modbus是一种专为工业自动化系统设计的通信协议,采用主从模式,即一个主设备(通常是计算机或可编程逻辑控制器)与多个从设备(如传感器、执行器等)进行通信。Modbus协议具有…...

Linux Doxygen快速生成文档
此前写过一篇编写Doxygen格式的注释以用于生成文档,点击以查阅, Doxygen常用语法与字段记录,但是当时用的windows桌面版的doxygen,最近使用ubuntu编写代码想直接使用doxygen生成,故写下此博客 Doxygen Doxygen是一个用于生成软件文档的工具,它可以从代码中提取注释…...
MobPush REST API的推送 API之批量推送
调用验证 详情参见 REST API 概述的 鉴权方式 说明。 频率控制 详情参见推送限制策略的 接口限制 说明。 调用地址 POST http://api.push.mob.com/v3/push/createMulti 推送对象 以 JSON 格式表达,表示一条推送相关的所有信息 字段类型必须说明pushWorkobje…...

Arthas快速入门
简介 Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类…...

python系列30:各种爬虫技术总结
1. 使用requests获取网页内容 以巴鲁夫产品为例,可以用get请求获取内容: https://www.balluff.com.cn/zh-cn/products/BES02YF 对应的网页为: 使用简单方法进行解析即可 import requests r BES02YF res requests.get("https://www.…...
PHP和phpSpider:如何应对反爬虫机制的封锁?
php和phpspider:如何应对反爬虫机制的封锁? 引言: 随着互联网的快速发展,对于大数据的需求也越来越大。爬虫作为一种抓取数据的工具,可以自动化地从网页中提取所需的信息。然而,由于爬虫的存在,…...

学生宿舍管理系统
摘 要 随着高校规模的不断扩大和学生人数的增加,学生宿舍管理成为高校日常管理工作中的重要组成部分。传统的学生宿舍管理方式往往依赖于纸质记录和人工管理,这种方式不仅效率低下,而且容易出错,无法满足现代高校管理的需求。因此…...
一分钟彻底掌握Java迭代器Iterator
Iterator Iterator 是 Java 的 java.util 包中的一个接口 iterator() 是 Java 集合框架中的一个方法,它返回一个 Iterator 对象,该对象可以用来遍历集合中的元素。 Iterator确实是一个接口,你不能直接实例化一个接口。但是,你可以…...

第三十七篇——麦克斯韦的妖:为什么要保持系统的开放性?
目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 如果没有详细的学习这篇文章,我觉得我就是被麦克斯韦妖摆弄的…...

青岛网站建设一般多少钱
青岛网站建设的价格一般会根据网站的规模、功能、设计风格等因素来定,价格会存在着一定的差异。一般来说,一个简单的网站建设可能在数千元到一万元之间,而一个复杂的大型网站建设可能会需要数万元到数十万元不等。所以在选择网站建设服务时&a…...
Linux 进程状态:TASK_INTERRUPTIBLE 和 TASK_UNINTERRUPTIBLE
文章目录 1. 前言2. TASK_INTERRUPTIBLE 和 TASK_UNINTERRUPTIBLE2.1 语义2.2 实现2.2.1 TASK_INTERRUPTIBLE 实现2.2.1.1 等待的条件成立时 唤醒2.2.1.2 信号 唤醒2.2.1.3 中断 唤醒2.2.1.3.1 内核态的处理过程2.2.1.3.2 用户态的处理过程 2.2.2 TASK_UNINTERRUPTIBLE 实现 2.…...

vue3使用vant4的列表vant-list点击进入详情自动滚动到对应位置,踩坑日记(一天半的踩坑经历)
1.路由添加keepAlive <!-- Vue3缓存组件,写法和Vue2不一样--><router-view v-slot"{ Component }"><keep-alive><component :is"Component" v-if"$route.meta.keepAlive"/></keep-alive><component…...

Linux的fwrite函数
函数原型: 向文件fp中写入writeBuff里面的内容 int fwrite(void*buffer,intsize,intcount,FILE*fp) /* * description : 对已打开的流进行写入数据块 * param ‐ ptr :指向 数据块的指针 * param ‐ size :指定…...
python udsoncan 详解
python udsoncan 详解 udsoncan 是一个Python库,用于实现汽车统一诊断服务(Unified Diagnostic Services,UDS)协议。UDS是一种用于汽车诊断的标准化通信协议,它定义了一系列的服务和流程,用于ECUÿ…...

基于自组织长短期记忆神经网络的时间序列预测(MATLAB)
LSTM是为了解决RNN 的梯度消失问题而诞生的特殊循环神经网络。该网络开发了一种异于普通神经元的节点结构,引入了3 个控制门的概念。该节点称为LSTM 单元。LSTM 神经网络避免了梯度消失的情况,能够记忆更长久的历史信息,更能有效地拟合长期时…...

240629_昇思学习打卡-Day11-Vision Transformer中的self-Attention
240629_昇思学习打卡-Day11-Transformer中的self-Attention 根据昇思课程顺序来看呢,今儿应该看Vision Transformer图像分类这里了,但是大概看了一下官方api,发现我还是太笨了,看不太明白。正巧昨天学SSD的时候不是参考了太阳花的…...

代码随想录-Day43
52. 携带研究材料(第七期模拟笔试) 小明是一位科学家,他需要参加一场重要的国际科学大会,以展示自己的最新研究成果。他需要带一些研究材料,但是他的行李箱空间有限。这些研究材料包括实验设备、文献资料和实验样本等…...

【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...

MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...