Kubernetes API库
项目描述
为已经熟悉如何使用 kubectl
的人提供的一个简单、可扩展的Kubernetes Python客户端库。
亮点
- 受
kubectl
启发的API,学习曲线平缓。 - 合理的默认值 以减少样板代码。
- 不生成swagger代码,只有可读代码。
- 同时提供标准API和 异步API,可用于与
asyncio
和trio
一起使用。 - 客户端缓存 以减少API对象的传递。
- 包含受
kubectl
启发的 实用工具和方法。
快速入门
安装
$ pip install kr8s
示例
[!TIP] 查看完整的示例,包括
asyncio
示例,请参阅 示例文档。
列出节点
打印出集群中所有节点的名称。
import kr8s
for node in kr8s.get("nodes"):
print(node.name)
创建Pod
创建一个新的Pod。
from kr8s.objects import Pod
pod = Pod({
"apiVersion": "v1",
"kind": "Pod",
"metadata": {
"name": "my-pod",
},
"spec": {
"containers": [{"name": "pause", "image": "gcr.io/google_containers/pause",}]
},
})
pod.create()
缩放部署
将命名空间 kube-system
中的 metrics-server
部署扩展到 1
个副本。
from kr8s.objects import Deployment
deploy = Deployment.get("metrics-server", namespace="kube-system")
deploy.scale(1)
按标签选择器列出 Pod。
获取所有命名空间中匹配标签选择器的所有 Pod。
import kr8s
selector = {'component': 'kube-scheduler'}
for pod in kr8s.get("pods", namespace=kr8s.ALL, label_selector=selector):
print(pod.namespace, pod.name)
向 Pod 添加标签
向现有 Pod 添加标签 foo
,值为 bar
。
from kr8s.objects import Pod
pod = Pod("kube-apiserver", namespace="kube-system")
pod.label({"foo": "bar"})
生成 Pod
使用几个关键字参数生成一个简单的 Pod。
from kr8s.objects import Pod
pod = Pod.gen(name="example-1", image="nginx:latest")
pod.create()
隔离节点
隔离节点以标记它为不可调度。
from kr8s.objects import Node
node = Node("k8s-node-1")
node.cordon()
Pod 执行
在 Pod 中执行命令。
from kr8s.objects import Pod
pod = Pod.get("my-pod")
command = pod.exec(["uptime"])
print(command.stdout.decode())
# 13:49:05 up 23:03, 0 users, load average: 0.66, 0.87, 0.85
端口映射 Pod
将端口映射到 Pod 作为后台任务/线程。
from kr8s.objects import Pod
pod = Pod.get("my-pod")
pf = pod.portforward(remote_port=1234, local_port=5678)
# Starts the port forward in a background thread
pf.start()
# Your other code goes here
# Optionally stop the port forward thread (it will exit with Python anyway)
pf.stop()
[!TIP] 查看完整的示例,包括
asyncio
示例,请参阅 示例文档。
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分发
kr8s-0.17.4.tar.gz (2.9 MB 查看哈希值)
构建分发
kr8s-0.17.4-py3-none-any.whl (70.6 kB 查看哈希值)
关闭
kr8s-0.17.4.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b1993bf415a5ee8be90268dd020605bba7ebce67a54b4e1e4c60089a9da4894f |
|
MD5 | b7d44d0bacad443b3d1c4721f367d917 |
|
BLAKE2b-256 | 61f30d3b322681a9a62039c5ea6a6240d5e537ddc666673288ae4890365027b0 |
关闭
kr8s-0.17.4-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8c8d1adc831452963bf6c5dc2756ed80aab82733216f4fe0618a3bdb3b1b2186 |
|
MD5 | c7cc42549302e80b1263e01e2c768e0d |
|
BLAKE2b-256 | e901f63a8794cbcb21b756d720d78fd31998a67e648d999e9e6e920c93cbac94 |