Облачная служба Azure, подключенная к виртуальной сети Azure - внутренний IP-адрес статический или динамический?
Я развернул облачную службу (НЕ виртуальную машину) и подключил ее к виртуальной сети, которую я создал, со следующей конфигурацией облачной службы:
<NetworkConfiguration>
<VirtualNetworkSite name="MyVirtualNetwork" />
<AddressAssignments>
<InstanceAddress roleName="SampleAzureVpn">
<Subnets>
<Subnet name="Subnet-1" />
</Subnets>
</InstanceAddress>
</AddressAssignments>
</NetworkConfiguration>
Когда я вхожу в панель управления виртуальной сети на панели управления Azure, я вижу, что для моего экземпляра его IP-адрес установлен в 192.168.176.133.
Теперь вопрос в том, является ли это статический IP-адрес, или он может измениться для данного экземпляра? Мне нужно убедиться, что этот IP-адрес не изменяется при сбросе экземпляра и т. Д.
1 ответ
У меня была такая же проблема с несколькими экземплярами.
Насколько я знаю, ips динамичны. Это по уважительной причине. При динамическом добавлении экземпляров для разных ролей прогнозирование ips будет кошмаром конфигурации.
Я решил это через внутренний балансировщик нагрузки. Использование внутреннего балансировщика нагрузки позволяет вам определить один статический IP-адрес, который учитывает, что несколько VPN / рабочих ролей могут быть адресованы внутри VPN. Посмотрите здесь обзор внутреннего балансировщика нагрузки
--- Обновить ---
Чтобы уточнить: Внутренние балансировщики нагрузки в веб-ролях и рабочих ролях работают, посмотрите на части, которые вы должны добавить, чтобы он заработал. В отличие от ILB для виртуальных машин, вам не нужен Powershell, просто настройка.
вставьте определение loadbalancer в ваш ServiceConfiguration.Cloud.cscfg:
<LoadBalancers> <LoadBalancer name="loadbalancername"> <FrontendIPConfiguration type="private" subnet="subnet-name" staticVirtualNetworkIPAddress="{your static ip}" /> </LoadBalancer> </LoadBalancers>
Добавьте свою точку входа в соответствующую веб / рабочую роль в ServiceDefinition.csdef:
<Endpoints> <InputEndpoint name="faredb-reader-ilb-endpoint-http" protocol="http" localPort="8080" port="8080" loadBalancer="loadbalancername" /> </Endpoints>
Вы должны настроить подмножество как часть ServiceDefinition.csdef. Статический ip должен быть частью подсети.
Пожалуйста, обратитесь к этому для получения дополнительной информации. У меня также были некоторые проблемы с настройкой. Документация не настолько полная.