支持kubernetes的python客户端库

pykubeks的Python项目详细描述


Pykubeks

CircleCIPyPI DownloadsPyPI VersionLicense

这是pykube的叉子 不再维护。如果你对谁带来的感兴趣 可爱的小图书馆走进世界,请查看The Kel Project

这个fork的原因是为了发布我为之编写的aws eks支持 最初的项目,在它被放弃之前。新名称pykubekspykubeEKS的端口。

python包的名称仍然相同,以简化“升级” 转到支持从客户端提供的用户凭据的新版本 凭证插件。见k8s documentation 详情。

功能

  • 使用kubeconfig请求进行身份验证的http接口
  • kubernetes api对象的python本地查询

安装

要安装pykubeks,请使用pip:

pip install pykubeks

用法

在自定义命名空间中查询所有就绪的播客:

importoperatorimportpykubeapi=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)

访问kubernetes对象的任何属性:

pod=pykube.Pod.objects(api).filter(namespace="gondor-system").get(name="my-pod")pod.obj["spec"]["containers"][0]["image"]

选择器查询:

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")watch=watch.filter(field_selector={"metadata.name":"my-job"}).watch()# watch is a generator:forwatch_eventinwatch:print(watch_event.type)# 'ADDED', 'DELETED', 'MODIFIED'print(watch_event.object)# pykube.Job object

创建复制控制器:

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()

删除复制控制器:

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

httpie

pykube可以与httpie一起用于kubernetes命令行查询good。例如:

pip install httpie
http pykube://minikube/api/v1/services

上面的示例将构造对minikube上下文后面的集群的http请求,并 显示包含所有服务的响应。

要求

  • python 2.7或3.3+
  • 请求(包含在install_requires
  • pyyaml(包含在install_requires)中

许可证

此项目中的代码是根据apache许可证2.0版授权的 (根据许可证包含在此存储库中)。

贡献

通过对这个项目做出贡献,您就同意了Developer Certificate of Origin v1.1(也包括在dco.txt下的这个存储库中)。

Developer Certificate of Origin v1.1

行为准则

Contributor Covenant Code of Conduct

商业支持

本项目无商业支持。

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

推荐PyPI第三方库


热门话题
是否可以将Ghost CMS与Spring Boot(Java)一起使用?如果没有,还有好的选择吗?   java简单XML框架解析器在Android中发布XML解析   java如何将数组列表设置为listview中的图像视图   java从JPA查找GUI   java为什么XSSFWorksheet的getName()不起作用?   java为什么Eclipse不记得我的启动配置?   使用java处理Json API响应   调用AlertDialog。按下后退按钮时Android片段的Java生成器   在Android中以编程方式选择项目ListView   java交错网格布局用于从实时数据库加载图像,不显示   java如何找到测试套件。Testng中的xml执行状态   java如何使用Appium通过selenium找到警报对话框?   java如何避免使用Johann的   学生编辑不起作用(Java+Spring+MySQl)?   EclipseMilo中的java身份验证clientserver   java Solr DIH获取大小无效   j_安全检查上的java筛选器不工作。Glassfish V3 Netbeans 6.8