共用方式為


Azure Container Instances 中的容器群組

在 Azure Container Instances 中,最上層的資源就是容器群組。 本文描述什麼是容器群組,以及其可實現的案例類型。

什麼是容器群組?

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

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

Container groups diagram

此範例容器群組:

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

注意

多容器群組目前僅支援 Linux 容器。 對於 Windows容器,Azure 容器執行個體僅支援單一容器執行個體的部署。 雖然我們設法將所有功能導入 Windows 容器中,但是您可在服務概觀中找到目前的平台差異。

部署

以下是部署多容器群組的兩個常見方式:使用 Resource Manager 範本YAML 檔案。 當您部署容器執行個體時,如果需要部署其他 Azure 服務資源 (例如 Azure 檔案儲存體共用),便建議使用 Resource Manager 範本。 由於 YAML 格式的本質較簡潔,建議在您的部署僅包括容器執行個體時才使用 YAML 檔案。 如需您可以設定哪些屬性的詳細資訊,請參閱 Resource Manager 範本參考YAML 參考文件。

若要保留容器群組的設定,您可以使用 Azure CLI 命令 az container export 將設定匯出至 YAML 檔案。 匯出可讓您將容器群組設定儲存在「設定即程式碼」的版本控制中。或者,在 YAML 中開發新組態時,您可以使用匯出的檔案作為起點。

資源配置

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

容器執行個體的資源使用量

對於群組中的每個容器執行個體,都會配置其資源要求中指定的資源。 不過,如果您設定了選擇性資源限制屬性,則群組中的容器執行個體所使用的資源上限可能會不同。 容器執行個體的資源限制必須大於或等於必要的資源要求屬性。

  • 若未指定資源限制,容器執行個體的資源使用量上限將會與其資源要求相同。

  • 如果您指定了容器執行個體的限制,則執行個體的使用量上限可能會大於要求 (上限為您所設定的限制)。 相對地,群組中其他容器執行個體的資源使用量可能會減少。 您可為容器執行個體設定的最大資源限制,就是配置給群組的資源總計。

例如,在含有兩個容器執行個體、且兩者各需 1 個 CPU 的群組中,其中一個容器所執行的工作負載可能會需要比另一個容器更多的 CPU 來執行。

在此案例中,您可以為容器執行個體設定最多 2 個 CPU 的資源限制。 此設定可讓容器執行個體最多使用 2 個 CPU (如果有的話)。

注意

服務的基礎結構會使用少量的容器群組資源。 您的容器將可存取配置給該群組的大部分資源,但不是所有資源。 因此,為群組中的容器要求資源時,請規劃小型的資源緩衝區。

最小和最大配置

  • 至少 1 個 CPU 和 1 GB 的記憶體配置給容器群組。 對於群組內的個別容器執行個體可以佈建小於 1 個 vCPU 和 1 GB 記憶體。

  • 關於容器群組中的資源上限,請參閱 Azure 容器執行個體在部署區域中的資源可用性

網路

容器群組可以共用對外 IP 位址、該 IP 位址上的一或多個連接埠,以及具有完整網域名稱 (FQDN) 的 DNS 標籤。 若要讓外部用戶端連線到群組內的容器,您必須在 IP 位址上及從容器公開連接埠。 容器群組的 IP 位址和 FQDN 會在刪除容器群組時釋出。

在容器群組中,容器執行個體可透過任何連接埠上的 localhost 彼此連線,即使這些連接埠未在群組的 IP 位址對外公開,或未從容器公開。

選擇性地將容器群組部署至 Azure 虛擬網路中,讓容器可在虛擬網路中安全地與其他資源通訊。

儲存體

您可以指定要在容器群組內掛接的外部磁碟區。 支援的磁碟區包括:

您可將這些磁碟區對應到群組之個別容器內的特定路徑。

常見案例

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

使用範例包含:

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

下一步

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