Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 如何以编程方式获取GKE集群的网络标记_Google Cloud Platform_Google Compute Engine_Google Kubernetes Engine - Fatal编程技术网

Google cloud platform 如何以编程方式获取GKE集群的网络标记

Google cloud platform 如何以编程方式获取GKE集群的网络标记,google-cloud-platform,google-compute-engine,google-kubernetes-engine,Google Cloud Platform,Google Compute Engine,Google Kubernetes Engine,如果我创建一个名为cluster-1的新GKE集群,集群中的虚拟机都将有一个自动生成的网络标签,例如GKE-cluster-1-d4732bcc-node 是否可以使用gcloudCLI或其他工具,以编程方式使用群集名称检索此网络标记?您只能使用命令获取带有gcloud的VM网络标记 gcloud compute instances describe INSTANCE-NAME --project=PROJECT-ID --zone=INSTANCE-ZONE 网络标签信息位于底部,输出类似于

如果我创建一个名为
cluster-1
的新GKE集群,集群中的虚拟机都将有一个自动生成的网络标签,例如
GKE-cluster-1-d4732bcc-node


是否可以使用
gcloud
CLI或其他工具,以编程方式使用群集名称检索此网络标记?

您只能使用命令获取带有gcloud的VM网络标记

gcloud compute instances describe INSTANCE-NAME --project=PROJECT-ID --zone=INSTANCE-ZONE
网络标签信息位于底部,输出类似于:

tags:
  fingerprint: xxxx
  items:
  - tag1
  - tag2
  - tag3
集群创建的所有VM都将具有相同的前缀。 gke-CLUSTER\u NAME-NODE\u POOL\u NAME-RANDOM\u字符串

例如,我创建了集群“testcluster”,并且只使用“defaultpool”。我的一个实例是[gke-test-cluster-default-pool-xxxxxxx-xxxxxxx]

您可以获取集群创建的所有实例名称,并将它们放入类似于的变量中

name=`gcloud compute instances list --project=PROJECT-ID | grep gke | awk '{print $1}'`
现在可以使用FOR循环来运行该命令

for tags in $name; do gcloud compute instances describe $tags --project=PROJECT-ID --zone=ZONE; done

您可以在命令末尾添加一个GREP,仅用于获取网络标记信息、将输出存储在文件中或根据需要进行解析。

我通过获取GKE集群的一个自动生成的防火墙规则并拉出目标标记来实现这一点:

CLUSTER_NAME=<cluster-name>
PROJECT_NAME=<project-name>

NODE_NETWORK_TAG=$(gcloud compute firewall-rules list --project $PROJECT_NAME --filter="name~gke-$CLUSTER_NAME-[0-9a-z]*-master" --format="value(targetTags[0])")

echo "$NODE_NETWORK_TAG"
CLUSTER\u名称=
项目名称=
NODE_NETWORK_TAG=$(gcloud compute防火墙规则列表--project$project_NAME--filter=“NAME~gke-$CLUSTER_NAME-[0-9a-z]*-master”--format=“value(targetTags[0]))
回显“$NODE\u NETWORK\u TAG”