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

Python 使用 Token 认证方案连接 Kubernetes (k8s) 的详细过程

在 Kubernetes 中,使用 Token 认证是一种常见的客户端身份验证方式,尤其适用于 ServiceAccount。以下是详细的步骤,包括如何查看 Token、获取 API 服务地址、配置远程连接,以及如何在 Python 中连接 k8s。

1. 获取 Token

首先,您需要创建一个 ServiceAccount 并为其分配适当的角色和权限。以下是一个示例,创建一个名为 admin 的 ServiceAccount 并赋予集群管理员权限:

kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:name: adminannotations:rbac.authorization.kubernetes.io/autoupdate: "true"
roleRef:kind: ClusterRolename: cluster-adminapiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccountname: adminnamespace: kube-system

创建完成后,您可以通过以下命令获取 Secret 中的 Token 值:

# 获取 admin-token 的 Secret 名字
$ kubectl -n kube-system get secret | grep admin-token# 获取 Token 的值
$ kubectl -n kube-system describe secret <secret-name>

您也可以使用 jsonpath 的方式直接获取 Token 的值:

kubectl -n kube-system get secret <secret-name> -o jsonpath={.data.token}|base64 -d

请注意,Token 值是 base64 编码的,需要解码后使用 。

2. 获取 API 服务地址

您可以通过以下命令获取集群的 API 服务器地址:

kubectl cluster-info

这将显示 Kubernetes 控制平面的地址,例如 https://k8s-api:6443

3. 配置远程连接

如果您需要从集群外部访问 Kubernetes API,您可能需要配置 API 服务器以允许远程访问。这通常涉及到设置防火墙规则、网络策略以及可能的负载均衡器配置。

4. Python 连接 Kubernetes

在 Python 中,您可以使用 Kubernetes 的官方 Python 客户端库 kubernetes 来连接和操作 Kubernetes 集群。以下是如何使用 Token 认证连接 Kubernetes 的步骤:

首先,安装 Kubernetes Python 客户端库:

pip install kubernetes

然后,使用以下 Python 代码连接 Kubernetes:

from kubernetes import client, config# 定义 Token 和 API 服务器地址
Token = "your_token_here"
APISERVER = "https://your_api_server:6443"# 创建配置对象
configuration = client.Configuration()
configuration.host = APISERVER
configuration.verify_ssl = False  # 如果您不验证 SSL 证书
configuration.api_key = {"authorization": "Bearer " + Token}# 使用配置创建 API 对象
api_instance = client.CoreV1Api(client.ApiClient(configuration=configuration))# 列出所有 Pod
print(api_instance.list_pod_for_all_namespaces())

请确保替换 your_token_hereyour_api_server:6443 为您的实际 Token 和 API 服务器地址。如果您的集群配置了 SSL 证书验证,您需要设置 configuration.verify_sslTrue 并提供 CA 证书路径 。

通过以上步骤,您可以使用 Token 认证方案在 Python 中连接和操作 Kubernetes 集群。这种方法适用于需要从集群外部或在集群内部使用 ServiceAccount 进行 API 调用的场景。

相关文章:

Python 使用 Token 认证方案连接 Kubernetes (k8s) 的详细过程

在 Kubernetes 中&#xff0c;使用 Token 认证是一种常见的客户端身份验证方式&#xff0c;尤其适用于 ServiceAccount。以下是详细的步骤&#xff0c;包括如何查看 Token、获取 API 服务地址、配置远程连接&#xff0c;以及如何在 Python 中连接 k8s。 1. 获取 Token 首先&a…...

【C++】ReadFile概述,及实践使用时ReadFile的速率影响研究

ReadFile 函数概述 ReadFile 是 Windows API 函数&#xff0c;用于从文件或设备&#xff08;如串口、硬盘等&#xff09;中读取数据。它是同步和异步 I/O 操作的基础函数。 函数原型 BOOL ReadFile(_In_ HANDLE hFile, // 文件或设备句柄_Out_write…...

