1

我有 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
4

3 回答 3

2

没有单一的命令。

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

例如对于节点。

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

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

于 2020-08-07T18:39:57.440 回答
2

感谢您的输入,以下命令运行良好

>>> 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")
...
于 2020-09-18T06:25:33.443 回答
-1

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

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

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

于 2021-02-18T22:08:51.827 回答