如何通过CLI获取节点池中的虚拟机数量运行

How Do I Grab the Number of Virtual Machines Running in a Node Pool using the CLI

是否可以使用 Google 云找到属于单个 Google Kubernetes Engine (GKE) 节点池的 运行 Compute Engine 虚拟机 (VM) 的数量平台 (GCP) SDK (gcloud) 而不是控制台?

假设您希望 gcloud 命令查看 no.of 个节点,这些节点在 gke 集群的节点池中 运行。

查看gke集群中的no.of个节点池的命令是

gcloud 容器节点池列表 --cluster CLUSTER_NAME

查看gke集群中no.of个节点的命令只需要kubectl即可。

kubectl 获取节点

没有使用 gcloud 查看集群中节点的命令。

过了一段时间我发现没有通过gcloud查看GKE集群节点池中节点数的命令。但是可以使用下面的命令查看

kubectl get nodes -l cloud.google.com/gke-nodepool=$POOL_NAME -o=name  --kubeconfig="$(pwd)/cluster" | wc -l

可以找到属于节点池的所有 Google 云平台 (GCP) 计算虚拟机(VM 或 nodes)使用 GCP SDK:

gcloud compute instances list \
--filter="metadata.items[].filter(key:kube-labels).firstof(value):(cloud.google.com/gke-nodepool=${GCP_NODE_POOL_NAME})"

#=>

NAME            ZONE           MACHINE_TYPE  PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
gke-. . .-wwww  us-central1-c  g1-small                   10.128.0.01  123.456.789.0  RUNNING
gke-. . .-xxxx  us-central1-c  g1-small                   10.128.0.02  123.456.789.1  RUNNING
gke-. . .-yyyy  us-central1-c  g1-small                   10.128.0.03  123.456.789.2  RUNNING
gke-. . .-zzzz  us-central1-c  g1-small                   10.128.0.04  123.456.789.3  RUNNING

--format 标志可能会使您的节点池计数更容易:

gcloud compute instances list \
--filter="metadata.items[].filter(key:kube-labels).firstof(value):(cloud.google.com/gke-nodepool=${GCP_NODE_POOL_NAME})" \
--format="value(status)"

#=>

RUNNING
RUNNING
RUNNING
RUNNING

不幸的是,目前 not 似乎是一种通过 node-pool [=16= 获取当前 运行 节点计数的方法]组:

gcloud container node-pools describe \
$GCP_NODE_POOL_NAME \
--cluster=$GKE_CLUSTER_NAME \
--format=json \
--zone=$GCP_NODE_POOL_ZONE

#=>

{
  "autoscaling": {
    . . .
    "maxNodeCount": 5,
    "minNodeCount": 2
  },
  . . .
  "initialNodeCount": 3,
  . . .
}  

当前有一个开放的功能请求,需要在上述响应 here 中添加 currentNodeCountrunningNodeCount