【问题标题】:GKE pod replica count in cluster集群中的 GKE pod 副本数
【发布时间】:2023-03-26 23:04:01
【问题描述】:

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

【问题讨论】:

  • 我对 GKE 不熟悉,但你不能使用kubectl 命令来获取所需的信息吗?
  • 需要一个类似接口的rest api

标签: kubernetes google-kubernetes-engine


【解决方案1】:

你可以用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

【讨论】:

    【解决方案2】:

    您可以直接访问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 调用实现

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-16
      • 2020-05-07
      • 2020-10-15
      • 2015-12-18
      • 2021-05-07
      • 1970-01-01
      • 2021-12-06
      • 2018-07-02
      相关资源
      最近更新 更多