Azure 容器應用程式會在執行自己的虛擬網路的環境背景下執行。 當您建立環境時,有幾個重要考量會影響容器應用程式的網路功能:
環境選擇
容器應用程式有兩種不同的環境類型,其中有許多相同的網路特性有一些主要差異。
| 環境類型 | 支援的計劃類型 | 描述 |
|---|---|---|
| 工作負載模式 | 使用量、專用 | 支援使用者定義的路由 (UDR)、透過 NAT 閘道輸出,以及在容器應用程式環境上建立私人端點。 所需的子網路大小下限為 /27。 |
| 僅使用量 | 使用量 | 不支援使用者定義的路由 (UDR)、透過 NAT 閘道輸出、透過遠端閘道進行對等處理或其他自訂輸出。 所需的子網路大小下限為 /23。 |
如需詳細資訊,請參閱 環境類型。
虛擬網路類型
根據預設,Container Apps 會與可透過因特網公開存取的 Azure 網路整合,且只能與因特網可存取的端點通訊。 您也可以選擇在建立環境時改為提供現有的 VNet。 一旦您建立具有預設 Azure 網路或現有 VNet 的環境,就無法變更網路類型。
當您需要 Azure 網路功能時,請使用現有的 VNet,例如:
- 網路安全性群組
- 應用程式閘道整合
- Azure 防火牆整合
- 控制來自容器應用程式的輸出流量
- 存取虛擬網路中私人端點後方的資源
如果您使用現有的 VNet,您必須提供專用於您所部署容器應用程式環境的子網。 此子網路無法供其他服務使用。 如需詳細資訊,請參閱 虛擬網路組態。
存取範圍層次
您可以設定容器應用程式是否允許公用輸入,或只允許從環境層級的 VNet 內輸入。
| 存取範圍層次 | 描述 |
|---|---|
| 外部 | 可讓您的容器應用程式接受公用要求。 外部環境是以外部公開IP位址上的虛擬IP進行部署。 |
| 內部 | 內部環境沒有公開端點,且使用對應至內部 IP 位址的虛擬 IP (VIP) 進行部署。 內部端點是 Azure 內部負載平衡器(ILB),而 IP 位址是從現有 VNet 的私人 IP 位址清單發出。 |
公用網路存取
公用網路存取設定會決定您的容器應用程式環境是否可從公用因特網存取。 建立環境之後,您是否可以變更此設定,取決於環境的虛擬IP組態。 下表顯示公用網路存取的有效值,視您環境的虛擬IP組態而定。
| 虛擬IP | 支援的公用網路存取 | 描述 |
|---|---|---|
| 外部 | Enabled、Disabled |
容器應用程式環境是使用因特網可存取的端點所建立。 公用網路存取設定會決定流量是透過公用端點接受,還是只透過私人端點接受流量,而公用網路存取設定可以在建立環境之後變更。 |
| 內部 | Disabled |
容器應用程式環境是在沒有可存取因特網的端點的情況下建立的。 公用網路存取設定無法變更為接受來自因特網的流量。 |
若要在 Azure Container App 環境中建立私人端點,公用網路存取必須設定為 Disabled。
公用網路存取旗標支援 Azure 網路原則。
輸入設定
在輸入區段下,您可以進行下列設定:
流入:您可以啟用或停用容器服務的流入功能。
輸入流量:您可以從任何地方接受容器應用程式的流量,也可以將流量限制為來自相同 Container Apps 環境中的流量。
流量分割規則:您可以在應用程式的不同修訂之間定義流量分割規則。 如需詳細資訊,請參閱流量分割。
如需不同網路案例的詳細資訊,請參閱 Azure 容器應用程式中的輸入 (部分內容可能是機器或 AI 翻譯)。
輸入功能
| 特徵 / 功能 | 了解如何 |
|---|---|
| 入口 設定輸入 |
控制外部與內部流量路由至容器應用程式。 |
| 進階輸入 | 設定進階輸入設定,例如對輸入的工作負載設定檔支援以及閒置逾時。 |
| IP 限制 | 依IP位址限制容器應用程式的輸入流量。 |
| 用戶端憑證驗證 | 為容器應用程式設定客戶端憑證驗證(也稱為相互 TLS 或 mTLS)。 |
| 流量分割 藍色/綠色部署 |
分割容器應用程式的使用中修訂版本之間的傳入流量。 |
| 工作階段親和性 | 將所有要求從客戶端路由至容器應用程式的同一個複本。 |
| 跨原始資源分享 (CORS) | 為容器應用程式啟用 CORS,以允許透過瀏覽器對不符合頁面來源的網域提出要求。 |
| 路徑型路由 | 使用規則根據每個要求的路徑將請求路由至您環境中不同的容器應用程式。 |
| 虛擬網路 | 設定容器應用程式環境的 VNet。 |
| DNS | 為容器應用程式環境的 VNet 設定 DNS。 |
| 私人端點 | 使用私人端點安全地存取您的 Azure 容器應用程式,而不需將其公開至公用因特網。 |
| 與 Azure Front Door 整合 | 使用私人連結,直接從 Azure Front Door 連線到您的 Azure Container Apps,而不是公用因特網。 |
輸出功能
| 特徵 / 功能 | 了解如何 |
|---|---|
| 使用 Azure 防火牆 | 使用 Azure 防火牆來控制來自容器應用程式的輸出流量。 |
| 虛擬網路 | 配置您容器應用程式環境的 VNet。 |
| 使用 NSG 保護現有的 VNet | 使用網路安全組 (NSG) 保護您的容器應用程式環境的 VNet。 |
| NAT 閘道整合 | 使用 NAT 閘道,在工作負載配置檔環境中簡化虛擬網路中的輸出因特網連線。 |
教學課程
| 教學課程 | 了解如何 |
|---|---|
| 使用虛擬網路 | 使用虛擬網路。 |
| 設定 WAF 應用程式閘道 | 設定 WAF 應用程式閘道。 |
| 開啟使用者定義路由 (UDR) | 啟用使用者定義的路由 (UDR)。 |
| 使用相互傳輸層安全性 (mTLS) | 在 Azure Container Apps 中建置 mTLS 應用程式。 |
| 使用私人端點 | 使用私人端點安全地存取您的 Azure 容器應用程式,而不需將其公開至公用因特網。 |
| 與 Azure Front Door 整合 | 使用私人連結,直接從 Azure Front Door 連線到您的 Azure Container Apps,而不是公用因特網。 |
環境安全性
您可以採取下列動作,完全保護您的輸入和輸出網路流量工作負載設定檔環境:
在工作負載設定檔環境中建立您的內部容器應用程式環境。 如需步驟,請參閱使用 Azure CLI 管理工作負載設定檔。
將容器應用程式與應用程式閘道器整合。
設定 UDR 以透過 Azure 防火牆傳送所有流量。
HTTP 邊緣代理行為
Azure Container Apps 會使用邊緣 HTTP Proxy 來終止傳輸層安全性(TLS),並將要求路由傳送至每個應用程式。
HTTP 應用程式會根據 HTTP 要求和連線的數目進行縮放。 Envoy 會在叢集內部路由傳送傳送內部流量。
下游連線支援 HTTP1.1 和 HTTP2,Envoy 則會在用戶端連線需要升級時自動偵測並升級連線。
藉由在transport物件上設定 屬性,即可定義上游連線。
入口網站相依性
Azure 容器應用程式中的每個應用程式都有兩個 URL。
容器應用程式的運行環境最初會產生完整合格網域名稱 (FQDN),用來存取您的應用程式。 如需容器應用程式的 FQDN,請在 Azure 入口網站中查看容器應用程式「概觀」視窗中的應用程式 URL。
為您生成了第二個 URL。 此位置會授與對記錄串流服務和主控台的存取權。 如有必要,您可能需要將 https://azurecontainerapps.dev/ 新增至防火牆或 Proxy 的允許清單。
連接埠和 IP 位址
下列連接埠會公開給輸入連線使用。
| 通訊協定 | 連接埠 |
|---|---|
| HTTP/HTTPS | 80、443 |
IP 位址分成下列類型:
| 類型 | 描述 |
|---|---|
| 公用輸入 IP 位址 | 這會用於外部部署中的應用程式流量,以及內部和外部部署中的管理流量。 |
| 輸出公用 IP | 作為離開虛擬網路的輸出連線所用的「來源」IP。 這些連線不會透過 VPN 路由傳送。 輸出 IP 可能隨時間而改變。 只有在工作負載設定檔環境中,才支援為來自容器應用程式環境的輸出流量使用 NAT 閘道或其他 Proxy。 |
| 內部負載平衡器 IP 位址 | 此位址只位於內部環境中。 |