我有8个VM(基于linux)在Azure上运行一个VNet。如果我有两个VM在同一个端口上运行一个服务,这会显示机器状态,或者显示一些特定于VM的常见细节。比方说
VM-1在8080端口上运行服务,在运行在同一端口8080上的VM-2上部署了相同的服务。要访问运行在端口8080上的服务,我将通过端点在VM-1上打开一个端口。我可以通过VM-1使用servicename.webapp.net:8080从web浏览器访问8080 .但是,如果我想检查VM-2的状态,我就无法打开VM-2上的端口8080。可能是因为端口是在服务级别而不是VM级别打开的。有办法在VM级别打开端口并使用VM: port吗?
我认为可能有用的另一种方法是:为每个VM分配静态I/ReservedIP,并在单个机器上打开端口,而不是在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"我仍然看到,新的VM正在推出与相同的VIP与其他VM在VNet。我不确定我是不是漏了什么东西。
附加屏幕截图一个是在没有静态/保留is的情况下创建的。另一个是从PowerShell创建的。两个人都有相同的要人。


有人能帮忙吗?
PS:我故意让公众贵宾来证明他们是一样的。(我已经关闭了,不再使用这项服务)。
谢谢你,杰
发布于 2015-09-20 11:21:58
是的,您可以使用powershell命令将静态IP分配给VMs
get-azurevm -servicename "testservice" -name "testvm" | Set-AzureStaticVNetIP -IPAddress "10.87.96.41" | Update-AzureVM接下来,您需要确保在实例进入停止状态时不会丢失IP。为此,您可以使用powershell中的stop azure命令定义显式参数StayProvisioned -
stop-azurevm -ServiceName "testservice" -Name "testvm" -StayProvisioned即使VM被停止,StayProvisioned也不允许IP被释放。
如果你在寻找VM的公共IP -
每个虚拟机自动分配一个免费的公共虚拟IP (VIP)地址
为了找到公共ip、goto门户,然后是VM仪表板。在右边,您可以看到一个快速浏览选项卡,您可以在下面看到公共IP。供你参考的快照-

您可以使用此公共ip使用RDP直接连接到vm。使用powershell,您可以使用下面的命令进行相同的操作。
Get-AzureVM -ServiceName "testservice" -Name "testvm" | select PublicIPAddress注释-如果实例处于停止状态,则公共IP将为null。要了解更多关于公共知识产权的信息,你可以读到-
https://azure.microsoft.com/en-in/documentation/articles/virtual-networks-instance-level-public-ip/
编辑过的
https://stackoverflow.com/questions/32678558
复制相似问题