Kubernetes Python Client:用 Python 操作 K8s 集群

文章目录

  • [Kubernetes Python Client:用 Python 操作 K8s 集群](#Kubernetes Python Client:用 Python 操作 K8s 集群)
    • [1、 这项目干嘛的](#1、 这项目干嘛的)
    • [2、 基本用法](#2、 基本用法)
    • [3、 版本兼容性](#3、 版本兼容性)
    • [4、 适合谁用](#4、 适合谁用)

Kubernetes Python Client:用 Python 操作 K8s 集群

Kubernetes Python Client 在 GitHub 上已经拿到 7,588 Star。

这是 Kubernetes 官方维护的 Python 客户端,用来在 Python 代码里调用 Kubernetes API。管理 Pod、Service、Deployment,查询集群状态,监听资源变化,都能通过它完成。

1、 这项目干嘛的

核心就干一件事:把 Kubernetes 的 REST API 包装成 Python 接口。你不用手写 HTTP 请求,不用自己处理认证和序列化,导入包、加载配置、调方法就行。

它支持同步和异步两种模式。同步代码用 kubernetes 模块,异步用 kubernetes.aio。两种模式接口基本一致,切换成本很低。

2、 基本用法

安装一行命令:

复制代码
pip install kubernetes

列出所有 Pod:

python 复制代码
from kubernetes import client, config

config.load_kube_config()
v1 = client.CoreV1Api()
ret = v1.list_pod_for_all_namespaces(watch=False)
for i in ret.items:
    print("%s\t%s\t%s" % (i.status.pod_ip, i.metadata.namespace, i.metadata.name))

监听 Namespace 变化:

python 复制代码
from kubernetes import client, config, watch

config.load_kube_config()
v1 = client.CoreV1Api()
w = watch.Watch()
for event in w.stream(v1.list_namespace, _request_timeout=60):
    print("Event: %s %s" % (event['type'], event['object'].metadata.name))

异步模式代码结构几乎一样:

python 复制代码
import asyncio
from kubernetes.aio import client, config
from kubernetes.aio.client.api_client import ApiClient

async def main():
    await config.load_kube_config()
    async with ApiClient() as api:
        v1 = client.CoreV1Api(api)
        ret = await v1.list_pod_for_all_namespaces()
        for i in ret.items:
            print(i.status.pod_ip, i.metadata.namespace, i.metadata.name)

asyncio.run(main())

3、 版本兼容性

这个项目遵循语义化版本,客户端版本和 Kubernetes 集群版本有明确的对应关系。当前支持的版本从 client 9 到 client 36,覆盖了 Kubernetes 1.12 到 1.37。

维护策略和上游保持一致:同时支持三个 GA 大版本。版本选错不会导致代码崩溃,只是可能用不到新 API 或者遇到已移除的旧接口。

4、 适合谁用

  • 用 Python 写运维脚本、需要批量操作 K8s 资源的工程师
  • 在构建平台或工具链、需要程序化调用 Kubernetes API 的开发者
  • 做 CI/CD 流水线、需要在部署环节查询或修改集群状态的团队

这个项目代码生成自 OpenAPI 规范,API 覆盖度和上游保持同步。只要 Kubernetes 支持的操作,这里基本都能找到对应方法。

群状态的团队

这个项目代码生成自 OpenAPI 规范,API 覆盖度和上游保持同步。只要 Kubernetes 支持的操作,这里基本都能找到对应方法。

相关推荐
蜜桃味女焊匠人19 小时前
气保焊怎样改造,稳定达成40%-60%节气降耗效果?
人工智能·经验分享·其他·机器人
水质在线监测仪厂家_慕迪科技19 小时前
在废水监测过程中产生的废液要处理吗?
其他
WiKiLeaks_successor2 天前
JaPanese Learning day22(どんな 部屋を お探しですか)
其他
老陈头聊SEO3 天前
生成引擎优化(GEO)在数字内容创作中的优势与创新实践
其他·搜索引擎·seo优化
jikemaoshiyanshi3 天前
工业高可用基建数据中心解决方案厂商怎么选?从万可的工程能力来看
其他
迷途呀4 天前
CSDN Markdown 编辑器完全指南:从快捷键到高级图表
笔记·其他
老吴的商业笔记5 天前
GEO系统贴牌深度评测:爱搜索GEO营销系统如何为工业制造企业构建AI搜索护城河
其他
蜜桃味女焊匠人5 天前
手工氩弧焊高耗气整改实战
人工智能·经验分享·其他·机器人
2601_949814696 天前
Moneta外汇的新手理解门槛够不够顺手?
其他
蜜桃味女焊匠人6 天前
2026焊接保护气体降耗最优改造方案
人工智能·经验分享·其他·机器人