公開容器群組的靜態 IP 位址
本文說明如何使用 Azure 應用程式閘道公開容器群組的靜態公用 IP 位址。 請遵循以下步驟,在 Azure Container Instances 中執行外部對向容器化應用程式的靜態進入點。
在本文中,您會使用 Azure CLI 為此案例建立資源:
- Azure 虛擬網路
- 部署在虛擬網路中且裝載小型 Web 應用程式的容器群組
- 具有公用前端 IP 位址、在閘道上裝載網站的接聽程式,以及後端容器群組路由的應用程式閘道
只要應用程式閘道執行,而且容器群組會在網路的委派子網路中公開穩定的私人 IP 位址,容器群組即可在此公用 IP 位址存取。
注意
Azure 應用程式閘道 支援 HTTP、HTTPS、HTTP/2 和 WebSocket 通訊協定。
應用程式閘道的 Azure 費用,取決於閘道佈建和可用的時間量,以及其處理的資料量。 請參閱定價。
建立虛擬網路
在一般情況下,您可能已經有 Azure 虛擬網路。 如果您沒有,請依下列範例命令所示建立一個。 虛擬網路需要應用程式閘道和容器群組的個別子網路。
如果您有需要,請建立 Azure 資源群組。 例如:
az group create --name myResourceGroup --location eastus
請使用 az network vnet create 命令來建立虛擬網路。 此命令會在網路中建立 myAGSubnet 子網路。
az network vnet create \
--name myVNet \
--resource-group myResourceGroup \
--location eastus \
--address-prefix 10.0.0.0/16 \
--subnet-name myAGSubnet \
--subnet-prefix 10.0.1.0/24
使用 az network vnet subnet create 命令來建立後端容器群組的子網路。 在這裡,其名稱為 myACISubnet。
az network vnet subnet create \
--name myACISubnet \
--resource-group myResourceGroup \
--vnet-name myVNet \
--address-prefix 10.0.2.0/24
使用 az network public-ip create 命令建立靜態公用 IP 資源。 在後續步驟中,此位址會設定為應用程式閘道的前端。
az network public-ip create \
--resource-group myResourceGroup \
--name myAGPublicIPAddress \
--allocation-method Static \
--sku Standard
建立容器群組
執行下列 az container create,在您上一個步驟設定的虛擬網路中建立容器群組。
群組會部署在 myACISubnet 子網路中,並包含名為 appcontainer 的單一執行個體來提取aci-helloworld
映像。 如文件中其他文章所示,此映像會封裝以 Node.js 撰寫並提供靜態 HTML 網頁的小型 Web 應用程式。
az container create \
--name appcontainer \
--resource-group myResourceGroup \
--image mcr.microsoft.com/azuredocs/aci-helloworld \
--vnet myVNet \
--subnet myACISubnet
成功部署時,容器群組會在虛擬網路中受指派為私人 IP 位址。 例如,執行下列 az container show 命令來擷取群組的 IP 位址:
az container show \
--name appcontainer --resource-group myResourceGroup \
--query ipAddress.ip --output tsv
輸出如下:10.0.2.4
。
若要在稍後的步驟中使用,請將 IP 位址儲存在環境變數中:
ACI_IP=$(az container show \
--name appcontainer \
--resource-group myResourceGroup \
--query ipAddress.ip --output tsv)
重要
如果容器群組已停止、啟動或重新啟動,則容器群組的私人 IP 可能變更。 如果發生這種情況,您必須更新應用程式閘道設定。
建立應用程式閘道
遵循應用程式閘道快速入門中的步驟,在虛擬網路中建立應用程式閘道。 下列 az network application-gateway create 命令會建立具有公用前端 IP 位址和後端容器群組路由的閘道。 如需閘道設定詳細資訊,請參閱應用程式閘道文件。
az network application-gateway create \
--name myAppGateway \
--location eastus \
--resource-group myResourceGroup \
--capacity 2 \
--sku Standard_v2 \
--http-settings-protocol http \
--public-ip-address myAGPublicIPAddress \
--vnet-name myVNet \
--subnet myAGSubnet \
--servers "$ACI_IP" \
--priority 100
Azure 建立應用程式閘道最多可能需要 15 分鐘。
測試公用 IP 位址
現在,您可以測試應用程式閘道後方容器群組中執行的 Web 應用程式存取權。
執行 az network public-ip show 命令來擷取閘道的前端公用 IP 位址:
az network public-ip show \
--resource-group myresourcegroup \
--name myAGPublicIPAddress \
--query [ipAddress] \
--output tsv
輸出是公用 IP 位址,類似於:52.142.18.133
。
若要在成功設定時檢視執行中的 Web 應用程式,請在瀏覽器中瀏覽至閘道的公用 IP 位址。 成功的存取會類似:
下一步
- 請參閱快速入門範本 (英文),建立具有 WordPress 容器執行個體的容器群組,作為應用程式閘道後方的後端伺服器。
- 您也可以設定包含 SSL 終止憑證的應用程式閘道。 請參閱概觀和教學課程。
- 根據您的情節,也可以考慮使用其他 Azure 負載平衡解決方案搭配 Azure 容器執行個體。 例如使用 Azure 流量管理員將流量分散到跨區域的多個容器執行個體。 請參閱此 部落格文章。