Mysql的UPDATE(更新数据)详解

MySQL的UPDATE语句是用于修改数据库表中已存在的记录&#xff0c;本文将详细介绍UPDATE语句的基本语法、高级用法、性能优化策略以及注意事项&#xff0c;帮助您更好地理解和应用这一重要的SQL命令。 1. 基本语法 单表更新 单表更新的基本语法如下&#xff1a; UPDATE [LOW…...

基于Java Springboot高校奖助学金系统

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 数据…...

如何在 Ubuntu 22.04 上安装带有 Nginx 的 ELK Stack

今天我们来聊聊如何在 Ubuntu 22.04 服务器上安装 ELK Stack&#xff0c;并集成 Nginx 作为 Web 服务器&#xff0c;同时使用 Let’s Encrypt Certbot 进行 SSL 认证。ELK Stack&#xff0c;包括 Elasticsearch、Logstash 和 Kibana&#xff0c;是一套强大的工具&#xff0c;用…...

Python爬虫:深入探索1688关键词接口获取之道

在数字化经济的浪潮中&#xff0c;数据的价值愈发凸显&#xff0c;尤其是在电商领域。对于电商平台而言&#xff0c;关键词不仅是搜索流量的入口&#xff0c;也是洞察市场趋势、优化营销策略的重要工具。1688作为中国领先的B2B电商平台&#xff0c;其关键词接口的获取对于商家来…...

Let‘s Encrypt SSL证书:acmessl.cn申请免费3个月证书

目录 一、CA机构 二、Lets Encrypt特点 三、申请SSL 一、CA机构 ‌Lets Encrypt‌是一个由非营利组织Internet Security Research Group (ISRG)运营的证书颁发机构&#xff08;CA&#xff09;&#xff0c;旨在通过自动化和开放的方式为全球网站提供免费、可靠的SSL/TLS证书。…...

JSON Web Token (JWT)的简单介绍、验证过程及令牌刷新思路

目录 一、JWT 1、什么是Jwt 2、为什么要使用Jwt 3、应用场景 4.Jwt的组成 4.1、Header 4.2、Payload 4.3、signature 二、Jwt验证过程 1、生成Jwt令牌 2、解析旧的Jwt 3、复制Jwt 4、Jwt有效时间测试 三、Jwt令牌刷新思路 1、配置JwtFilter过滤器 2、登录生成Jwt令…...

xxl-job入门

xxl-job , 定时任务 分布式 &#xff0c; 带来的问题的 解决方案 像之前 很多项目都用到定时任务&#xff0c; 但是如果要改为 分布式&#xff0c; 那么定时任务 就要用到 xxl-job 1.用户画像 拼多多&#xff0c;看了某个东西后&#xff0c;推荐类似东西&#xff0c; 做埋…...

100.【C语言】数据结构之二叉树的堆实现(顺序结构) 1

目录 1.顺序结构 2.示意图 ​编辑 从物理结构还原为逻辑结构的方法 3.父子节点编号的规律 4.顺序存储的前提条件 5.堆的简介 堆的定义 堆的两个重要性质 小根堆和大根堆 6.堆的插入 7.堆的实现及操作堆的函数 堆的结构体定义 堆初始化函数HeapInit 堆插入元素函…...

大模型 VS 大语言模型

最近很多朋友搞不懂大模型和大预言模型的区别&#xff0c;总是把大模型就认为是大语言模型。 今天就用这篇帖子做一个科普。 大模型 概念&#xff1a;大模型是指拥有超大规模参数&#xff08;通常在十亿个以上&#xff09;、复杂计算结构的机器学习模型。它通常能够处理海量数…...

Linux高阶——1117—TCP客户端服务端

目录 1、sock.h socket常用函数 网络初始化函数 首次响应函数 测试IO处理函数 获取时间函数 总代码 2、sock.c SOCKET() ACCEPT()——服务端使用这个函数等待客户端连接 CONNECT()——客户端使用这个函数连接服务端 BIND()——一般只有服务端使用 LISTEN()——服务端…...

