我有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
答案 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 命令来简化您的工作。