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本身的自由软件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java 安卓碎片问题   java获取通过字符串删除的内容。replaceAll()   java中的三角形数   JavaSpringbean作用域:会话和全局会话   java为什么JavaBeans不序列化类型列表中的属性?   java无法使用Spring和Thymeleaf在视图上传输对象   Java中变量内部的变量   java在Eclipse上调整黄盒大小并保持其大小   java使用Jackson将名称-值对数组反序列化为对象   安卓 Java多变量长度参数   java JavaFX版本的“isDescendingFrom(组件a、组件b)”   java如何在春季发送多个PDF?   java以不同的格式为联系人分配相同的号码   如何从打包到自己的java库中访问资源的文件。罐子   java模块化反射公共闭包原理   java应用程序在使用进程时停止响应。等待()   java React setState不工作,出现错误