如何获取集群内运行的gke实例数量?我发现有一些方法可以获得节点数,但我们也需要pod计数。如果我们可以在gcp操作中使用一些不需要日志记录的东西,那会更好。
发布于 2021-01-20 23:01:38
你可以用Kubernetes Python Client library来做这件事,如Pradeep Padmanaban C发布的this question所示,他正在寻找更有效的方法来做这件事,但他的例子实际上是你能做的最好的操作,因为没有特定的方法允许你只计算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方式中,您可以按如下方式完成(正如RammusXu提出的here ):
kubectl get pods --all-namespaces --no-headers | wc -l发布于 2021-01-21 21:55:00
您可以直接访问kubernetes API using a restful API call。您需要确保通过包含承载令牌在呼叫中提供authentication token。
一旦您能够直接查询接口服务器,您就可以使用GET <master_endpoint>/api/v1/pods列出集群中的所有pods。您还可以通过指定名称空间/api/v1/namespaces/<namespace>/pods来搜索特定的名称空间。
请记住,kubectl cli工具只是API调用的包装器,每个kubectl命令都将形成一个与上面列出的格式类似的RESTful API调用,因此您使用kubectl与集群进行的任何交互也可以通过RESTful API调用来实现。
https://stackoverflow.com/questions/65806489
复制相似问题