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

K8S相关小技巧《四》

需求:

我作为Kubernetes的集群管理员,前一段时间有收到一个需求,需要我创建一个受限访问的用户kubeconfig,提供给跳板机的某用户。
该kubeconfig需要在非Kubernetes节点的某跳板机上由指定的非root用户使用,该用户仅能访问kubernetes集群中的某一个namespace下的资源,仅对该namespace下的资源有完整的权限。

实现:

前置条件:登录到kubernetes的主节点上,在主节点上做以下步骤。
第一步,准备kubeconfig的模板文件命名为"config-template",以下有一些占位符等,请注意:

apiVersion: v1
clusters:
- cluster:certificate-authority-data: LS0tLS1CRUdJTiBDRVJ....server: http://<your-addr-or-delegate-ip>:6443name: kubernetes
contexts:
- context:cluster: kubernetesuser: $USERnamespace: $NAMESPACEname: $USER@kubernetes
current-context: $USER@kubernetes
kind: Config
preferences: {}
users:
- name: $USERuser:client-certificate-data: $USER_CERT client-key-data: $USER_KEY

注意:关于certificate-authority-data这部分,此处为集群使用的CA证书,不用做修改,保持不变。

第二步,准备用于限制权限的RBAC模板文件,命名为"rb-template",同样有占位符,请注意:

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:name: $USER_NAME-adminnamespace: $NAMESPACE
subjects:- kind: Username: $USER_NAMEapiGroup: rbac.authorization.k8s.io
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: admin

第三步,准备用于生成kubeconfig的脚本,该脚本会使用openssl结合主节点的CA证书和key生成签发kubeconfig所需的certificate和key,替换第一步中的占位符等,请仔细阅读后,用root权限执行:

#! /bin/bash
USER_NAME=<your_jumpserver_username> #请手动更改此处
NAMESPACE=<your_namespace> #请手动更改此处openssl genrsa -out $USER_NAME.key 2048 &&
openssl req -new -key $USER_NAME.key -out $USER_NAME.csr -subj "/CN=$USER_NAME" &&
openssl x509 -req -in $USER_NAME.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out $USER_NAME.crt -days 3650yes | cp config-template config-$USER_NAME
yes | cp rb-template rb-$USER_NAME.yaml
USER_CERT=`openssl base64 -A -in $USER_NAME.crt`
USER_KEY=`openssl base64 -A -in $USER_NAME.key`#USER_CERT=$(echo $USER_CERT)
#USER_KEY=$(echo $USER_KEY)echo $USER_CERT | base64 -d
echo $USER_KEY | base64 -dsed -i "s/\$USER_CERT/$USER_CERT/g" config-$USER_NAME
sed -i "s/\$USER_KEY/$USER_KEY/g" config-$USER_NAME
sed -i "s/\$USER/$USER_NAME/g" config-$USER_NAME
sed -i "s/\$NAMESPACE/$NAMESPACE/g" config-$USER_NAME
sed -i "s/\$USER/$USER_NAME/g" rb-$USER_NAME.yaml
sed -i "s/\$NAMESPACE/$NAMESPACE/g" rb-$USER_NAME.yaml

第四步,经过以上三步,会得到rb-xxx.yaml和config-xxx两个文件,执行以下命令,用于添加rolebinding的权限:

kubectl apply -f rb-xxx.yaml

第五步,将config-xxx的文件拷贝到跳板机的指定用户的家目录下,并放在.kube目录下改名为config,以上四步均在kubernetes的主节点上执行,该步骤需要在跳板机执行,举例如下:

mkdir -p /home/$USER_NAME/.kube
cp config-$USER_NAME /home/$USER_NAME/.kube/config

上一篇:K8S相关小技巧《三》
下一篇:K8S相关小技巧《五》

相关文章:

K8S相关小技巧《四》

需求&#xff1a; 我作为Kubernetes的集群管理员&#xff0c;前一段时间有收到一个需求&#xff0c;需要我创建一个受限访问的用户kubeconfig&#xff0c;提供给跳板机的某用户。 该kubeconfig需要在非Kubernetes节点的某跳板机上由指定的非root用户使用&#xff0c;该用户仅能…...

Delphi 报错 Type androidx.collection.ArraySet is defined multiple times

Delphi 11 建立一个新的 Multi-Device Application 编译成app的时候报错 报错信息 [PAClient Error] Error: E7688 Unable to execute "E:\Program\Java\jdk1.8.0_301\bin\java.exe" -cp "e:\program\embarcadero\studio\22.0\bin\Android\r8-3.3.28.jar"…...

Post请求中文乱码问题

url*************************************这里填写自己请求的网址 response requests.post(url, datajson.dumps(body),headersheader) r response.text print 打印乱码长这样&#xff1a; data:{“code”:0,“data”:{“end”:false,“message”:“{\n “ˆ—¡A”: [“…...

LeetCode -- 79.单词搜索

1. 问题描述 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 单词必须按照字母顺序&#xff0c;通过相邻的单元格内的字母构成&#xff0c;其中“相邻”单元格是那些水…...

单元测试、集成测试、系统测试有什么不同?

单元测试、集成测试和系统测试是软件测试开发中不可或缺的部分。 单元测试&#xff1a; 范围&#xff1a;单元测试是对软件中最小的可测试单元的测试&#xff0c;通常是函数、方法或类。 目的&#xff1a;它的目标是验证每个单独的单元是否按照预期工作&#xff0c;以增加代码…...

数据迁移DTS | 云上MySQL 数据库迁移至达梦数据库

引入 云上 MySQL 数据库 —> 向达梦国产化数据库迁移 下载&安装 达梦客户端工具 DM->可参考之前国产化专栏达梦文章 创建模式 在客户端分别依次执行以下命令脚本&#xff08;这里没有通过客户端管理工具去创建达梦数据库的模式&#xff0c;当然也可以通过图形化界…...

