探索 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 概念類似。
下圖顯示包含多個容器的容器群組範例:
此範例容器群組:
- 會在單一主機電腦上進行排程。
- 已指派 DNS 名稱標籤。
- 會公開單一的公用 IP 位址,以及一個公開的連接埠。
- 由兩個容器組成。 一個容器接聽連接埠 80,另一個容器接聽連接埠 5000。
- 包含兩個 Azure 檔案共用作為磁碟區掛接,每個容器都會在本機掛接其中一個共用。
注意
多容器群組目前僅支援 Linux 容器。 對於 Windows容器,Azure 容器執行個體僅支援單一執行個體的部署。
部署
以下是部署多容器群組的兩個常見方式:使用 Resource Manager 範本或 YAML 檔案。 當您部署容器實例時,需要部署更多 Azure 服務資源時,建議使用 Resource Manager 範本。 由於 YAML 格式的本質較簡潔,建議在您的部署僅包括容器執行個體時才使用 YAML 檔案。
資源配置
Azure 容器執行個體會透過新增群組中執行個體的資源要求,將 CPU、記憶體和選擇性的 GPU (預覽) 等資源配置至容器群組。 以 CPU 資源為例,如果建立具有兩個執行個體的容器群組,且每個執行個體都要求一個 CPU,則系統會將二個 CPU 配置給容器群組。
網路
容器群組會共用 IP 位址和該 IP 位址上的連接埠命名空間。 若要讓外部用戶端連線到群組內的容器,您必須在 IP 位址上及從容器公開連接埠。 因為群組內的容器會共用連接埠命名空間,所以不支援連接埠對應。 群組內的容器可以在它們已公開的連接埠上透過 localhost 彼此連線,即使這些連接埠並未在群組的 IP 位址上對外公開也是如此。
儲存體
您可以指定要在容器群組內掛接的外部磁碟區。 您可將這些磁碟區對應到群組之個別容器內的特定路徑。 支援的磁碟區包括:
- Azure 檔案共用
- 祕密
- 空白目錄
- 複製的 Git 存放庫
常見案例
如果您想要將單一功能性工作分割成數個容器映像,多個容器的群組會很實用。 這些影像便能由不同小組傳送,且有不同的資源需求。
使用範例包含:
- 作為 Web 應用程式的容器,以及從原始程式碼控制提取最新內容的容器。
- 應用程式容器和記錄容器。 記錄容器會收集主要應用程式輸出的記錄和記錄,並寫入長期儲存體。
- 應用程式容器和監視容器。 監視容器會定期向應用程式發出要求,以確保它會保持執行狀態並正確回應,如果沒有正確回應則引發警示。
- 前端容器和後端容器。 前端可能會提供 Web 應用程式,而後端則會執行服務來擷取資料。