Kubernetes的Python客户端库
项目描述
Kubernetes的Python客户端库
Kel是Eldarion, Inc.的一个开源平台即服务(PaaS),它通过整个生命周期轻松管理Web应用程序的部署和托管,从开发到测试再到生产。它为Kubernetes添加组件和工具,帮助开发者管理应用程序基础设施。Kel建立在Eldarion运行领先的Python和Django PaaS的7+年经验之上。
有关Kel的更多信息,请访问kelproject.com,关注我们的Twitter @projectkel,并加入我们的Slack团队。
功能
使用kubeconfig进行身份验证的requests HTTP接口
原生Python查询Kubernetes API对象
安装
要安装pykube,请使用pip
pip install pykube
用法
查询自定义命名空间中所有就绪的Pod
import operator
import pykube
api = pykube.HTTPClient(pykube.KubeConfig.from_file("/Users/<username>/.kube/config"))
pods = pykube.Pod.objects(api).filter(namespace="gondor-system")
ready_pods = filter(operator.attrgetter("ready"), pods)
选择器查询
pods = pykube.Pod.objects(api).filter(
namespace="gondor-system",
selector={"gondor.io/name__in": {"api-web", "api-worker"}},
)
pending_pods = pykube.objects.Pod.objects(api).filter(
field_selector={"status.phase": "Pending"}
)
监视查询
watch = pykube.Job.objects(
api,
namespace="gondor-system")
.filter(field_selector={"metadata.name":"my-job"})
.watch()
# watch is a generator:
for watch_event in watch:
print(watch.type) # 'ADDED', 'DELETED', 'MODIFIED'
print(watch.object) # pykube.Job object
创建ReplicationController
obj = {
"apiVersion": "v1",
"kind": "ReplicationController",
"metadata": {
"name": "my-rc",
"namespace": "gondor-system"
},
"spec": {
"replicas": 3,
"selector": {
"app": "nginx"
},
"template": {
"metadata": {
"labels": {
"app": "nginx"
}
},
"spec": {
"containers": [
{
"name": "nginx",
"image": "nginx",
"ports": [
{"containerPort": 80}
]
}
]
}
}
}
}
pykube.ReplicationController(api, obj).create()
删除ReplicationController
obj = {
"apiVersion": "v1",
"kind": "ReplicationController",
"metadata": {
"name": "my-rc",
"namespace": "gondor-system"
}
}
pykube.ReplicationController(api, obj).delete()
检查服务器版本
api = pykube.HTTPClient(pykube.KubeConfig.from_file("/Users/<username>/.kube/config"))
api.version
需求
Python 2.7或3.3+
requests(包含在install_requires中)
PyYAML(包含在install_requires中)
许可证
此项目中包含的代码根据Apache许可证版本2.0许可(包含在此存储库中的LICENSE)。
贡献
通过向此项目做出贡献,您同意开发者起源证书v1.1(也包含在此存储库中的DCO.txt)。
行为准则
为了营造一个友好、包容且无骚扰的社区,Kel项目遵循贡献者公约行为准则。
商业支持
通过Eldarion提供Kel的商业支持,请联系info@eldarion.com。