无法访问部署到 VN 的 ACI 宁静端点

时间:2021-06-07 14:49:25

标签: azure azure-container-instances acr

我使用如下命令将 docker 映像部署到 ACR,然后部署到 ACI:

az container create 
    --resource-group myrg
    --name myamazingacr 
    --image myamazingacr.azurecr.io/test3:v1 
    --cpu 1 
    --memory 1 
    --vnet myrg-vnet 
    --vnet-address-prefix 10.0.0.0/16 
    --subnet default 
    --subnet-address-prefix 10.0.0.0/24 
    --registry-login-server myamazingacr.azurecr.io 
    --registry-username xxx
    --registry-password xxx
    --ports 80

这一切都没有错误,ACI 的 IP 是 10.0.0.5 并且没有 FQDN,因为它是一个 VN。我认为这是有道理的。

当我在 Azure 之外(即在我创建图像的本地机器上)运行图像时,我可以成功访问这样的端点:

http://127.0.0.1/plot
http://127.0.0.1/predict_petal_length?petal_width=3

[127.0.0.1] 表示我在本地机器上运行镜像。

然而,这不起作用:

http://10.0.0.5/plot
http://10.0.0.5/predict_petal_length?petal_width=3

我明白了:

This site can’t be reached10.0.0.5 took too long to respond.

请问有什么问题?

附注:

可能与此有关:

https://docs.microsoft.com/en-us/answers/questions/299493/azure-container-instance-does-not-resolve-name-wit.html

我不得不说我发现使用 Azure 真的很令人沮丧。没有什么似乎真的有效。从 Azure ML 开始到 ACI ...

PPS:

这就是我们的 IT 所说的 - tbh 我不完全理解......

• 不支持私有端点,因此我们需要在资源组中创建一个与当前开发 vnet 对等的 vnet,我们应该没问题 • 我们基本上需要知道如何使用不同资源组中现有 vnet 中的网络创建 ACR。我正在努力寻找正确的方法来做到这一点。

2 个答案:

答案 0 :(得分:0)

由于您已将 ACI 部署到 Azure 虚拟网络中,因此您的容器可以安全地与虚拟网络中的其他资源进行通信。因此,您可以访问 Azure vNet 中的 ACI 端点。

例如,您可以尝试在 vNet 中部署 VM,但在与 ACI 不同的子网中,然后您可以尝试从 Azure VM 访问 ACI 端点。

或者,您可以expose a static IP address for a container group使用具有公共前端 IP 地址的应用程序网关。

答案 1 :(得分:0)

问题的可能原因是您为应用程序设置了错误的 IP 地址以进行侦听。 IP 地址 <Controller control={control} name='date-input' render={({ field }) => ( <DatePicker placeholderText='Select date' onChange={(date) => field.onChange(date)} selected={field.value} /> )} /> 是只能在机器内部使用的本地主机或环回 IP。看看here。所以你可以尝试把IP改成127.0.0.1。这个可以在外面访问。

相关问题