【Qt】Qt 在main.cpp中使用tr()函数报错

1. 问题 Qt 在main.cpp中使用tr()报错。 error: tr was not declared in this scope2. 解决方法 main.cpp中注意如下&#xff1a; //添加头文件 #include <QObject>//添加QObject QObject::tr("Hello")3. 参考 Qt tr()函数不起效的小问题...

面向对象高级(5)接口

面向对象高级&#xff08;5&#xff09; 接口 接口就是规范&#xff0c;定义的是一组规则&#xff0c;体现了现实世界中“如果是...则必须能...”的思想。继承是一个"是不是"的is-a关系&#xff0c;而接口实现则是 "能不能"的has-a关系。 1、接口的定义格…...

uniapp发布android上架应用商店权限

先看效果&#xff1a; 实现原理&#xff1a; 一、利用uni.addInterceptor的拦截器&#xff0c;在一些调用系统权限前拦截&#xff0c;进行弹窗展示&#xff0c;监听确定取消实现业务逻辑。 二、弹窗是原生nativeObj进行drawRect绘制的 三、权限申请调用使用的 plus.android.…...

Centos Stream 9安装Jenkins-2.485 构建自动化项目步骤

官网&#xff1a;https://www.jenkins.io/ 1 下载 环境准备&#xff1a; 版本支持查询&#xff1a;https://pkg.jenkins.io/redhat-stable/ 安装JDK17&#xff1a;https://blog.csdn.net/qq_44870331/article/details/140784297 yum -y install epel-release wget upgradew…...

电路模型和电路定理(二)

电路元件 是电路中最基本的组成单元。 电阻元件&#xff1a;表示消耗电能的元件 电感元件&#xff1a;表示产生磁场&#xff0c;储存磁场能的元件 电容元件&#xff1a;表示产生电场&#xff0c;储存电场能量的元件 电压源和电流源&#xff1a;表示将其他形式的能量转变成…...

瑞佑液晶控制芯片RA6807系列介绍 (三)软件代码详解 Part.10(让PNG图片动起来)完结篇

RA6807是RA8876M的缩小版&#xff0c;具备RA8876M的所有功能&#xff0c;只将MCU控制接口进行缩减&#xff0c;仅保留SPI-3和I2C接口&#xff0c;其它功能基本相同。 该芯片最大可控制854x600的分辨率&#xff0c;内建64Mbits显存&#xff0c;多个图层&#xff0c;使用起来相当…...

Qt常用控件 按钮

文章目录 1. QAbstractButton 简介2. QPushButton2.1 例子1&#xff0c;设置按钮的图标2.2 例子2&#xff0c;设置按钮快捷键 3. QRadioButton3.1 介绍3.2 例子1&#xff0c;选择性别3.3 例子2&#xff0c;试试其他的信号3.3 例子3&#xff0c;分组 4. QCheckBox4.1 介绍4.2 例…...

MySQL学习/复习10视图/用户/权限/语言连接数据库

一、视图 1.1创建视图 1.2视图影响基表 1.3基表影响视图 1.4删除视图 1.5视图使用规则 二、数据库的用户 2.1mysql中的user表 注意事项&#xff1a;主机/用户名/密码/权限 2.2用户的创建 注意事项&#xff1a;设置密码与登录地点需谨慎 2.3删除用户 注意事项&#xff1a;% 2.4…...

适合自动化测试练习的免费 API 清单

免费接口-聚合网站 https://www.juhe.cn/ 适合自动化测试练习的免费 API 清单,按场景分类,覆盖 REST/GraphQL、状态码验证、自定义 Mock 与真实数据,可直接用于接口测试(含 Python+pytest)练习。 一、核心免费 API 清单(按场景) 表格 名称 类型 核心用途 特点 访问方式…...

