查询K8S节点磁盘空间的过程可以分为以下几个步骤:

| 步骤 | 操作 |
| ---- | ---- |
| 1 | 连接到 Kubernetes 集群 |
| 2 | 获取节点列表 |
| 3 | 遍历节点列表,查询磁盘空间 |

下面我会逐步给你介绍每一步需要做什么,并附上相应的代码示例。

### 步骤 1:连接到 Kubernetes 集群

首先,我们需要建立与 Kubernetes 集群的连接。可以使用 `kubectl` 命令行工具来完成这个任务。在命令行中执行以下代码:

```shell
kubectl config use-context
```

其中 `` 是你要连接的 Kubernetes 集群上下文的名称,可以通过 `kubectl config get-contexts` 命令查看可用的上下文列表。这个命令会将当前的上下文设置为指定的上下文名称。

### 步骤 2:获取节点列表

在连接到 Kubernetes 集群后,我们需要获取到节点的列表。可以使用 `kubectl` 命令行工具来获取节点信息。在命令行中执行以下代码:

```shell
kubectl get nodes
```

这个命令会列出当前 Kubernetes 集群中的所有节点,包括它们的名称和状态。

### 步骤 3:遍历节点列表,查询磁盘空间

获取到节点列表后,我们需要遍历每个节点并查询其磁盘空间。在代码中,我们可以使用 Kubernetes 的客户端库来实现这个功能。

首先,我们需要导入相应的库。在代码的开头添加以下导入语句:

```python
from kubernetes import client, config
```

接下来,我们需要配置客户端的连接。在代码的开头添加以下代码:

```python
config.load_kube_config()
```

这个函数会自动从 `~/.kube/config` 文件中加载配置信息。

然后,我们需要创建一个客户端对象。在代码的开头添加以下代码:

```python
v1 = client.CoreV1Api()
```

这个对象可以用来执行 Kubernetes 的 API 请求。

最后,我们可以通过遍历节点列表并查询每个节点的磁盘信息。在代码中添加以下代码段:

```python
ret = v1.list_node()
for node in ret.items:
node_name = node.metadata.name
disk_usage = v1.read_node_status(name=node_name).status.node_info.allocatable["ephemeral-storage"]
print(f"Node {node_name} disk usage: {disk_usage}")
```

这段代码中,我们首先使用 `list_node()` 函数来获取节点列表。然后,我们遍历每个节点,获取节点名称,并使用 `read_node_status()` 函数来获取节点的状态信息。从状态信息中,我们可以获取到节点的磁盘空间信息,并通过 `allocatable` 字段获取到磁盘的可用空间。最后,我们打印出每个节点的磁盘使用情况。

至此,我们已经完成了查询 K8S 节点磁盘空间的全部过程。

总结一下,首先我们需要连接到 Kubernetes 集群,然后获取节点列表,最后遍历节点列表并查询每个节点的磁盘空间。整个过程可以通过以上代码实现。

希望这篇文章对你理解如何查询 K8S 节点磁盘空间有所帮助。如有任何问题,请随时向我提问。