【云原生--K8S】K8S python接口研究
文章目录
- 前言
- 一、搭建ubuntu运行环境
- 1.运行ubuntu容器
- 2.拷贝kubeconfig文件
- 二、python程序获取k8s信息
- 1.获取node信息
- 2.获取svc信息
- 3.常用kubernetes API
- 总结
前言
在前面的文章中我们都是通过kubectl命令行来访问操作K8S,但是在实际应用中可能需要提供更方便操作的图形化界面,所以K8S官方就提供了两种API接口:基于GO语言的client-go和基于python的kubernetes。本篇我们先来研究一下基于python的kubernetes接口。
一、搭建ubuntu运行环境
由于我们的k8s环境还是部署在windows11的Docker Desktop中的,为了便于研究演示,我们准备在docker中运行一个带python的ubuntu镜像,在这个镜像容器中编写python程序访问k8s。
1.运行ubuntu容器
首先我们编写一个ubuntu-dockerfile如下:
# 使用Ubuntu20.04作为基础镜像
FROM ubuntu:20.04# 安装Python
RUN apt-get update && apt-get install -y python3 python3-pip# 安装vim
RUN apt-get update && apt-get install -y vim# 下载kubernetes python接口
RUN pip install kubernetes
生成ubuntu-test:v1镜像:docker build -f ./ubuntu-dockerfile -t ubuntu-test:v1 .
运行并命令行进入ubuntu-test:v1容器:docker run -it ubuntu-test:v1 bash

在这个容器/usr/local目录下创建test目录,然后在test目录下创建config目录。注意上图标红的为容器ID。
2.拷贝kubeconfig文件
在windows系统C:\Users\目录下找到.kube文件夹,里面有一个config文件,这个文件保存kubectl命令行连接k8s的信息,我们需要把这个文件拷贝到ubuntu-test:v1容器中,然后改名为kubeconfig.yaml。
docker cp config CONTAINER_ID:/usr/local/test/config命令可以把本机的文件拷贝到容器指定目录中,如下图所示:

