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

【玩转client-go】如何获取 Kubernetes API 客户端的 *rest.Config 对象

目录

1. 使用 kubeconfig 文件

2. 使用 Kubernetes 集群内的 Service Account

3. 直接指定 API Server 的地址和认证信息

4. 使用 genericclioptions.NewConfigFlags()

总结


在使用 Kubernetes API 客户端——client-go 的过程中,我们通常需要获取 *rest.Config 配置对象来与 Kubernetes API 服务器进行交互。本文将介绍四种常用的获取 *rest.Config 的方法。

1. 使用 kubeconfig 文件

kubeconfig 文件是一个 YAML 文件,用于指定 Kubernetes 集群的访问凭证、上下文和集群信息等。我们可以通过以下方式获取 *rest.Config 对象:

import ("k8s.io/client-go/kubernetes""k8s.io/client-go/tools/clientcmd"
)func getRestConfigFromKubeConfig() (*rest.Config, error) {kubeConfigPath := "/path/to/kubeconfig"config, err := clientcmd.BuildConfigFromFlags("", kubeConfigPath)if err != nil {return nil, err}return config, nil
}func main() {config, err := getRestConfigFromKubeConfig()if err != nil {panic(err.Error())}clientset, err := kubernetes.NewForConfig(config)if err != nil {panic(err.Error())}// 使用 clientset 进行操作
}

2. 使用 Kubernetes 集群内的 Service Account

在 Kubernetes 中,每个 Namespace 都有一个默认的 Service Account。我们可以通过这个 Service Account 来获取 *rest.Config 对象:

import ("k8s.io/client-go/kubernetes""k8s.io/client-go/rest"
)func getRestConfigFromServiceAccount() (*rest.Config, error) {config, err := rest.InClusterConfig()if err != nil {return nil, err}return config, nil
}func main() {config, err := getRestConfigFromServiceAccount()if err != nil {panic(err.Error())}clientset, err := kubernetes.NewForConfig(config)if err != nil {panic(err.Error())}// 使用 clientset 进行操作
}

3. 直接指定 API Server 的地址和认证信息

我们可以直接指定 API Server 的地址和认证信息来获取 *rest.Config 对象:

