2017-06-29 74 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 - 每個虛擬機都有一個包含每個虛擬機寫入的信息的安裝點。