Wan2.1-umt5多轮对话效果展示:复杂任务分解与执行跟踪

Wan2.1-umt5多轮对话效果展示&#xff1a;复杂任务分解与执行跟踪 最近在测试各种对话模型时&#xff0c;我遇到了一个挺有意思的挑战&#xff1a;让AI帮忙规划一次完整的旅行。这可不是简单的一问一答&#xff0c;它涉及到理解模糊需求、主动追问细节、分解多个子任务&#x…...

LLM推理流式响应延迟骤降73%:FastAPI 2.0 + asyncpg + Redis Stream 实战调优,附可复用中间件代码库

第一章&#xff1a;LLM推理流式响应延迟骤降73%&#xff1a;FastAPI 2.0 asyncpg Redis Stream 实战调优&#xff0c;附可复用中间件代码库在高并发LLM服务场景中&#xff0c;传统同步I/O与阻塞式数据库访问常导致首字节延迟&#xff08;TTFB&#xff09;飙升。我们通过重构请…...

Keepass2Android密码库完整性验证终极指南:如何确保你的密码安全无虞

Keepass2Android密码库完整性验证终极指南&#xff1a;如何确保你的密码安全无虞 【免费下载链接】keepass2android Password manager app for Android 项目地址: https://gitcode.com/gh_mirrors/ke/keepass2android 在当今数字化时代&#xff0c;密码管理器已成为保护…...

go-pry配置文件详解:自定义导入包和调试选项

go-pry配置文件详解&#xff1a;自定义导入包和调试选项 【免费下载链接】go-pry An interactive REPL for Go that allows you to drop into your code at any point. 项目地址: https://gitcode.com/gh_mirrors/go/go-pry go-pry是一款强大的Go语言交互式REPL工具&…...

forkrun:革新数据处理,突破传统并行工具性能瓶颈

【导语&#xff1a;forkrun 作为一款自调优工具&#xff0c;可直接替代 GNU Parallel 和 xargs -P。它在现代 CPU 上能显著提升基于 Shell 的数据准备速度&#xff0c;尤其在 NUMA 架构上表现出色&#xff0c;为数据处理领域带来了新的变革。】数据处理速度的飞跃&#xff1a;5…...

Adobe软件非正版弹窗终极解决方案:PS/Ai/PR/AE禁用提示一键清除指南

1. Adobe弹窗问题的根源分析 最近不少朋友打开Photoshop、Illustrator这些Adobe软件时&#xff0c;突然跳出一个烦人的提示框&#xff1a;"Your non-genuine Adobe app will be disabled soon"。这个警告不仅影响使用体验&#xff0c;严重时还会导致软件直接罢工。作…...

春招已经过半,这一波再不动手,基本就没位置了

关注 霍格沃兹测试学院公众号&#xff0c;回复「资料」&#xff0c;领取人工智能测试开发技术合集导读3月底这个时间点&#xff0c;如果你还在纠结“要不要投”&#xff0c;那基本已经慢半拍了。现在的真实情况是&#xff1a;大厂已经进入筛选面试并行阶段一部分公司已经开始发…...

Chandra AI企业知识管理方案:文档智能检索与摘要生成

Chandra AI企业知识管理方案&#xff1a;文档智能检索与摘要生成 1. 引言 企业每天都在产生海量文档——合同、报告、PPT、技术文档...这些宝贵的知识资产往往散落在各处&#xff0c;查找困难&#xff0c;利用率低。传统的关键词搜索就像在黑暗中摸索&#xff0c;找到的文档可…...

Labelme标注神器:从安装到实战,手把手教你打造自己的图像分割数据集

Labelme图像标注实战&#xff1a;从入门到生产级数据集构建 在计算机视觉项目中&#xff0c;数据标注往往是决定模型效果的关键因素。不同于常见的矩形框标注工具&#xff0c;Labelme以其灵活的多边形标注能力和丰富的输出格式支持&#xff0c;成为语义分割任务的首选工具。但很…...