使用Kubernetes Python客户端获取Kubernetes集群中的Pod数量

4

我有一段代码来获取Pods的数量,它输出了结果,但是在(ret_pod)里加载了太多不必要的数据,有没有更好的方法来做这件事?

from  kubernetes import client , config 

config.load_kube_config()
v1= client.CoreV1Api()
ret_pod = v1.list_pod_for_all_namespaces(watch=False)
print(len(ret_pod.items))

这使得我能够获得以下输出:

kubectl get po -A -o json 

然后找出长度,但我只想输出
kubectl get po -A

1
你的做法有什么问题吗?在我看来很好啊... - Z4-tier
如果我有1000个Pod,它将加载所有1000个Pod的数据,我只想要这些Pod的计数@Z4-tier。 - Pradeep Padmanaban C
1
没有只计数的API。你可以尝试使用字段选择器,但总体来说你的做法是正确的。该API非常简单易用。 - coderanger
1
@coderanger,关于field_selector,它只允许过滤/缩小结果范围,例如对于具有特定字段和包含某些特定值的Pods。例如,此示例ret_pod = v1.list_pod_for_all_namespaces(field_selector='metadata.name=python-client',watch=False)将仅检索名称为python-client的Pod,但无论如何都会检索其整个JSON清单。因此,上面显示的示例可能是执行此类任务的最有效方法。 - mario
1个回答

4

使用 kubectl 命令:

kubectl get po -A --no-headers | wc -l

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接