问题描述
我使用如下命令将 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.
请问有什么问题?
附注:
可能与此有关:
我不得不说我发现使用 Azure 真的很令人沮丧。没有什么似乎真的有效。从 Azure ML 开始到 ACI ...
PPS:
这就是我们的 IT 所说的 - tbh 我不完全理解......
• 不支持私有端点,因此我们需要在资源组中创建一个与当前开发 vnet 对等的 vnet,我们应该没问题 • 我们基本上需要知道如何使用不同资源组中现有 vnet 中的网络创建 ACR。我正在努力寻找正确的方法来做到这一点。
解决方法
由于您已将 ACI 部署到 Azure 虚拟网络中,因此您的容器可以安全地与虚拟网络中的其他资源进行通信。因此,您可以访问 Azure vNet 中的 ACI 端点。
例如,您可以尝试在 vNet 中部署 VM,但在与 ACI 不同的子网中,然后您可以尝试从 Azure VM 访问 ACI 端点。
或者,您可以expose a static IP address for a container group使用具有公共前端 IP 地址的应用程序网关。
,问题的可能原因是您为应用程序设置了错误的 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
。这个可以在外面访问。