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

时间:2020-08-07 04:54:12

标签: python python-3.x kubernetes kubernetes-python-client

我有linux命令来获取特定命名空间中pod的资源使用情况,等效于它的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

3 个答案:

答案 0 :(得分:1)

没有单个命令。

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

例如节点。

此API在/apis/metrics.k8s.io/端点下可用

kubectl get --raw“ /apis/metrics.k8s.io/v1beta1/nodes” | jq表示节点指标

答案 1 :(得分:0)

感谢您的输入,以下命令很好用

>>> from kubernetes import client, config
>>> 
>>> config.load_kube_config()
>>> 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")
...

答案 2 :(得分:0)

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

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

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