Python3操作k8s的代码
时间: 2024-03-28 17:14:30 浏览: 20
以下是Python3操作k8s的代码示例:
1. 使用Python3的kubernetes包连接到k8s集群:
```python
from kubernetes import client, config
# 加载k8s配置文件
config.load_kube_config()
# 创建api客户端
v1 = client.CoreV1Api()
```
2. 获取k8s集群中的所有命名空间:
```python
# 获取所有命名空间
namespace_list = v1.list_namespace().items
# 打印命名空间名称
for namespace in namespace_list:
print(namespace.metadata.name)
```
3. 获取指定命名空间中的所有Pod:
```python
# 指定命名空间名称
namespace_name = "default"
# 获取指定命名空间中的所有Pod
pod_list = v1.list_namespaced_pod(namespace_name).items
# 打印Pod名称和状态
for pod in pod_list:
print(pod.metadata.name, pod.status.phase)
```
4. 创建Deployment:
```python
# 指定Deployment名称和命名空间
deployment_name = "nginx-deployment"
namespace_name = "default"
# 创建Deployment对象
deployment = client.ExtensionsV1beta1Deployment()
deployment.api_version = "extensions/v1beta1"
deployment.kind = "Deployment"
deployment.metadata = client.V1ObjectMeta(name=deployment_name)
deployment.spec = client.ExtensionsV1beta1DeploymentSpec(
replicas=3,
selector=client.V1LabelSelector(
match_labels={"app": "nginx"}
),
template=client.V1PodTemplateSpec(
metadata=client.V1ObjectMeta(labels={"app": "nginx"}),
spec=client.V1PodSpec(
containers=[
client.V1Container(
name="nginx",
image="nginx:latest",
ports=[client.V1ContainerPort(container_port=80)]
)
]
)
)
)
# 创建Deployment
v1beta1 = client.ExtensionsV1beta1Api()
v1beta1.create_namespaced_deployment(namespace_name, deployment)
```
5. 删除Deployment:
```python
# 删除Deployment
v1beta1.delete_namespaced_deployment(deployment_name, namespace_name)
```