簡體   English   中英

公開 vnet 內的 Azure 容器實例的正確方法是什么?

[英]What is the proper way to expose an Azure Container Instance that is inside a vnet?

我有一個運行 REST API 的 ACI,需要公開,但需要訪問 vnet 內的資源。

出於某種原因,與普通 VM 不同,如果 ACI 在 vnet 內,則它不能有公共 IP 地址。 如果您嘗試給它一個 DNS 名稱,它會失敗。

唯一的選擇似乎是使用此處描述的應用程序網關: https://docs.microsoft.com/en-us/azure/container-instances/container-instances-application-gateway

還有這里: 將 Static 公共地址分配給 Azure 容器實例部署

但是這種方法有一個致命的缺陷,如文檔本身所示:“如果容器組停止、啟動或重新啟動,容器組的私有 IP 可能會發生變化。如果發生這種情況,您將需要更新應用程序網關配置。”

應用程序網關可以選擇按資源名稱 select 后端池,但這僅適用於普通 VM。 另一種選擇是直接輸入 IP 地址。

ACI 很容易在不知情的情況下重新啟動。 根據經驗,主機殺死它並重新啟動它的情況相對經常發生,可能會采用不同的 IP。

在互聯網上公開在 ACI 實例上運行的服務,同時讓它訪問 vnet 后面的資源的正確方法是什么? 應用程序網關方法顯然不是正確的方法。

我需要一個可以輕松使用 Azure CLI 的解決方案,因為我正在通過 Bitbucket 管道部署我的 ACI。

更新:

Azure 容器實例只是一堆垃圾。 將它們從 vnet 公開的唯一方法是使用應用程序網關,在運行一個月后,最終成本超過容器實例本身,此外,Azure 容器實例在某些地區非常不穩定(在西歐,他們保持被殺)。 由於支持不了解發生了什么(顯然這是多個客戶的問題),因此每次重新啟動實例時,它都會獲得不同的 IP 地址,以及昂貴的應用程序網關,每月可能超過 100 美元。 甚至不知道 IP 地址已更改。

如果只想使用ACI,那就沒辦法解決了。 您發現的是訪問 VNet 內的 ACI 的唯一方法。 但如果你不介意,也許你可以使用 AKS,然后啟用虛擬節點,然后你也可以在 VNet 中運行 ACI 並在外部訪問它。 當然,您可以只使用 AKS,它還可以幫助您在 VNet 中運行應用程序並在外部訪問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM