探索 Azure 容器執行個體

已完成

對於可在隔離容器中運作的任何案例,包括簡單的應用程式、工作自動化及建置工作,Azure 容器執行個體 (ACI) 是很棒的解決方案。 以下是一些優點:

  • 快速啟動:ACI 可於幾秒鐘內在 Azure 中啟動容器,而不需要佈建和管理 VM
  • 容器存取:ACI 可讓您利用 IP 位址和完整網域名稱 (FQDN),直接向網際網路公開您的容器群組
  • Hypervisor 層級安全性:完全隔離您的應用程式,如同在 VM 中一樣
  • 客戶資料:ACI 服務會儲存要確保容器群組如預期般執行所需的最少客戶資料
  • 自訂大小:ACI 允許使用明確的 CPU 核心與記憶體規格,以提供最佳的使用率
  • 永續性儲存體:直接將 Azure 檔案共用掛接至容器,以擷取和保存狀態
  • Linux 和 Windows:使用相同的 API 來排程 Windows 和 Linux 容器。

對於需要完整容器協調流程的情節,包括跨多個容器的服務探索、自動縮放及協調性應用程式升級,建議使用 Azure Kubernetes Service (AKS)

容器群組

在 Azure Container Instances 中,最上層的資源就是容器群組。 容器群組是在相同主機電腦上進行排程的容器集合。 容器群組中的容器會共用生命週期、資源、區域網路和存放磁碟區。 其與 Kubernetes 中的 Pod 概念類似。

下圖顯示包含多個容器的容器群組範例:

Example container group with two containers, one listening on port 80 and the other listening on port 5000.

此範例容器群組:

  • 會在單一主機電腦上進行排程。
  • 已指派 DNS 名稱標籤。
  • 會公開單一的公用 IP 位址,以及一個公開的連接埠。
  • 由兩個容器組成。 一個容器接聽連接埠 80,另一個容器接聽連接埠 5000。
  • 包含兩個 Azure 檔案共用作為磁碟區掛接,每個容器都會在本機掛接其中一個共用。

注意

多容器群組目前僅支援 Linux 容器。 對於 Windows容器,Azure 容器執行個體僅支援單一執行個體的部署。

部署

以下是部署多容器群組的兩個常見方式:使用 Resource Manager 範本或 YAML 檔案。 當您部署容器實例時,需要部署更多 Azure 服務資源(例如,Azure 檔案儲存體 共用),建議使用 Resource Manager 範本。 由於 YAML 格式的本質較簡潔,建議在您的部署僅包括容器執行個體時才使用 YAML 檔案。

資源配置

Azure 容器執行個體會透過新增群組中執行個體的資源要求,將 CPU、記憶體和選擇性的 GPU (預覽) 等資源配置至容器群組。 以 CPU 資源為例,如果建立具有兩個執行個體的容器群組,且每個執行個體都要求一個 CPU,則系統會將二個 CPU 配置給容器群組。

網路

容器群組會共用 IP 位址和該 IP 位址上的連接埠命名空間。 若要讓外部用戶端連線到群組內的容器,您必須在 IP 位址上及從容器公開連接埠。 因為群組內的容器會共用連接埠命名空間,所以不支援連接埠對應。 群組內的容器可以透過所公開埠上的 localhost 彼此連線,即使這些埠不會在群組的 IP 位址外部公開。

儲存體

您可以指定要在容器群組內掛接的外部磁碟區。 您可將這些磁碟區對應到群組之個別容器內的特定路徑。 支援的磁碟區包括:

  • Azure 檔案共用
  • 祕密
  • 空白目錄
  • 複製的 Git 存放庫

常見案例

如果您想要將單一功能性工作分割成數個容器映像,多個容器的群組會很實用。 這些映像可能由不同的小組提供,而且有不同的資源需求。

使用範例包含:

  • 作為 Web 應用程式的容器,以及從原始程式碼控制提取最新內容的容器。
  • 應用程式容器和記錄容器。 記錄容器會收集主要應用程式輸出的記錄和記錄,並寫入長期儲存體。
  • 應用程式容器和監視容器。 監視容器會定期向應用程式發出要求,以確保它會保持執行狀態並正確回應,如果沒有正確回應則引發警示。
  • 前端容器和後端容器。 前端可能會提供 Web 應用程式,而後端則會執行服務來擷取資料。