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

【云原生--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
http://www.lryc.cn/news/354317.html

相关文章:

  • 5.26作业
  • 链接库文件体积优化工具篇:bloaty
  • 使用pyqt绘制一个爱心!
  • 关于 Transformer 的11个常见面试题
  • OS多核多线程锁记录笔记
  • nginx做TCP代理
  • python 异常处理 try
  • 月入10万+管道收益,揭秘旅游卡运营的5个阶段!
  • android_binder源码分析之_binder驱动使用服务
  • 【波点音乐看广告】
  • [SWPUCTF 2021 新生赛]pop
  • 【DevOps】Jenkins + Dockerfile自动部署Maven(SpringBoot)项目
  • 【C++】——入门基础知识超详解
  • ChatGPT技术演进简介
  • C语言 | Leetcode C语言题解之第114题二叉树展开为链表
  • Vue 子组件向父组件传值
  • 【前端笔记】Vue项目报错Error: Cannot find module ‘webpack/lib/RuleSet‘
  • edge浏览器的网页复制
  • 视频播放器-Kodi
  • Helm安装kafka3.7.0无持久化(KRaft 模式集群)
  • 【机器学习】期望最大化(EM)算法
  • 【Python】机器学习中的过采样和欠采样:处理不平衡数据集的关键技术
  • 重新思考:Netflix 的边缘负载均衡
  • 元组的创建和删除
  • CSS3用户界面
  • STL源码刨析:序列式容器之vector
  • Flutter 中的 AbsorbPointer 小部件:全面指南
  • Web开发学习总结
  • springboot相关知识集锦----1
  • App推广新境界:Xinstall助你轻松突破运营痛点,实现用户快速增长!