Linux进程管理:(二)进程调度原语

文章说明&#xff1a; Linux内核版本&#xff1a;5.0 架构&#xff1a;ARM64 参考资料及图片来源&#xff1a;《奔跑吧Linux内核》 Linux 5.0内核源码注释仓库地址&#xff1a; zhangzihengya/LinuxSourceCode_v5.0_study (github.com) 进程调度的概念比较简单&#xff0c…...

Compose 介绍

Compose 介绍 Android Compose 是 Google 官方推出的用于构建原生 Android UI 的现代工具包。它使用 Kotlin 语言编写&#xff0c;可以帮助开发人员更轻松、更快速地创建精美、响应式和高性能的 Android 应用。 Compose 的优势 声明式 UI&#xff1a; Compose 使用声明式 UI…...

5分钟搞定Python中函数的参数

函数的灵活性非常高&#xff0c;除了常规定义的位置参数以外&#xff0c;还支持默认参数、关键字参数、以及可变参数 ... 这样以来&#xff0c;不但能应对各种复杂的情况&#xff0c;甚至还可以简化调用者的代码。 位置参数 在调用函数时&#xff0c;一般会根据函数定义的参数…...

Gitlab: 私有化部署

目录 1. 说明 2. 资源要求 3. 安装 4. 配置实践 4.1 服务器 4.2 人员与项目 4.2 部署准备 4.2.1 访问变量及用户账号设置 4.2.2 Runner设置 4.2.3 要点 5. 应用项目 CI/CD 6. 参考 1. 说明 gitlab是一个强大且免费的代码管理/部署工具&#xff0c;能统一集成代码仓…...

深入理解Linux线程(LWP):概念、结构与实现机制(2)

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;会いたい—Naomile 1:12━━━━━━️&#x1f49f;──────── 4:59 &#x1f504; ◀️ ⏸ ▶️ ☰ &a…...

VBS脚本搞定,快速批量提取一堆Excel文件中的数据

1.需求诞生 小王就职于一家国有大型企业&#xff0c;工作业务十分繁忙&#xff0c;在处理企业某业务数据时&#xff0c;需要从上千个Excel文件中提取某一单元格位置的数据&#xff0c;并整理到另一个Excel文件。要说是这样的Excel文件仅有几个或者十几个也还好&#xff0c;手动…...

大数据分析案例-基于SVM支持向量机算法构建手机价格分类预测模型

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…...

WPF 滑动条样式

效果图&#xff1a; 浅色&#xff1a; 深色&#xff1a; 滑动条部分代码&#xff1a; <Style x:Key"RepeatButtonTransparent" TargetType"{x:Type RepeatButton}"><Setter Property"OverridesDefaultStyle" Value"true"/&g…...

论文设计任务书学习文档|基于Web的个性化简历职位推荐系统的设计与实现

文章目录 论文(设计)题目:基于Web的个性化简历职位推荐系统的设计与实现1、论文(设计)的主要任务及目标2、论文(设计)的主要内容3、论文(设计)的基本要求4、进度安排论文(设计)题目:基于Web的个性化简历职位推荐系统的设计与实现 1、论文(设计)的主要任务及目标…...

Win11系统安装安卓子系统教程

随着Win11系统的不断普及&#xff0c;以及硬件设备的更新换代&#xff0c;我相信很多同学都已经更新并使用到了最新的Win11系统。那么&#xff0c;Win11系统最受期待的功能“Windows Subsystem for Android”&#xff08;简称WSA&#xff09;&#xff0c;即《安卓子系统》。他可…...

Python实现双向链表:从基础到应用

一、引言 双向链表是一种比单向链表更复杂的数据结构&#xff0c;每个节点除了包含数据和指向下一个节点的指针外&#xff0c;还包含一个指向前一个节点的指针。这种结构使得我们可以从链表的任何节点开始&#xff0c;向前或向后遍历链表。 目录 一、引言 二、节点定义 三、…...

c# 读取DataGridView中的数据

/// <summary> /// 读取DataGridView中的数据 /// </summary> /// <param name"dgv">DataGridView对象</param> /// <returns>DataTable对象</returns> private DataTable GetDgvToTab…...

Stable Diffusion中的Clip模型

基础介绍 Stable Diffusion 是一个文本到图像的生成模型&#xff0c;它能够根据用户输入的文本提示&#xff08;prompt&#xff09;生成相应的图像。在这个模型中&#xff0c;CLIP&#xff08;Contrastive Language-Image Pre-training&#xff09;模型扮演了一个关键的角色&a…...

Python批量提取文件夹中图片的名称及路径到指定的.txt文件中

目录 一、代码二、提取效果 一、代码 import os# 定义要保存的文件名 file_name "TestImage/Image_Visible_Gray.txt"# 读取文件夹路径 folder_path "TestImage/Image_Visible_Gray"# 遍历文件夹中的所有文件 with open(file_name, "w") as f…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站&#xff0c;会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后&#xff0c;网站没有变化的情况。 不熟悉siteground主机的新手&#xff0c;遇到这个问题&#xff0c;就很抓狂&#xff0c;明明是哪都没操作错误&#x…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 &#xff1a;主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 &#xff1a;确保数据的完整性&#xff0c;便于数据的查询和管理。 示例 &#xff1a;在学生信息表中&#xff0c;学号可以作为主键&#xff…...

【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道

文/法律实务观察组 在债务重组领域&#xff0c;专业机构的核心价值不仅在于减轻债务数字&#xff0c;更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明&#xff0c;合法债务优化需同步实现三重平衡&#xff1a; 法律刚性&#xff08;债…...