import ("k8s.io/client-go/kubernetes""k8s.io/client-go/rest"
)func getRestConfigFromDirect() (*rest.Config, error) {config := &rest.Config{Host: "https://<api-server-address>",TLSClientConfig: rest.TLSClientConfig{// 省略证书认证相关参数},// 省略 token 认证相关参数}return config, nil
}func main() {config, err := getRestConfigFromDirect()if err != nil {panic(err.Error())}clientset, err := kubernetes.NewForConfig(config)if err != nil {panic(err.Error())}// 使用 clientset 进行操作
}

4. 使用 genericclioptions.NewConfigFlags()

`genericclioptions.NewConfigFlags()` 方法可以从环境变量、命令行参数、默认配置文件等多个来源中获取 Kubernetes 集群的配置信息,并生成对应的 *rest.Config 对象。

import ("k8s.io/cli-runtime/pkg/genericclioptions""k8s.io/client-go/kubernetes""k8s.io/client-go/rest"
)func getRestConfigFromConfigFlags() (*rest.Config, error) {configFlags := genericclioptions.NewConfigFlags(true)config, err := configFlags.ToRESTConfig()if err != nil {return nil, err}return config, nil
}func main() {config, err := getRestConfigFromConfigFlags()if err != nil {panic(err.Error())}clientset, err := kubernetes.NewForConfig(config)if err != nil {panic(err.Error())}// 使用 clientset 进行操作
}

总结

本文介绍了四种获取 Kubernetes API 客户端的 *rest.Config 对象的方法,分别是使用 kubeconfig 文件、使用 Kubernetes 集群内的 Service Account、直接指定 API Server 的地址和认证信息、以及使用 genericclioptions.NewConfigFlags() 方法。不同的方法适用于不同的场景,开发者可以根据自己的需求来选择使用。

相关文章:

【玩转client-go】如何获取 Kubernetes API 客户端的 *rest.Config 对象

目录 1. 使用 kubeconfig 文件 2. 使用 Kubernetes 集群内的 Service Account 3. 直接指定 API Server 的地址和认证信息 4. 使用 genericclioptions.NewConfigFlags() 总结 在使用 Kubernetes API 客户端——client-go 的过程中&#xff0c;我们通常需要获取 *rest.Config 配…...

保护模式段描述符

目前为止&#xff0c;内存还是分段模式&#xff0c;所以想要保护内存&#xff0c;就需要保存段。由于CPU的扩展导致了32位的段基地址和段内偏移&#xff0c;所以16位的段寄存器就无法放下这些信息。现在就需要把这些信息放到内存中&#xff0c;这些信息被封装成特定的段描述符。…...

两个数组的交集

给定两个数组 nums1 和 nums2 &#xff0c;返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 思路&#xff1a; 由于这道题目&#xff0c;输出结果中的每个元素一定是唯一的&#xff0c;也就是说输出的结果的去重的&#xff0c; 同时可…...

原创文章生成器在线版-ai写作生成器

随着人工智能技术的迅猛发展&#xff0c;越来越多的人开始意识到&#xff0c;利用AI可以实现许多以前不可能想象的事情。其中&#xff0c;一种最能体现人工智能技术优势的应用就是“ai原创文章生成器”。它可以为营销从业者提供一种全新的营销推广方式。 那么&#xff0c;什么是…...

打造高性能CSS的九个技巧我是这么做的

在Web开发中&#xff0c;CSS是不可或缺的一部分。但是&#xff0c;如果CSS代码不够优化&#xff0c;会导致页面加载速度变慢&#xff0c;用户体验下降。以下是九个技巧&#xff0c;用于打造高性能的CSS代码。 避免使用通配符选择器&#xff1a;通配符选择器会匹配页面中的所有…...

python tqdm教程

文章目录 1. 搭配迭代器使用2. 设置动态数据打印3. 中途打印不干扰进度条4. 在jupyter中打印不干扰进度条5. 使用gui显示进度条6. 双循环嵌套进度条7. enumerate和tqdm搭配使用参考文献tqdm是python中打印进度条的一个简易工具包,可以方便查看循环的进度。具体见tqdm文档 1. …...

深度学习 - 41.Word2vec、EGES 负采样实现 By Keras

目录 一.引言 二.实现思路 1.样本构建 2.Word2vec 架构 3.EGES 架构 4.基于 NEG 的 Word2vec 架构 三.Keras 实现 Word2vec 1.样本构建 2.模型构建 3.向量获取 四.keras 实现 EGES 1.样本构建 2.模型构建 3.Dot Layer 详解 3.1 init 方法 3.2 call 方法 3.3 完…...

研发管理风险控制

软件研发过程中需要做好风险控制&#xff0c;保证项目按计划发布&#xff0c;下面说明一下个人对软件风险控制的看法 一、规划、技术选型、架构方面提前规避风险 1.选择最熟悉、使用最多的技术 “一个新项目里最好不要使用超过30%的新技术”&#xff0c;我觉得这句话是有一定…...

母婴品牌内容输出怎么做?“四板斧”送你

新媒体时代&#xff0c;信息大爆炸&#xff0c;人们的注意力有限&#xff0c;有噱头和亮点的内容才能博得注意&#xff0c;成为用户关注的焦点。 母婴行业重视品牌效益和产品的质量&#xff0c;毕竟类似“三聚氰胺”的惨剧谁也不希望再发生。母婴产品的质量依赖技术和生产线支…...

【视频】视频存储技术

1、NVR NVR是(网络硬盘录像机)的缩写。NVR最主要的功能是通过网络接收IPC(网络摄像机)设备传输的数字视频码流, 并进行存储、管理,从而实现网络化带来的分布式架构优势。简单来说,通过NVR,可以同时观看、浏览、回放、管理、存储多个网络摄像机。NVR是x86架构储存+监控软…...

【C/C++】MySQL 为什么选择 B+ 树作为底层数据结构

为什么MySQL底层数据结构选择B树&#xff1f;&#xff08;而不是B树等其他数据结构&#xff09; B树非叶子节点&#xff0c;不存放数据记录&#xff0c;仅存放指针与关键字&#xff0c;所以一个B树非叶子节点可以存放更多子节点信息&#xff0c;有利于降低树高度&#xff0c;从…...

17、嵌入式Servlet容器

文章目录 1、切换嵌入式Servlet容器1.1、默认支持的webServer1.2、切换服务器 2、原理2.1、ServletWebServerApplicationContext2.2、作用2.3、ServletWebServerFactoryAutoConfiguration2.4、作用2.5、ServletWebServerFactoryConfiguration 配置类2.6、web服务器工厂作用 3、…...

倾斜摄影三维模型转换3DTILTES格式遇到的常见问题

倾斜摄影三维模型转换3DTILTES格式遇到的常见问题 将倾斜摄影三维模型从OSGB格式转换为3DTILES格式时&#xff0c;常见的问题包括&#xff1a; 1、3D Tiles生成时间较长&#xff1a;由于3D Tiles是一种高效的地理数据存储格式&#xff0c;能够支持海量的空间数据呈现和查询&am…...

手机如何访问电脑文件?(iOS和Android)

可以通过手机访问电脑文件吗&#xff1f; “我需要在我的电脑上查看一个文件&#xff0c;但我现在在外面无法实际访问它。我可以通过手机访问我的电脑文件吗&#xff1f;” 答案当然是可以的&#xff0c;无论您使用的是iOS设备还是Android设备&#xff0c;您都可以通过手机…...

TI在物联网和AI边缘计算中落伍了吗?

摘要&#xff1a;本文介绍一下TI在边缘计算工作中所做的努力。 发明“人工智能”这个term的老头儿也不会想到人工智能在中国有多火。 不管是懂还是不懂&#xff0c;啥东西披上“人工智能“的面纱都能瞬间成为大项目。 学习AI 的年轻人认识NVIDIA&#xff0c;可能不太知道DSP是…...

LoadRunner参数化最佳实践:让你的性能测试更加出色!

距离上次使用loadrunnr 已经有一年多的时间了。初做测试时在项目中用过&#xff0c;后面项目中用不到&#xff0c;自己把重点放在了工具之外的东西上&#xff0c;认为性能测试不仅仅是会用工具&#xff0c;最近又想有一把好的利器毕竟可以帮助自己更好的完成性能测试工作。这算…...

软件测试工程师需要达到什么水平才能顺利拿到 20k 无压力?

最近有粉丝朋友问&#xff1a;软件测试员需要达到什么水平才能顺利拿到 20k 无压力&#xff1f; 这里写一篇文章来详细说说&#xff1a; 目录 扎实的软件测试基础知识&#xff1a;具备自动化测试经验和技能&#xff1a;熟练掌握编程语言&#xff1a;具备性能测试、安全测试、全…...

RabbitMQ-高级篇

服务异步通信-高级篇 消息队列在使用过程中&#xff0c;面临着很多实际问题需要思考&#xff1a; [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D6S1iAs7-1681919354777)(assets/image-20210718155003157.png)] 1.消息可靠性 消息从发送&#x…...

深度学习_Learning Rate Scheduling

我们在训练模型时学习率的设置非常重要。 学习率的大小很重要。如果它太大&#xff0c;优化就会发散&#xff0c;如果它太小&#xff0c;训练时间太长&#xff0c;否则我们最终会得到次优的结果。其次&#xff0c;衰变率同样重要。如果学习率仍然很大&#xff0c;我们可能会简…...

snmp服务利用(端口:161、199、391、705、1993)

服务介绍 简单网络管理协议 是一种广泛应用于TCP/IP网络的网络管理标准协议(应用层协议),它提供了一种通过运行网络管理软件的中心计算机(即网络管理工作站)来监控和管理计算机网络的标准化管理框架(方法)。目前已颁布了SNMPv1、SNMPv2c和SNMPv3三个版本,广泛应用于网…...

异常检测实战:从面试陷阱到产线落地的20个关键问题

1. 项目概述&#xff1a;这不是刷题手册&#xff0c;而是一张通往机器学习工程现场的“通关地图”“Crack ML Interviews with Confidence: Anomaly Detection (20 Q&A)”——这个标题里藏着三个被绝大多数求职者严重低估的关键信号&#xff1a;Crack不是“背答案”&#x…...

告别命令行!用VSCode插件一键搞定ESP-IDF环境(ESP32/S3保姆级教程)

告别命令行&#xff01;用VSCode插件一键搞定ESP-IDF环境&#xff08;ESP32/S3保姆级教程&#xff09; 当一块崭新的ESP32开发板躺在桌面上时&#xff0c;许多开发者会陷入两难&#xff1a;既渴望体验这款低功耗Wi-Fi/蓝牙双模芯片的强大性能&#xff0c;又对繁琐的环境配置望而…...

深度学习-基于YOLOv8的香蕉成熟度检测系统 YOLOV8预训练模型如何训练香蕉成熟度检测数据集

深度学习-基于YOLOv8的香蕉成熟度检测系统&#xff0c;包括 全部源码 完整标注的数据集 训练好的模型及训练结果 项目运行教程 内含 10000 张数据集&#xff0c;包括 [‘freshripe’, ‘freshunripe’, ‘overripe’, ‘ripe’, ‘rotten’, ‘unripe’]&#xff0c;6 类本项目…...

LimboAI:Godot 4原生行为树+黑板+状态机AI框架实战指南

1. 这不是又一个“AI插件”&#xff0c;而是Godot 4里真正能跑通行为树黑板状态机闭环的AI开发框架我第一次在Godot 4.2项目里把LimboAI的BTTaskMoveTo节点拖进行为树编辑器、连上BlackboardKey、再绑定到一个带NavigationAgent3D的NPC身上&#xff0c;按下F5运行——那个角色真…...

PEMS交通数据分析实战:如何用Python从海量5分钟速度数据中挖掘拥堵规律?

PEMS交通数据分析实战&#xff1a;如何用Python从海量5分钟速度数据中挖掘拥堵规律&#xff1f; 在智能交通系统快速发展的今天&#xff0c;PEMS&#xff08;Performance Measurement System&#xff09;提供的5分钟级交通流数据已成为城市拥堵分析和路网优化的黄金标准。这些看…...

UniApp视频模块深度配置:云打包与Android离线打包的差异详解与选型建议

UniApp视频模块深度配置&#xff1a;云打包与Android离线打包的差异详解与选型建议 在移动应用开发领域&#xff0c;视频功能已成为提升用户体验的关键要素。UniApp作为跨平台开发框架&#xff0c;其VideoPlayer模块的集成方式直接影响着开发效率和最终产品质量。面对云打包与离…...

Perforce 2025.2 REST API 技术预览版发布:开启“无客户端”运维新时代

Perforce 2025.2 REST API 技术预览版发布&#xff1a;开启“无客户端”运维新时代 在上一期“ Perforce on Tour 游戏研发效能进阶沙龙”回顾文章中&#xff0c;我们分享了Perforce 资深技术工程师 Kory Luo关于P4 MCP&#xff08;Model Context Protocol&#xff09;服务器的…...

ElevenLabs广西话输出突然失真?一文定位3类隐藏错误:声母浊化丢失、入声韵尾截断、连读变调失效

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs广西话语音输出失真现象概览 ElevenLabs 作为当前主流的AI语音合成平台&#xff0c;其多语言支持能力广受开发者青睐。然而&#xff0c;在针对广西话&#xff08;粤语勾漏片与邕浔片混合变体…...

论文修改踩坑无数?paperxie 帮你一站式搞定查重与 AIGC 降重难题

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPThttps://www.paperxie.cn/weight?type1https://www.paperxie.cn/weight?type1 作为一名被论文查重和 AIGC 检测反复折磨过的过来人&#xff0c;我深知毕业季里&#xff0c;对着飘红的查重报告和居高…...

DeepSeek OCR:文档智能处理的成本革命与工程落地

1. 这不是又一个OCR工具&#xff0c;而是一次成本结构的重写DeepSeek OCR这个名字刚出来时&#xff0c;我第一反应是&#xff1a;又一个堆参数的模型&#xff1f;点开官网文档扫了一眼&#xff0c;发现它连“支持PDF”这种基础描述都懒得写——因为PDF只是输入格式里最不值一提…...