二、python程序获取k8s信息
环境准备好后我们就可以在这个容器中编写python程序,通过调用kubernetes接口获取k8s信息。
1.获取node信息
编写node.py程序调用list_node函数获取node信息。
from kubernetes import client, config
import json
print("get k8s node")def list_allnode():config_file="/usr/local/test/config/kubeconfig.yaml"config.load_kube_config相关文章:
【云原生--K8S】K8S python接口研究
文章目录 前言一、搭建ubuntu运行环境1.运行ubuntu容器2.拷贝kubeconfig文件二、python程序获取k8s信息1.获取node信息2.获取svc信息3.常用kubernetes API总结前言 在前面的文章中我们都是通过kubectl命令行来访问操作K8S,但是在实际应用中可能需要提供更方便操作的图形化界面…...
5.26作业
服务器 2 3 #define BUFSIZE 10244 #define login_msg_len 205 6 typedef struct Node{7 char name[login_msg_len];8 struct sockaddr_in addr;9 struct Node *next;10 }Node;11 12 typedef struct Msgtype{13 char type;14 char username[login_msg_len]…...
链接库文件体积优化工具篇:bloaty
笔者之前参与过一个嵌入式智能手表项目,曾经碰到过这样一个问题:手表的flash大小只有2M,这意味着只能在上面烧录2M大小的代码。随着开发不断进行,代码越写越多,编译出来的bin也越来越大。最后bin大小超过了2M, 就没法烧…...
使用pyqt绘制一个爱心!
使用pyqt绘制一个爱心! 介绍效果代码 介绍 使用pyqt绘制一个爱心! 效果 代码 import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget from PyQt5.QtGui import QPainter, QPen, QBrush, QColor from PyQt5.QtCore import Qt, Q…...
关于 Transformer 的11个常见面试题
Transformer 是如何工作的? Transformer 是一种深度学习算法,特别适用于自然语言处理(NLP)任务,如语言翻译、语言生成和语言理解。它们能够处理长度可变的输入序列并捕捉长距离依赖关系,使其在理解和处理自…...
OS多核多线程锁记录笔记
自旋锁作用 自旋锁的是为了保护两个核上的公共资源,也就是全局变量,只有在一方也就是一个核抢到了自选锁,才能对公共资源进行操作修改,当然还有其他形似的锁如互斥锁,这里不比较两者的区别,以前没有深入的去…...
nginx做TCP代理
要实现TCP代理,可以使用Nginx的stream模块。stream模块允许Nginx作为一个转发代理来处理TCP流量,包括TCP代理、负载均衡和SSL终止等功能。 以下是配置Nginx实现TCP代理的基本步骤: 在Nginx配置文件中添加stream块,并在该块中配置…...
python 异常处理 try
异常 我们常见的代码错误后 会出现此类异常 SyntaxError:语法错误 AttributeError:属性错误 IndexError:索引错误 TypeError:类型错误 NameError:变量名不存在错误 KeyError:映射中不存在的关键字…...
月入10万+管道收益,揭秘旅游卡运营的5个阶段!
网上的项目众多,只要用心,便能发现不少商机。在互联网上运营,关键在于理解项目的底层逻辑。今天,我们来揭秘旅游卡项目,如何做到月入10万。 1、先赚成本 开始项目时,首要任务是回本。不要急于求成&#x…...
android_binder源码分析之_binder驱动使用服务
一,binder驱动源码分析,使用服务过程 uint32_t svcmgr_lookup(struct binder_state *bs, uint32_t target, const char *name) {uint32_t handle;unsigned iodata[512/4];struct binder_io msg, reply;bio_init(&msg, iodata, sizeof(iodata), 4);b…...
【波点音乐看广告】
import uiautomator2 as u2 import time from datetime import datetime import xml.etree.ElementTree as ET import re import os 连接设备 d u2.connect() os.system(‘adb shell chmod 775 /data/local/tmp/atx-agent’) os.system(‘adb shell /data/local/tmp/atx-age…...
[SWPUCTF 2021 新生赛]pop
常见的魔术方法 魔术方法__construct() 类的构造函数,在对象实例化时调用 __destruct() 类的析构函数,在对象被销毁时被调用 __call() 在对象中调用一个不可访问的对象时被调用,比如一个对象被调用时,里面没有程序想调用的属性 …...
【DevOps】Jenkins + Dockerfile自动部署Maven(SpringBoot)项目
环境 docker_host192.168.0.1jenkins_host192.168.0.2 jenkins_host构建完成后把jar发布到docker_host,再通过dockerfile自动构建镜像,运行镜像 1 Jenkins安装 AWS EC2安装Jenkins:AWS EC2 JDK11 Jenkins-CSDN博客 AWS EC2上Docker安装…...
【C++】——入门基础知识超详解
目录 编辑 1.C关键字 2. 命名空间 2.1 命名空间定义 2.2 命名空间使用 命名空间的使用有三种方式: 注意事项 3. C输入&输出 示例 1:基本输入输出 示例 2:读取多个值 示例 3:处理字符串输入 示例 4:读…...
ChatGPT技术演进简介
chatGPT(chat generative pre-train transformer, 可以对话的预训练trasformer模型),讨论点: 1、chatGPT为什么突然火了 2、GPT 1.0、2.0、3.0、3.5 、4和4o区别和特性,在不同应用场景中如何选对模型 3、未…...
C语言 | Leetcode C语言题解之第114题二叉树展开为链表
题目: 题解: void flatten(struct TreeNode* root) {struct TreeNode* curr root;while (curr ! NULL) {if (curr->left ! NULL) {struct TreeNode* next curr->left;struct TreeNode* predecessor next;while (predecessor->right ! NULL)…...
Vue 子组件向父组件传值
1、使用自定义事件 ($emit) 这是Vue中最常用的子组件向父组件传递数据的方式。子组件通过触发一个自定义事件,并附加数据作为参数,父组件则监听这个事件并处理传递过来的数据。 子组件 (发送数据): <template><button click"…...
【前端笔记】Vue项目报错Error: Cannot find module ‘webpack/lib/RuleSet‘
网上搜了下发现原因不止一种,这里仅记录本人遇到的原因和解决办法,仅供参考 原因:因为某种原因导致本地package.json中vue/cli与全局vue/cli版本不同导致冲突。再次提示,这是本人遇到的,可能和大家有所不同,…...
edge浏览器的网页复制
一些网页往往禁止复制粘贴,本文方法如下: 网址最前面加上 read: (此方法适用于Microsoft Edge 浏览器)在此网站网址前加上read:进入阅读器模式即可...
视频播放器-Kodi
一、前言 Kodi 是一款开源免费的多媒体播放软件。Kodi 是由非营利性技术联盟 Kodi 基金会开发的免费开源媒体播放器应用程序。 Kodi是一款免费和开源(遵循GPL协议)的多媒体播放器和娱乐中心软件,由XBMC基金会开发。Kodi的主要功能是管理和播…...
045B-基于51单片机智能窗帘(+红外遥控)【Proteus仿真+Keil程序+报告+原理图】
045B-基于51单片机智能窗帘(红外遥控) 一、核心硬件功能设计 1. 主控与显示单元 系统选用 STC89C52单片机作为主控芯片,负责信号采集、逻辑运算、模式判断与执行控制。搭配LCD1602 液晶显示屏实时显示系统当前模式、时间信息、光强数值及窗帘…...
告别臃肿:Win11Debloat让你的Windows系统重获新生
告别臃肿:Win11Debloat让你的Windows系统重获新生 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and custom…...
如何用XXMI启动器一键管理多游戏模组:告别文件混乱,享受整洁游戏体验
如何用XXMI启动器一键管理多游戏模组:告别文件混乱,享受整洁游戏体验 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher 还在为原神、星穹铁道、鸣潮等多款游…...
Ai2Psd:告别矢量丢失!Illustrator到PSD无损转换的终极解决方案
Ai2Psd:告别矢量丢失!Illustrator到PSD无损转换的终极解决方案 【免费下载链接】ai-to-psd A script for prepare export of vector objects from Adobe Illustrator to Photoshop 项目地址: https://gitcode.com/gh_mirrors/ai/ai-to-psd 还在为…...
彩言发票验真截图工具:发票验真截图效率提升10倍的实用神器
验真截图展示 在企业财务日常工作中,发票验真是最基础却最耗时的环节之一。纸质增值税专用发票、全电发票、真伪核对、批量处理……传统手动查验不仅效率低,还容易出错。为了测试推广高效工具,我们上手实测了彩言发票验真工具。结果显示&…...
洞察AI黑盒:SHAP、LIME与Captum如何赋能软件测试
随着人工智能技术在软件产品中的深度集成,从推荐系统到自动化缺陷预测,机器学习模型正成为现代软件的核心组件。然而,这些模型,尤其是复杂的深度神经网络,其决策过程往往如同一个“黑盒”,这给软件测试工作…...
TMSpeech:Windows本地实时语音识别工具完整使用指南
TMSpeech:Windows本地实时语音识别工具完整使用指南 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 还在为会议记录手忙脚乱?还在为视频字幕制作烦恼?TMSpeech为您带来革命性的解…...
【STM32内核解码】从Cortex-M0到M7:性能阶梯与实战选型指南
1. 认识ARM Cortex-M家族:从M0到M7的进化之路 第一次接触STM32选型时,我被型号列表里密密麻麻的字母数字组合搞得头晕眼花。直到一位前辈告诉我:"看懂内核型号,就掌握了选型的金钥匙。"这句话让我恍然大悟——原来STM32…...
Ostrakon-VL赋能智能运维:基于卷积神经网络的异常图像检测告警
Ostrakon-VL赋能智能运维:基于卷积神经网络的异常图像检测告警 1. 运维监控的痛点与机遇 IT运维团队每天面对海量监控数据,传统方式依赖人工查看仪表盘和告警日志,效率低下且容易遗漏关键异常。服务器CPU飙红、网络流量突增、磁盘空间告急等…...
计算机组成原理视角:解析GTE-Base-ZH在GPU上的计算与存储
计算机组成原理视角:解析GTE-Base-ZH在GPU上的计算与存储 最近在折腾一些文本嵌入模型,发现大家讨论模型效果的多,但聊它背后在硬件上怎么“跑”起来的少。这就像开车只关心能跑多快,却不看发动机是怎么工作的。今天,…...
