单个VNet /子网中的Azure VM的ReservedIPs

时间:2015-09-20 10:57:02

标签: linux azure networking azure-virtual-machine azure-powershell

我在Azure上运行单个VNet的8个VM(基于Linux)。如果我在同一端口上运行服务的两个VM显示机器状态或显示特定于VM的一些常见详细信息。比如说

VM-1在8080端口上运行服务,并且在同一端口8080上运行的VM-2上部署了相同的服务。要访问在端口8080上运行的服务,我将在VM-1上打开一个端口终点。我可以使用servicename.webapp.net:8080从Web浏览器通过VM-1访问8080。但是如果我想检查VM-2的状态,我无法打开VM-2上的端口8080。可能是因为端口是在服务级别而不是VM级别打开的。有没有办法可以在VM级别打开端口并使用VM-x:port?

我认为可能有用的另一种方法是:将staticIP / ReservedIP分配给每个VM,并且应该可以在各个机器上打开端口,而不是在VNet /服务级别打开端口。一旦它们启动并运行,是否可以为所有8台机器分配静态/保留IP?我们还需要确保在重启后所有八台机器都保留相同的IP。

我尝试关注博客https://azure.microsoft.com/en-us/documentation/articles/virtual-networks-reserved-public-ip/并尝试以下命令:

$image = Get-AzureVMImage|?{$_.ImageName -like "*AMI-20150919-849187*"} 
New-AzureVMConfig -Name StaticIPVMCOnfig -InstanceSize Small -ImageName $image.ImageName 
-CurrentStorageAccountName "myStorageACName" 
| Add-AzureProvisioningConfig -Linux -LinuxUser root -Password MyP@ssword! 
| New-AzureVM -ServiceName myCloudServiceName -ReservedIPName MyReservedIP 
-Location "West Europe"

我仍然看到新的虚拟机与VNet中的其他虚拟机具有相同的VIP。我不确定我是否遗漏了什么。

附加屏幕截图,创建一个没有static / reservedIP CMDlet的屏幕截图。另一个是从PowerShell创建的。两者都拥有相同的VIP。

This VM is created before without powershell or reservedIPs

This VM is created with Powershell. 有人可以帮忙吗?

PS:我故意让公众贵宾表明他们是一样的。 (我已经关闭,不再使用此服务了。)

谢谢, JE

1 个答案:

答案 0 :(得分:1)

是的,您可以使用powershell命令将静态IP分配给VM -

get-azurevm -servicename "testservice" -name "testvm" | Set-AzureStaticVNetIP -IPAddress "10.87.96.41" | Update-AzureVM

接下来你要确保当实例进入停止状态时你不会丢失IP。为此,您可以使用powershell中的stop azure vm命令定义显式参数StayProvisioned -

stop-azurevm -ServiceName "testservice" -Name "testvm" -StayProvisioned

即使VM已停止,StayProvisioned也不允许释放IP。

如果您正在寻找VM的公共IP -

"每个虚拟机都会自动分配一个免费的公共虚拟IP(VIP)地址"

为了找到公共IP goto- Azure门户,然后找到您的VM仪表板。在右侧,您会看到一个快速浏览选项卡,您可以在其中查看公共IP。快照供您参考 -

enter image description here

您可以使用此公共IP使用RDP直接连接到vm。使用powershell,您可以使用以下命令。

Get-AzureVM -ServiceName "testservice" -Name "testvm" | select PublicIPAddress

注意 - 如果实例处于停止状态,则公共IP将为null。要了解有关公共IP的更多信息,请阅读此内容 -

https://azure.microsoft.com/en-in/documentation/articles/virtual-networks-instance-level-public-ip/

[被修改]