如何通过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 或 node
s)使用 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 中添加 currentNodeCount
或 runningNodeCount
。
是否可以使用 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 或 node
s)使用 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 中添加 currentNodeCount
或 runningNodeCount
。