# 实现Python运维脚本

## 概述
在Kubernetes(K8S)中,编写Python运维脚本可以帮助简化一些重复性的操作,提高效率。本文将介绍如何使用Python编写K8S运维脚本,以及一些常用的操作和代码示例,帮助刚入行的小白快速上手。

## 实现步骤
以下是实现Python运维脚本的步骤:

| 步骤 | 操作 |
|------------|----------------|
| 1 | 安装Kubernetes Python客户端库 |
| 2 | 连接K8S集群 |
| 3 | 获取Pod列表 |
| 4 | 创建Deployment |
| 5 | 删除Deployment |

## 代码示例
### 步骤1:安装Kubernetes Python客户端库
首先,我们需要安装`kubernetes`库来与K8S集群进行交互。

```bash
pip install kubernetes
```

### 步骤2:连接K8S集群
在Python脚本中,使用以下代码连接到K8S集群。

```python
from kubernetes import client, config

# 加载K8S配置
config.load_kube_config()

# 创建API客户端
v1 = client.CoreV1Api()
```

### 步骤3:获取Pod列表
可以使用以下代码获取当前命名空间下的所有Pod列表。

```python
ret = v1.list_pod_for_all_namespaces(watch=False)
for i in ret.items:
print(i.metadata.name)
```

### 步骤4:创建Deployment
使用以下代码创建一个Deployment。

```python
def create_deployment(api_instance, namespace):
# 定义Deployment配置
deployment = client.AppsV1Deployment()
deployment.metadata = client.V1ObjectMeta(name="example-deployment")
deployment.spec = client.AppsV1DeploymentSpec(
replicas=1,
selector=client.V1LabelSelector(
match_labels={"app": "example"}
),
template=client.V1PodTemplateSpec(
metadata=client.V1ObjectMeta(labels={"app": "example"}),
spec=client.V1PodSpec(
containers=[
client.V1Container(
name="example",
image="nginx:latest"
)
]
)
)
)

# 创建Deployment
api_instance.create_namespaced_deployment(namespace, deployment)
```

### 步骤5:删除Deployment
使用以下代码删除指定名称的Deployment。

```python
def delete_deployment(api_instance, name, namespace):
api_instance.delete_namespaced_deployment(name, namespace)
```

通过上述步骤和代码示例,你可以开始编写自己的Python运维脚本来管理Kubernetes集群。记得在实际操作中根据实际需求做相应的调整和优化。祝你编写顺利!