集群中的 GKE pod 副本数

时间:2021-01-20 09:17:48

标签: kubernetes google-kubernetes-engine

我们如何获取集群中运行的 gke pod 数量?我发现有很多方法可以获得节点数,但我们也需要 pod 数。如果我们可以在 gcp 操作中使用不需要日志记录的东西会更好。

2 个答案:

答案 0 :(得分:0)

您可以使用 Kubernetes Python Client library 来完成,如 this question 中所示,由 Pradeep Padmanaban C 发布,他正在寻找更有效的方法,但他的示例实际上是最好的您可以执行这样的操作,因为没有特定的方法可以让您只计算 pod 数而无需检索它们的整个 json 清单:

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))

您还可以使用不同的方法,该方法仅允许从特定的 namespace 检索 pod,例如:

list_namespaced_pod("default")

kubectl 的方式,您可以按如下方式进行(如 here 提议的 RammusXu):

kubectl get pods --all-namespaces --no-headers | wc -l

答案 1 :(得分:0)

您可以直接访问 kubernetes API using a restful API call。您需要确保通过包含不记名令牌在通话中提供 authentication token

一旦您能够直接查询 api 服务器,您就可以使用 GET <master_endpoint>/api/v1/pods 列出集群中的所有 pod。您还可以通过指定命名空间 /api/v1/namespaces/<namespace>/pods 来搜索特定的命名空间。

请记住,kubectl cli 工具只是 API 调用的包装器,每个 kubectl 命令都将形成一个与上面列出的格式类似的 RESTful API 调用,因此您使用 kubectl 与集群进行的任何交互也可以通过 RESTful API 调用实现

相关问题