共用方式為


Azure 容器執行個體的最佳做法和考量

Azure 容器執行個體可讓您封裝、部署及管理雲端應用程式,而不需要管理基礎結構。 在 ACI 上執行的常見案例包括高載工作負載、工作自動化和建置作業。 您可以定義每個容器群組所需的資源,包括 vCPU 和記憶體,以使用 ACI。 ACI 是絕佳的解決方案,適用於任何可在隔離容器中運作,並提供快速啟動時間、Hypervisor 層級安全性、自訂容器大小等等的案例。 下列資訊可協助您判斷 Azure 容器執行個體是否最適合您的案例。

考量事項

透過命令列介面 (CLI) 傳遞的使用者認證會儲存為後端的純文字。 以純文字儲存認證是安全性風險;Microsoft 建議客戶將使用者認證儲存在 CLI 環境變數中,以確保在後端儲存時會加密/轉換。

存在可能需要增加配額的預設限制。 如需詳細資訊:ACI 的資源可用性和配額限制 - Azure 容器執行個體 | Microsoft Learn

容器映像不能大於 15 GB,任何超過此大小的映像都可能會導致非預期的行為:我的容器映像可以有多大?

如果您的容器映像大於 15 GB,您可以掛接 Azure 檔案儲存體來儲存映像。

如果容器群組重新啟動,容器群組的 IP 可能會變更。 建議您不要在情節中使用硬式編碼 IP 位址。 如果您需要靜態公用 IP 位址,請使用應用程式閘道:容器群組的靜態 IP 位址 - Azure 容器執行個體 | Microsoft Learn

存在保留給服務功能的連接埠。 建議您不要使用這些連接埠,因為這些連接埠會導致非預期的行為:ACI 服務是否為服務功能保留連接埠?

容器群組可能會因為平台維護事件而重新啟動。 這些維護事件是為了確保基礎結構的持續改善:容器已進行隔離式重新啟動,而不需要明確的使用者輸入

ACI 不允許具有權限的容器作業。 建議您不需要在情節中使用根目錄

最佳作法

建議您在多個區域中執行容器群組,以便在某個區域中發生問題時,您的工作負載可以繼續執行。

建議您不要在您的案例中使用硬式編碼 IP 位址,因為並不保證容器群組的 IP 位址。 若要減輕連線問題,建議您設定閘道。 如果您的容器位於公用 IP 位址後面,且您需要靜態公用 IP 位址,請使用應用程式閘道。 如果您的容器位於虛擬網路後方,且您需要靜態 IP 位址,建議您使用 NAT 閘道

其他 Azure 容器選項

Azure 容器應用程式

Azure 容器應用程式可讓您根據容器建置無伺服器微服務。 Azure 容器應用程式不提供基礎 Kubernetes API 的直接存取權。 如果您需要存取 Kubernetes API 和控制平面,您應該使用 Azure Kubernetes Service。 不過,如果您想要建置 Kubernetes 樣式應用程式,而且不需要直接存取所有原生 Kubernetes API 和叢集管理,容器應用程式會根據最佳做法提供完全受控的體驗。 基於這些原因,許多團隊可能偏好開始使用 Azure 容器應用程式建置容器微服務。

Azure App Service

Azure App Service 為 Web 應用程式提供完全受控的裝載,包括網站和 Web API。 這些 Web 應用程式可以使用程式碼或容器來部署。 Azure App Service 已針對 Web 應用程式最佳化。 Azure App Service 與其他 Azure 服務整合,包括 Azure 容器應用程式或 Azure Functions。 如果您打算建置 Web 應用程式,Azure App Service 是理想的選項。

Azure Container Instances

Azure 容器執行個體 (ACI) 會視需要提供 Hyper-V 隔離容器的單一 Pod。 相較于容器應用程式,您可以將它視為較低層級的「建置組塊」選項。 ACI 容器不提供調整、負載平衡和憑證等概念。 例如,若要調整為五個容器執行個體,您可以建立五個不同的容器執行個體。 Azure 容器應用程式在容器之上提供許多應用程式特定概念,包括憑證、修訂、調整和環境。 使用者通常會透過其他服務與 Azure 容器執行個體互動。 例如,Azure Kubernetes Service 可以透過虛擬節點分層協調流程,並在 ACI 之上進行調整。 如果您需要不太符合 Azure 容器應用程式最佳化案例的「堅持己見」建置組塊,Azure 容器執行個體是理想的選項。

Azure Kubernetes Service

Azure Kubernetes Service (AKS) 在 Azure 中提供完全受控 Kubernetes 選項。 它支援直接存取 Kubernetes API,並執行任何 Kubernetes 工作負載。 完整叢集位於您的訂用帳戶中,而叢集組態和作業則位於您的控制與責任內。 在 Azure 中尋找完全受控 Kubernetes 版本的小組,Azure Kubernetes Service 是理想的選項。

Azure Functions

Azure Functions 是無伺服器函數即服務 (FaaS) 解決方案。 其已針對使用函式程式設計模型執行事件驅動應用程式進行最佳化。 其會與 Azure 容器應用程式共用許多特性,以調整和與事件整合,但是已針對部署為程式碼或容器的暫時性函式最佳化。 Azure Functions 程式設計模型可為想要在事件上觸發函式執行並繫結至其他資料來源的小組提供生產力優勢。 如果您打算建置 FaaS 樣式函式,Azure Functions 是理想的選項。 Azure Functions 程式設計模型可作為基礎容器映像,使其可攜至其他容器型計算平台,讓小組在環境需求變更時重複使用程式碼。

Azure Spring Apps

Azure Spring 應用程式是適用於 Spring 開發人員的完全受控服務。 如果您想要在 Azure 上執行 Spring Boot、Spring Cloud 或任何其他 Spring 應用程式,Azure Spring 應用程式是理想的選項。 服務會管理 Spring 應用程式的基礎結構,讓開發人員可以專注於處理程式碼。 Azure Spring 應用程式提供生命週期管理,使用全方位的監視和診斷、組態管理、服務探索、持續整合與持續傳遞的整合、藍綠部署等等。

Azure Red Hat OpenShift

Azure Red Hat OpenShift 由 Red Hat 與 Microsoft 共同設計、運作和支援,以提供整合的產品和支援體驗,讓您執行 Kubernetes 提供的 OpenShift。 透過 Azure Red Hat OpenShift,團隊可以自行選擇登錄、網路功能、儲存體和 CI/CD 解決方案,或使用內建解決方案來進行自動化原始程式碼管理、容器和應用程式建置、部署、調整、健康情況管理等更多 OpenShift 功能。 如果您的小組或組織使用 OpenShift,Azure Red Hat OpenShift 是理想的選項。

下一步

了解如何使用 Azure Resource Manager 範本來部署多個容器的容器群組: