gcloud:如何获取托管实例组的IP地址

时间:2018-09-17 15:53:52

标签: google-compute-engine gcloud

我的问题是创建5k实例并在那里检索公共IP地址。

特别是对于us-west1-a区域,我可以通过以下操作创建一个由50个实例组成的组:

gcloud compute instance-groups managed create test --base-instance-name morning --size 50 --template benchmark-template-micro --zone us-west1-a

问题:

  1. 如何指定开始脚本来运行每个创建的实例?我找不到它们here
  2. 如何获取那些创建的实例的公共IP地址?

2 个答案:

答案 0 :(得分:0)

可以将startup-script分配给所用instance的模板;参见here

一个人可以通过gcloud compute instance-groups managed describe获取信息。

没有public IP地址,除非您分配了external IP地址。

答案 1 :(得分:0)

如Martin所述,启动脚本是在实例模板中配置的。

不幸的是,没有API列出该组中实例的IP地址。但是,有一些API(和gcloud命令)可以获取实例列表和实例的ip地址。这是一个从命令行获取此信息的示例:

gcloud compute instance-groups list-instances $INSTANCE_GROUP --uri \
    | xargs -I '{}' gcloud compute instances describe '{}' \
        --flatten networkInterfaces[].accessConfigs[] \
        --format 'csv[no-heading](name,networkInterfaces.accessConfigs.natIP)'

为加快速度,您可能需要使用xarg的-P标志来并行化实例描述请求。

由于该组中的所有实例都具有相同的前缀。您也可以只按前缀进行列表搜索。虽然,这可能会拉入另一个使用相同前缀的示例,即使它不属于实例组:

gcloud compute instances list --filter='name ~ ${PREFIX}*' \
    --flatten networkInterfaces[].accessConfigs[] \
    --format 'csv[no-heading](name,networkInterfaces.accessConfigs.natIP)'