我有8台虚拟机(基于Linux)在Azure上运行一个VNet。 如果我有两台虚拟机在显示机器状态的相同端口上运行服务,或者显示一些特定于虚拟机的通用细节。 举例来说
VM-1在8080端口上运行一个服务,在同一个端口8080上运行的VM-2上部署了相同的服务。要访问端口8080上运行的服务,我要通过端点在VM-1上打开一个端口。 我可以使用servicename.webapp.net:8080通过VM-1从Web浏览器访问8080。 但是,如果我想检查VM-2的状态,我不能打开VM-2上的端口8080。 可能是因为端口在服务级别而不是VM级别打开。 有没有办法在虚拟机级别打开端口并使用VM-x:port?
我认为可能有用的另一种方法是:将静态IP /保留IP分配给每个虚拟机,并在各台机器上打开端口,而不是在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。 我不知道我是否缺less一些东西。
附加屏幕截图是在没有静态/保留IP CMDlet的情况下创build的。 另一个是从PowerShell创build的。 两个共享相同的VIP。
有人可以帮忙吗?
PS:我有意让公众贵宾certificate他们是一样的。 (我已经closures,不再使用此服务)。
谢谢,JE
是的,您可以使用powershell命令将静态IP分配给虚拟机,
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被释放。
如果您正在寻找公共IP的VM-
“每个虚拟机都会自动分配一个免费的公共虚拟IP(VIP)地址”
为了找出公共ip goto Azure门户,然后你的虚拟机仪表板。 在右侧,您会看到一个快速浏览标签,您可以在其中看到公共IP。 快照供您参考 –
你可以使用这个公共ip直接使用RDP连接到vm。 使用powershell你可以使用下面的命令相同。
Get-AzureVM -ServiceName "testservice" -Name "testvm" | select PublicIPAddress
注 – 如果实例处于停止状态,则公共IP将为空。 要了解有关公共IP的更多信息,
https://azure.microsoft.com/en-in/documentation/articles/virtual-networks-instance-level-public-ip/
将帖子
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。