如何通过Deployment Manager为自定义VPC的GCE VM分配临时公网IP
解决Google Cloud Deployment Manager自定义VPC下GCE实例无法分配临时公网IP的问题
问题场景
使用Google Cloud Deployment Manager创建GCE VM实例时,要求在使用非“default”的自定义VPC时为实例分配临时公网IP。使用默认VPC链接时实例可成功获取临时公网IP,但切换到自行创建的my-vpc后,始终无法分配公网IP。
自定义VPC配置如下:
- type: compute.v1.network name: my-vpc properties: autoCreateSubnetworks: true
尝试过的无效配置
根据官方文档说明,accessConfigs.natIP留空即可使用临时公网IP,但以下几种写法均未生效:
写法1:
networkInterfaces: - network: $(ref.my-vpc.selfLink) accessConfigs: - name: External NAT type: ONE_TO_ONE_NAT
写法2:
networkInterfaces: - network: $(ref.my-vpc.selfLink) accessConfigs: - name: External NAT type: ONE_TO_ONE_NAT natIP:
写法3:
networkInterfaces: - network: $(ref.my-vpc.selfLink) accessConfigs: - name: External NAT type: ONE_TO_ONE_NAT natIP: ~
写法4:
networkInterfaces: - network: $(ref.my-vpc.selfLink) accessConfigs: - name: External NAT type: ONE_TO_ONE_NAT natIP: null
问题根源与正确配置
排查网络、防火墙等资源配置后发现,问题出在YAML缩进错误:accessConfigs必须嵌套在networkInterfaces的列表项中。正确配置如下:
networkInterfaces: - network: $(ref.my-vpc.selfLink) accessConfigs: - name: External NAT type: ONE_TO_ONE_NAT
内容的提问来源于stack exchange,提问作者petedogg
相关产品推荐
相关产品推荐

