我创建了一个具有私有(private) IP 的 Azure 容器实例。它已连接到 VNET,因此我的 Web 应用程序可以以安全的方式与其进行通信。 (这个 API 也有不记名 token ,但我不想公开)。
但是,当重新启动容器时,我得到了一个新的 IP。因此我必须更新环境并重新启动我的应用程序。
有没有办法在 Azure 中实现服务发现,以便我的 Web 应用程序(和其他服务)知道此容器实例在哪里,特别是当容器获得新 IP 时。
我习惯于与 Pivotal 和 Consul 打交道,但在 Azure 下我没有这些工具。 在 Pivotal 中,我能够启动多个实例,平台会自动发现和负载平衡。目前,Azure 感觉非常手动:(
- Azure 是否能够在主机名下注册服务,然后自动解析?
- 当多个实例以相同名称启动时,Azure 是否支持负载平衡?
最佳答案
对于此类工作,最好的解决方案可能是创建一个 Azure 服务 Web 应用程序。 Web 应用程序作为公共(public)静态 IP 链接到您的计划,该计划不会改变。 Inbound and outbound IP addresses in Azure App Service
使用此解决方案,您的 IP 永远不会改变。 根据链接的文档,您可以像这样找到您的入站IP:
nslookup <app-name>.azurewebsites.net
以及powershell中的出站IP:
(Get-AzWebApp -ResourceGroup <group_name> -name <app_name>).OutboundIpAddresses
关于Azure 容器实例 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63454779/