我用这样的命令将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.
请问可能出了什么问题?
PS:
也许与此有关:
https://learn.microsoft.com/en-us/answers/questions/299493/azure-container-instance-does-not-resolve-name-wit.html
我不得不说,我觉得Azure的工作真的很令人沮丧。似乎什么都不管用。从Azure ML到ACI开始。。。
PPS:
这就是我们的IT部门所说的——tbh我不完全理解。。。
•不支持私有端点,因此我们需要在资源组中创建一个vnet,将其与当前dev-vnet对等,我们应该很好•我们基本上需要知道如何使用不同资源组中现有vnet中的网络创建ACR。我正在努力寻找正确的方法。
问题的可能原因是您为应用程序设置了错误的IP地址以供侦听。IP地址127.0.0.1
是只能在机器内部使用的本地主机或环回IP。看看这里。因此,您可以尝试将IP更改为0.0.0.0
。这个在外面是可以接近的。