2017-06-29 33 views
0

问题:如果作为VMSS的一部分启动了N个实例,我希望每个天青实例上的应用程序代码能够发现其他对等实例的IP地址。我该怎么做呢?在Azure虚拟机规模集中发现对等实例

整体意图是将实例集群化,以提供主动被动HA或保持配置同步。

好像有基于REST API查询一些支持:https://docs.microsoft.com/en-us/rest/api/virtualmachinescalesets/

想知道任何其他方式做到这一点,即或者蟒蛇SDK或实例元数据URL等

回答

1

这样做的一种方法是使用实​​例元数据。此时实例元数据仅显示关于其正在运行的VM的信息,例如

curl -H Metadata:true "http://169.254.169.254/metadata/instance/compute?api-version=2017-03-01" 
{"compute": 
{"location":"westcentralus","name":"imdsvmss_0","offer":"UbuntuServer","osType":"Linux","platformFaultDomain":"0","platformUpdateDomain":"0", 
"publisher":"Canonical","sku":"16.04-LTS","version":"16.04.201703300","vmId":"e850e4fa-0fcf-423b-9aed-6095228c0bfc","vmSize":"Standard_D1_V2"}, 
"network":{"interface":[{"ipv4":{"ipaddress":[{"ipaddress":"10.0.0.4","publicip":"52.161.25.104"}],"subnet":[{"address":"10.0.0.0","dnsservers":[],"prefix":"24"}]}, 
"ipv6":{"ipaddress":[]},"mac":"000D3AF8BECE"}]}} 

你可以做这样的事情让每个虚拟机发送信息到VM#0的监听器,或外部服务,或者你可以使用Azure的文件组合这一点,让每个VM输出到普通股。这里有一个Azure模板概念验证,它将每个虚拟机的信息输出到Azure文件共享。https://github.com/Azure/azure-quickstart-templates/tree/master/201-vmss-azure-files-linux - 每个虚拟机都有一个包含每个虚拟机写入的信息的安装点。

相关问题