如何自动获取谷歌云GCE托管实例组(MIG)中实例的内网IP地址
实现MIG实例内部IP自动化导出的方法
前置条件
- 已安装并配置好Google Cloud SDK(gcloud CLI)
- 已拥有对应GCP项目、MIG所属区域的读取权限
- 已提前切换到目标项目:
gcloud config set project <你的项目ID>
方法1:单命令直接导出(单MIG场景最便捷)
直接调用gcloud内置的过滤、格式化能力,一步拉取指定MIG下所有实例的内网IP,命令如下:
gcloud compute instance-groups managed list-instances <你的MIG名称> \ --zone <MIG所在可用区> \ --format="value(instance.networkInterfaces[0].networkIP)" \ > mig_internal_ips.txt
参数说明:
- 替换
<你的MIG名称>和<MIG所在可用区>为实际值,如果是区域级MIG,把--zone参数改为--region并填写对应区域即可 --format参数指定只输出实例第一张网卡的内网IP,自动过滤其他无关字段- 末尾的重定向命令会把结果直接写入TXT文件,完成导出
方法2:批量导出所有MIG的实例内网IP(多MIG场景)
如果需要导出当前项目下所有MIG的所有实例内网IP,可以直接运行以下Shell脚本:
#!/bin/bash # 拉取当前项目下所有可用区级、区域级MIG列表 mig_list=$(gcloud compute instance-groups managed list --format="value(name,location,location_scope)") while read -r name location scope; do if [ "$scope" = "zone" ]; then location_flag="--zone=$location" else location_flag="--region=$location" fi gcloud compute instance-groups managed list-instances "$name" $location_flag \ --format="value(instance.name,instance.networkInterfaces[0].networkIP)" >> all_mig_internal_ips.txt done <<< "$mig_list"
该脚本导出的结果会同时包含实例名和对应内网IP,方便资源对照。
扩展说明
- 如果实例配置了多张网卡,把命令中
networkInterfaces[0]的序号修改为对应网卡的序号,即可获取对应网卡的内网IP - 如果需要导出可直接用Excel打开的CSV格式,把
--format参数改为csv(instance.name,instance.networkInterfaces[0].networkIP)即可
内容的提问来源于stack exchange,提问作者cloud jockey
相关产品推荐
相关产品推荐

