微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从该实例中找出 VMSS 实例的公共 IP每个实例的公共 IP VMSS

如何解决从该实例中找出 VMSS 实例的公共 IP每个实例的公共 IP VMSS

我在 Azure 中创建了一个 VMSS,其每个实例的公共 IP 都在此处描述:https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-networking#creating-a-scale-set-with-public-ip-per-virtual-machine。我需要每个实例的 IP 公共 IP 配置,以便每个单独的实例都可以从外部独立使用。

由于显然无法为此类 IP 指定 sku(完整格式在此:https://docs.microsoft.com/en-us/azure/templates/microsoft.compute/virtualmachinescalesets#virtualmachinescalesetpublicipaddressconfigurationproperties-object),因此所有 IP 始终是标准的。我可以查询公共 IP,因为它们是由 VMSS 创建的,它们确实是标准的。

元数据服务(我计划用于从实例中获取 IP)仅返回基本公共 IP(如此处所述:https://docs.microsoft.com/en-us/azure/virtual-network/public-ip-addresses#standard)。

如何从实例内获取实例的公共 IP,而不是 ping 返回调用者 IP 的随机第 3 方网站或从实例与 ARM 通话?

解决方法

经过我的验证,你可以从实例内部获取实例的公网IP,参考this sample。这也适用于从 Azure VM 获取基本公共 IP。

Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET  -Uri "http://169.254.169.254/metadata/instance/network/interface/0/ipv4/ipAddress/0/publicIpAddress?api-version=2017-08-01&format=text" | ConvertTo-Json

enter image description here

我在 ARM 模板中使用公共 IP 创建 VMSS,如下所示:

                                            "publicIPAddressconfiguration": {
                                                "name": "publicip","properties": {
                                                "idleTimeoutInMinutes": 10,"dnsSettings": {
                                                    "domainNameLabel": "[parameters('vmssName')]"
                                                }
                                                }
                                            }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。