跳转到主要内容

Kubernetes API的评论性界面

项目描述

针对Kubernetes API的评论性Python接口

本包提供了一种Pythonic接口,用于在Python代码中使用Kubernetes API。它是手工制作的,有观点性的,旨在隐藏原始API的边缘情况和繁琐部分,这些部分会被使用swagger定义的客户端所暴露。

本包尚未完成,当前的主要功能包括

  • 主要资源封装

    • 节点

    • 命名空间

    • Pod

    • 副本集/复制控制器

    • 服务

    • 机密

  • 良好的标签支持

  • 对WATCH API的阻塞和非阻塞支持。

  • 查询、创建和删除资源。

  • 低级API,可以直接使用Kubernetes API。

  • 无需真实集群即可编写测试

我们正在开发以下功能

  • 修改副本集:例如,更改副本数量,更改选择器。

  • 修改资源。

  • 创建新的资源项。

  • 删除资源项。

安装

pip install kube

使用方法

要使用API,必须对Kubernetes apiserver进行身份验证。目前仅支持使用kubectl在代理模式下推荐的方法。只需在本地主机上运行kubectl proxy即可建立连接。在集群本身运行时,可以通过在同一个pod中的另一个容器中运行kubectl proxy来轻松实现。

与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

  • invoke

测试Kube

测试可以以两种方式运行:使用模拟的API服务器(默认),或针对真实Kubernetes集群。前者运行非常快,不会对真实集群造成任何干扰。后者运行较慢,但可以用来验证代码在真实Kubernetes集群中的行为是否正确。再次强调,默认情况下,测试将使用模拟的apiserver。要针对真实集群执行测试,请使用py.test --verify <kubectl-context>调用它们。测试将尽量不破坏您的集群或留下任何测试后的工件,但我们建议使用<kubectl-context>引用测试集群。

许可证

Kube在LGPLv3许可下可用,允许您在不受您选择的许可(无论是专有还是开源)影响的情况下使用它,同时保持kube本身为免费软件。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

kube-0.10.0.tar.gz (58.6 kB 查看哈希值)

上传时间 源代码