Kubernetes API的自以为是接口
kube的Python项目详细描述
kubernetes api的自以为是的python接口
这个包提供了一个pythonic接口来使用Kubernetesapi 在python代码中。它是手工制作和固执己见的 试图隐藏原始api的边缘情况和繁琐部分 它将由客户端使用swagger定义公开。
此软件包远未完成,当前的主要功能是:
- 主要资源包装:
- 节点
- 名称空间
- 吊舱
- 复制集/复制控制器
- 服务
- 秘密
- 良好的标签支持
- 对watch api的阻塞和非阻塞支持。
- 查询、创建和删除资源。
- 低级api更直接地使用kubernetes api。
- 编写测试而不需要真正的集群
我们正在研究这些功能:
- 修改复制集:即更改复制数、更改选择器。
- 一般地修改资源。
- 正在创建新的资源项。
- 正在删除资源项。
安装
pip install kube
用法
要使用api,必须向kubernetes apiserver进行身份验证。 目前只有推荐的approach在代理中使用kubectl 支持模式。只需在本地主机上运行kubectl proxy,然后 连接将起作用。当在集群中运行时,这可以 通过在另一个container中运行kubectl代理很容易实现 在同一个豆荚里。
使用kubernetes集群的中心对象是 Cluster对象:
import kube cluster = kube.Cluster() rs = cluster.replicasets.fetch('proxy', namespace='default') pods = cluster.pods.filter(labels=rs.meta.labels, filter={'metadata.namespace': 'default'}) for pod in pods: assert pod.phase is pod.PodPhase.Running
文档
kube库在http://python-kube.readthedocs.io有完整的文档记录。
贡献
该项目仍处于早期阶段,请随时提交 向项目提出建议、问题或请求。 https://bitbucket.org/cobeio/kube欢迎所有反馈。
发展依赖性
在开发kube时,您需要一些额外的依赖项:
- pytest
- pytest cov
- Pylint
- 调用
测试kube
测试可以通过两种方式运行:使用一个存根的api服务器(默认值); 或者对抗真正的库伯内特斯星系团。前者跑得很快 不会和一个真正的集群混在一起。后者稍慢,但可以 用于验证代码对真正的kubernetes的行为是否正确 集群。重申一下,默认情况下,测试将使用stubbed out APIServer公司。要针对真实集群执行测试,请调用它们 使用py.test --verify<kubectl-context>。不需要运行 kubectl proxy,这是自动完成的。测试将尽量不 但是,在测试运行之后,请中断集群或留下任何人工制品 我们建议<kubectl-context>引用测试集群。
许可证
kube可以在LGPLv3下使用,它允许您在 拥有项目,无论您选择的许可证是什么,都是专有的 或者开源,同时保持kube本身的自由软件。