Azure 容器應用程式 在運行自己的虛擬網路的 環境中運作。 在建立環境時,幾個關鍵考量會影響容器應用程式的網路能力:環境類型、虛擬網路類型,以及無障礙等級。
環境選擇
容器應用程式有兩種 環境類型。 它們有許多相同的網路特性,但也有一些關鍵差異。
| 環境類型 | 支援的計劃類型 | 描述 |
|---|---|---|
| 工作負載設定檔 (預設) | 使用量、專用 | 支援使用者定義路由(UDR)、透過 Azure NAT 閘道 的出口,以及在容器應用環境中建立私有端點。 所需的子網路大小下限為 /27。 |
| 僅限使用量 (舊版) | 使用量 | 不支援 UDR、透過 Azure NAT 閘道的 Egress、透過遠端閘道的對等互連或其他自訂 Egress。 所需的子網路大小下限為 /23。 |
更多資訊請參見 環境類型。
虛擬網路類型
預設情況下,容器應用程式已整合至 Azure 網路,該網路可透過網際網路公開存取,且只能與可網際網路存取的端點通訊。 你也可以選擇在建立環境時提供現有的虛擬網路。 當你建立一個包含預設 Azure 網路或現有虛擬網路的環境後,你就無法更改網路類型。
當你需要 Azure 網路功能時,可以使用現有的虛擬網路,例如:
- 網路安全性群組。
- Azure 應用程式閘道 整合。
- Azure 防火牆 整合。
- 控制容器應用程式的對外輸出流量。
- 存取虛擬網路中私有端點背後的資源。
如果你使用現有的虛擬網路,你需要提供一個專門用於你部署的容器應用程式環境的子網路。 此子網路無法供其他服務使用。 欲了解更多資訊,請參閱 虛擬網路配置。
存取範圍層次
你可以設定容器應用程式是否允許公開入侵,或僅限於虛擬網路內部的環境層級入侵。
| 存取範圍層次 | 描述 |
|---|---|
| 外部 | 你的容器應用程式可以接受公開請求。 外部環境部署時,會以虛擬 IP 部署於外部公開的 IP 位址上。 |
| 內部 | 內部環境沒有公共端點,部署時會將虛擬 IP 映射到內部 IP 位址。 內部端點是 Azure 內部負載平衡器。 IP 位址是從現有虛擬網路的私有 IP 位址清單中分配的。 |
公用網路存取
公共網路存取的設定決定了你的容器應用程式環境是否能從公共網際網路存取。 建立環境之後,您是否可以變更此設定,取決於環境的虛擬IP組態。 下表顯示公用網路存取的有效值,視您環境的虛擬IP組態而定。
| 虛擬IP | 支援的公用網路存取 | 描述 |
|---|---|---|
| 外部 |
Enabled、Disabled |
容器應用程式環境是以一個可網際網路存取的端點建立的。 公共網路存取的設定決定流量是透過公共端點接受,還是僅限私有端點。 你可以在建立環境後再更改這個設定。 |
| 內部 | Disabled |
容器應用程式環境是在沒有網路可存取端點的情況下建立的。 你無法更改公共網路存取的設定來接受來自網際網路的流量。 |
要在容器應用環境中建立私有端點,您必須將公共網路存取設定為 Disabled。
啟用公用網路存取旗標時,即支援 Azure 網路原則。
輸入設定
在 入口 區塊,你可以設定以下設定:
啟用或停用您的容器應用程式的 Ingress 。
允許來自任何位置的流量進入您的容器應用程式,或僅允許來自相同 Container Apps 環境內的流量。
在應用程式版本間定義流量分割規則。 如需詳細資訊,請參閱流量分割。
如需更多網路案例的相關資訊,請參閱 Azure 容器應用程式 中的 Ingress。
輸入功能
| 特徵 / 功能 | 了解如何 |
|---|---|
|
入口 設定輸入 |
控制外部與內部流量路由至容器應用程式。 |
| 進階輸入 | 設定進階 Ingress 設定,例如 Ingress 的工作負載設定檔支援和閒置逾時。 |
| IP 限制 | 依IP位址限制容器應用程式的輸入流量。 |
| 用戶端憑證驗證 | 為容器應用程式設定客戶端憑證驗證(也稱為相互 TLS 或 mTLS)。 |
|
流量分割 藍色/綠色部署 |
分割容器應用程式的使用中修訂版本之間的傳入流量。 |
| 工作階段親和性 | 將所有要求從客戶端路由至容器應用程式的同一個複本。 |
| 跨來源資源共享(CORS) | 為容器應用程式啟用 CORS,以允許透過瀏覽器對不符合頁面來源的網域提出要求。 |
| 路徑型路由 | 使用規則根據每個要求的路徑將請求路由至您環境中不同的容器應用程式。 |
| 虛擬網路 | 為你的容器應用程式環境設定虛擬網路。 |
| DNS | 為你的容器應用程式環境虛擬網路設定 DNS。 |
| 私人端點 | 使用私人端點安全存取你的容器應用程式,且不會暴露在公共網路上。 |
| 與 Azure Front Door 整合 | 透過私有連結直接從 Azure Front Door 連接到容器應用程式,而非公共網際網路。 |
輸出功能
| 特徵 / 功能 | 了解如何 |
|---|---|
| 使用 Azure 防火牆 | 使用 Azure 防火牆來控制來自容器應用程式的輸出流量。 |
| 虛擬網路 | 為你的容器應用程式環境設定虛擬網路。 |
| 利用網路安全群組保護現有虛擬網路 | 透過使用網路安全群組,協助保護你的容器應用程式環境虛擬網路。 |
| Azure NAT 閘道整合 | 使用 Azure NAT 閘道 在工作負載設定環境中簡化虛擬網路的外撥網路連線。 |
操作說明文章
| 文章 | 了解如何 |
|---|---|
| 提供虛擬網路給 Azure 容器應用程式 環境 | 使用虛擬網路。 |
| 透過 Application Gateway 上的 Web 應用程式防火牆 保護 Azure 容器應用程式 | 在 Azure 應用程式閘道 上配置 Azure Web 應用程式防火牆。 |
| 使用使用者定義的路由控制 Azure 容器應用程式 的出站流量 | 啟用 UDR。 |
| 在 Azure 容器應用程式 中使用 mTLS | 在容器應用程式中建立一個 mTLS 應用程式。 |
| 使用私人端點安全存取你的容器應用程式,且不會暴露在公共網路上。 | |
| 使用 Azure Front Door 建立容器應用程式的私人連結 | 透過私有連結直接從 Azure Front Door 連接到容器應用程式,而非公共網際網路。 |
環境安全性
您可以透過以下措施來協助保護您的工作負載配置環境,以保障進出網路流量:
在工作負載設定環境中建立你的內部容器應用程式環境。 如需步驟,請參閱使用 Azure CLI 管理工作負載設定檔。
將容器應用程式與 應用閘道整合。
設定一個 UDR,讓所有流量都經過 Azure 防火牆。
HTTP 邊緣代理行為
Azure 容器應用程式 使用邊緣 HTTP 代理,該代理會終止 TLS 並將請求路由到每個應用程式。
HTTP 應用程式會根據 HTTP 要求和連線的數目進行縮放。 Envoy 會在叢集內部路由傳送傳送內部流量。
下游連線支援 HTTP/1.1 和 HTTP/2。 如果客戶端連線需要升級,Envoy 會自動偵測並升級連線。
你可以透過在transport物件上設定屬性來定義上游連線。
入口網站相依性
容器應用程式中的每個應用程式都有兩個網址。
容器應用程式執行階段最初會產生一個完全限定的網域名稱(FQDN),用來存取你的應用程式。 要取得容器應用程式的 FQDN,請在 Azure 入口網站中進入容器應用程式。 在 概覽 面板上,FQDN 是 應用程式網址 值。
為您生成了第二個 URL。 此位置可存取日誌串流服務及主控台。 如有需要,請將 https://azurecontainerapps.dev/ 加入防火牆或代理伺服器的允許清單。
連接埠和 IP 位址
以下埠口為入站連線所開放:
| 通訊協定 | Ports |
|---|---|
| HTTP/HTTPS | 80、443 |
IP 位址有以下類型:
| 類型 | 描述 |
|---|---|
| 公用輸入 IP | 用於外部部署中的應用程式流量,以及內部與外部部署中的管理流量。 |
| 輸出公用 IP | 作為離開虛擬網路的輸出連線所用的「來源」IP。 這些連線不會透過 VPN 路由傳送。 輸出 IP 可能會隨著時間而變更。 只有在 工作負載設定檔環境 中,才支援使用 Azure NAT 閘道 或其他 Proxy 來處理 Container Apps 環境的輸出流量。 |
| 內部負載平衡器的 IP 地址 | 只存在 於內部環境中。 |