无法从 Azure 使用专用 IP(在 vnet 的子网中)连接到 ACI

问题描述 投票:0回答:1

我正在虚拟网络的子网中部署具有私有静态 IP 的 Azure 容器实例,但我无法从 Azure 连接到它们。

在开发过程中,我曾经检查ACI内部的一些东西,但现在我不断遇到这样的消息:您正在寻找的资源已被删除,已更名,或暂时不可用。

名称看起来相同,我确信它没有被删除且可用,因为我可以从连接的子网中的虚拟机连接到它。

更新: 刚刚检查了公共IP,同样的故事。

有谁知道如何解决此问题或可能导致问题的原因是什么?预先感谢您!

subnet azure-container-instances vnet private-ip
1个回答
0
投票

“您正在查找的资源已被删除、更名或暂时不可用”可能是由几个不同的问题引起的。

一种可能是您部署容器组的子网包含其他资源类型,这是不允许的。

另一种可能性是子网和容器组不在同一个 Azure 订阅上。此外,如果要将容器组部署到虚拟网络,则无法启用活性探测或就绪性探测。根据文档,“目前不支持到端口 25 和 19390 的出站连接。当容器组部署在虚拟网络中时,需要在防火墙中打开端口 19390,以便从 Azure 门户连接到 ACI。”

az network nsg rule list --nsg-name NRMS-k47yvbhjubbl2aci-vnet --resource-group myResourceGroup 

enter image description here

如果您已检查防火墙设置并确认必要的端口已打开,则 ACI 在创建容器组期间创建的网络配置文件可能存在问题。您可能需要通过 Azure 门户或 Azure CLI 删除网络配置文件,然后重新创建它。

以下是将容器实例部署到 Azure 虚拟网络中的示例。

az container create --name appcontainer --resource-group myResourceGroup --image mcr.microsoft.com/azuredocs/aci-helloworld --vnet aci-vnet --vnet-address-prefix 10.0.0.0/16 --subnet aci-subnet --subnet-address-prefix 10.0.0.0/24

enter image description here

enter image description here

如果要将容器组部署到现有虚拟网络,请在现有虚拟网络中创建子网、使用已部署容器组的现有子网,或者使用清空“所有”其他资源和配置。 例如,我已将第二个容器组部署到之前创建的同一子网中。

enter image description here

CONTAINER_GROUP_IP

设置为使用上面

az container show
命令检索到的 IP,并执行以下
az container create
命令。
CONTAINER_GROUP_IP=<container-group-IP-address>

az container create --resource-group myResourceGroup --name commchecker --image alpine:3.5 --command-line "wget $CONTAINER_GROUP_IP" --restart-policy never --vnet aci-vnet --subnet aci-subnet

enter image description hereaz container logs --resource-group myResourceGroup --name commchecker

enter image description here此处,输出显示

wget

能够使用本地子网上的私有 IP 地址从第一个容器连接并下载索引文件。两个容器组之间的网络流量保留在虚拟网络内。

az container show --resource-group myResourceGroup  --name arkoappcontainer

enter image description here如果您仍然遇到问题,可以联系 Azure 支持以获得进一步帮助。

参考资料:

    虚拟网络场景及资源
  • 排查 Azure 中虚拟机上的应用程序连接问题
  • Azure Functions 网络选项
  • 类似问题
© www.soinside.com 2019 - 2024. All rights reserved.