正在进行一个项目,以将一个宁静的API应用程序和单独的TCP服务部署到Azure容器实例。由于遗留原因,TCP服务需要一个静态Ipv4地址。
我试图隔离我的选项,以将静态静态IP地址分配给Azure容器实例上托管的TCP服务。有哪些选项?
具有静态公共IP地址的已部署Azure应用程序网关。 App Gateway允许将后端池定向到IP或FQDN端点。这似乎是可操作的(请参见图)。后端池中的所有选项似乎都只允许HTTP和HTTPS,而不允许自定义端口。如果TCP服务可以侦听80和Web API侦听443,则可以对此进行操作。应用程序网关是仅用于HTTP和HTTPS流量的第7层资源。
Azure负载均衡器。只能针对VM,可用性集或VM缩放集。
为资源分配静态地址。不允许用于容器实例。
流量管理器。似乎不是此部署的正确资源类型。
请参见图。当我通过BASH会话查询时,API和TCP SERVICE的容器实例具有相同的专用IP地址。建议将它们托管在附图中的同一主机上(标记为容器组)。不知道这是不是正确的标签,抱歉,我是Container技术的新手。
谢谢您的任何建议。 斯科特
答案 0 :(得分:3)
可能有解决方案:
现在,防火墙“规则”允许以下操作:
致力于将容器部署到此dev子网,表面上所有选项都存在,重定向端口,ip或FQDN。游戏的变化是能够为VNET中的资源分配静态公共地址,并允许NAT,网络或应用程序规则重定向流量。
明天将更新结果线程。
好的,所以不要使用Azure防火墙资源。它非常昂贵,在我来说,无论如何都不算合算,@每月大约500英镑。我没有时间使用防火墙来测试该理论,但是由于成本的原因,没有必要进一步研究它。
Azure容器实例使您可以使用IP地址和完全限定的域名(FQDN)将容器直接暴露于Internet。创建容器实例时,可以指定一个自定义DNS名称标签,以便可以在customlabel.azureregion.azurecontainer.io上访问您的应用程序。不幸的是,目前ACI不支持静态公共IP地址。
将容器组部署到虚拟网络时,存在某些限制。
要将容器组部署到子网,该子网不能包含任何其他资源类型。在将容器组部署到现有子网之前,请从其删除所有现有资源,或者创建一个新子网。
部署到虚拟网络的容器组当前不支持公共IP地址或DNS名称标签。
由于涉及到额外的网络资源,因此将容器组部署到虚拟网络通常比部署标准容器实例要慢一些。
https://feedback.azure.com/forums/602224-azure-container-instances
这最初是解决方案,但卸载和管理SSL证书增加了复杂性。
如果有人感兴趣(基于查看该线程的次数而并不多),则最终部署的解决方案是:
值得一提的是,部署证书的唯一原因是将IP地址固定在“服务”应用程序服务上。解决当前缺少对Azure的支持以允许用户将静态IP地址应用于容器实例的方法。
感谢我们的开发团队在此方面的创新思维。
希望能在某个时候帮助某人。 斯科特