我需要使用 kubernetes python 客户端在 Kubernetes 集群中获取 Pods 的资源使用情况

I need to get resource usage of Pods in a Kubernetes Cluster with kubernetes python client

我有 linux 命令来获取特定命名空间中 pods 的资源使用情况 什么是等效的 python 命令

$ kubectl top pod
NAME                                CPU(cores)   MEMORY(bytes)   
nginx-deployment-7fd6966748-57mt5   0m           2Mi             
nginx-deployment-7fd6966748-jpbjl   0m           2Mi             
nginx-deployment-7fd6966748-snrx4   0m           2Mi

没有一个命令。

Kubernetes 指标公开在指标上。k8s.io。您将不得不编写程序来查询 API 并获得结果。

例如节点。

此 API 在 /apis/metrics.k8s.io/ 端点

下可用

kubectl get --raw "/apis/metrics.k8s.io/v1beta1/nodes" |节点指标的 jq

感谢您输入以下命令工作正常

>>> from kubernetes import client, config
>>> 
>>> config.load_kube_config()
>>> api = client.CustomObjectsApi()
>>> resource = api.list_namespaced_custom_object(group="metrics.k8s.io",version="v1beta1", namespace="default", plural="pods")
>>> for pod in resource["items"]:
...    print(pod['containers'], "\n")
...

您也可以 运行 使用 python kubectl 命令。

from subprocess import call
call('kubectl describe pod pod_name_here -n default', shell=True)

因此,您可以使用 Python Kubernetes 库过滤任何内容,还可以使用 kubectl 命令来简化您的工作。