我可以使用Azure REST API获得虚拟机规模集的公共IP吗?

时间:2020-06-18 14:29:25

标签: azure kubernetes azure-aks azure-vm-scale-set

我有一个AKS集群,我想获得与集群的代理池关联的虚拟机规模集的公共IP。我找到了这个documentation page,并尝试了以下API调用:

GET https://management.azure.com/subscriptions/{your sub ID}/resourceGroups/{RG name}/providers/Microsoft.Compute/virtualMachineScaleSets/{scale set name}/publicipaddresses?api-version=2017-03-30

但我得到以下答复:{"value":[]}

3 个答案:

答案 0 :(得分:2)

默认情况下,AKS的虚拟机规模集没有公共IP。 AKS节点不需要自己的公共IP地址即可进行通信。

但是您可以为每个节点分配一个公共IP(预览模式)。

这是官方文档的链接:

https://docs.microsoft.com/en-us/azure/aks/use-multiple-node-pools#assign-a-public-ip-per-node-for-your-node-pools-preview

答案 1 :(得分:2)

您可以通过访问https://resources.azure.com/并导航至比例尺集来验证比例尺集的publicipaddresses键是否包含任何值。您的VMSS很有可能没有与这些VM关联的公共IP。

答案 2 :(得分:1)

对于您的问题,您需要注意VMSS如何创建的消息:

创建一个比例尺集,该比例尺集为每个虚拟机分配一个公共IP地址 CLI的计算机上,将--public-ip-per-vm参数添加到vmss 创建命令。

只有通过这种方式,您才能通过REST API获取公共IP地址:

GET https://management.azure.com/subscriptions/{your sub ID}/resourceGroups/{RG name}/providers/Microsoft.Compute/virtualMachineScaleSets/{scale set name}/publicipaddresses?api-version=2017-03-30

但是,当您创建AKS群集并将VMSS启用为代理程序池时,VMSS始终位于负载均衡器中,因此其publicIpAddressConfiguration属性为null,并且您的响应为空。 / p>