關於 Azure Container Instances 的常見問題集

本文說明 Azure Container Instances 的常見問題。

部署

我的容器映像可以有多大?

Azure Container Instances 上可部署容器映像的大小上限為 15 GB。 在部署時,您可依確切的可用性來部署較大映像,但不能保證較大的映像大小。

容器映像的大小會影響部署所需時間,因此一般而言,您會希望盡可能將容器映像保持在最小。

如何加速容器的部署?

因為部署時間的其中一個主要決定因素是映像大小,因此,請尋找降低大小的方法。 移除不需要的層,或挑選較輕量的基底 OS 映像,以降低映像層大小。 例如,如果您正在執行 Linux 容器,請考慮使用 Alpine 作為基底映像,而非使用完整的 Ubuntu Server。 同樣地,若為 Windows 容器,請盡可能使用 Nano Server 基底映像。

您也應該檢查 Azure 容器映像中的預先快取映像清單,可透過列出快取映像 API 取得。 您可能可以使用映像層來交換其中一個預先快取的映像。

請參閱更多有關減少容器啟動時間的詳細指導方針。

支援的 Windows 基本 OS 映像有哪些?

注意

因為 2020 Windows 更新後發生的回溯相容性問題,以下映像版本包含基底映像建議使用的最低版本號碼。 目前使用舊版映像的部署不會受到影響,但新的部署應遵循下列基底映像。 2021 年 6 月 14 日之後,ACI 將不再支援使用舊版的部署。

注意

Azure Container Instances 上的機密容器目前不支援 Windows 容器。

Windows Server 2016 基底映像

重要

從現在到 2022 年 12 月 31 日,您可以繼續在 Azure 容器執行個體上部署 Windows Server 2016 容器群組。 在此日期之後,將不再支援 Windows Server 2016 映像。 如需關於如何轉換工作負載的指示,請參閱如何將我的 Windows Server 2016 容器群組移轉至 Windows Server 2019 映像?

注意

不支援以半年通道版本 1709 或 1803 為基礎的 Windows 映像。

Windows Server 2019 和用戶端基底映像

我應該在容器中使用哪個 .NET 或 .NET Core 映像層?

使用滿足需求的最小映像。 針對 Linux,您可以使用 runtime-alpine .NET Core 映像,其自 .NET Core 2.1 起即已受到支援。 針對 Windows,如果您正在使用完整的 .NET Framework,則需要使用 Windows Server Core 映像 (僅限執行階段映像,例如 4.7.2-windowsservercore-ltsc2016)。 僅限執行階段映像較小,但不支援需要 .NET SDK 的工作負載。

注意

ACI 無法從不符合 OCI 規範的登錄中提取映像。

哪些類型的容器登錄符合 ACI 規範?

ACI 支援從 ACR 和 DockerHub 等其他協力廠商容器登錄提取映像。 ACI 支援從 ACR 和 DockerHub 等符合網際網路公開端點規範的其他協力廠商 OCI 容器登錄提取映像。

如何將我的 Windows Server 2016 容器群組移轉至 Windows Server 2019 映像?

  1. 識別您目前使用的 Windows 基礎映像。

    如果您是直接從 Microsoft Container Registry (MCR) 提取映像,則該映像的名稱就是您的基礎映像。

    如果您使用的是私人登錄,則您必須查看 Dockerfile 才能識別基礎映像 (記錄在 'FROM' 行後方)。

  2. 從 Windows Server 2019 選取您想要使用的新基礎映像。 以下是 Azure 容器執行個體上常用的 Windows Server 2016 映像範例,以及我們建議用來取代的 Windows Server 2019 映像。

    Windows Server 2016 映像 建議的 Windows Server 2019 映像
    mcr.microsoft.com/windows/servercore/iis mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019
    mcr.microsoft.com/windows/servercore:ltsc2016 mcr.microsoft.com/windows/servercore:ltsc2019

    請參閱映像探索以深入了解。

    注意

    如果您在選取新基礎映像時需要幫助,請建立 Azure 支援票證。

  3. 請遵循更新 Azure 容器執行個體中容器的操作指南來更新 ACI 容器群組,以便使用新的基礎映像。

    如果您使用 MCR 來進行容器登錄,您可以將 MCR 映像的名稱直接傳至容器群組映像參數

    如果您使用的是私人容器登錄,請遵循將容器升級至較新版 Windows 作業系統中的步驟。 如果您已變更容器群組的映像登錄參數,請確定這些參數已更新。

可用性和配額

我應該為容器或容器群組配置多少核心和記憶體?

這實際上取決於工作負載。 請從小的配額開始,測試看看容器的執行效能。 監視 CPU 和記憶體資源使用量,然後根據您在容器中部署的程序類型來新增核心或記憶體。

請務必也要檢查您所正在部署區域的資源可用性,以了解每個容器群組可用的 CPU 核心和可用記憶體上限。

注意

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

ACI 執行基礎的基礎結構為何?

Azure Container Instances 的目標是成為無伺服器的容器隨選服務,因此我們希望您專注於容器開發,不需要擔心基礎結構! 如果對效能好奇或想要加以比較,我們可以告訴您:ACI 的執行基礎是各種 SKU 的 Azure VM 組合,主要是 F 和 D 系列。 未來會有所變更,因為我們會持續開發及最佳化這項服務。

我想要在 ACI 上部署數千個核心,我可以增加配額嗎?

可以 (有時候)。 請參閱配額和限制一文,了解目前的配額,以及要求增加配額的限制。

我的部署可以超過 4 個核心和 16 GB RAM 嗎?

還不會。 這是目前容器群組的上限。 如有特定需求或要求,請連絡 Azure 支援。

特定區域何時可使用 ACI?

目前的區域可用性發佈在這裡。 如有特定區域的需求,請連絡 Azure 支援。

功能和案例

如何調整容器群組規模?

目前無法調整容器或容器群組。 如果需要執行更多的執行個體,請使用我們的 API 來自動化並建立更多要求,以建立服務的容器群組。

在自訂 VNet 中執行的執行個體可使用哪些功能?

您可以在所選的 Azure 虛擬網路中部署容器群組,並將私人 IP 委派給容器群組,以在 Azure 資源之間路由傳送 VNet 內的流量。 如需 Azure Container Instances 的網路案例和限制,請參閱虛擬網路案例和資源

ACI 服務是否會保留連接埠來提供服務功能?

是,ACI 服務會保留下列連接埠來提供服務功能:22、1025-1027、3389-3399、9999、19000、19390、19080、19100、20000-30000、49152-65534。 請避免在容器群組定義中使用這些連接埠。

是否可有內容群組 IP 位址的相依性?

建立或刪除容器群組 IP 位址後,可能會變更。 我們建議應用程式程式碼沒有容器群組 IP 位址的相依性。 如果您想要維護靜態 IP 位址,也建議使用 NAT 閘道應用程式閘道

定價

什麼時候開始執行計量?

容器群組持續時間會從開始提取第一個容器映像時 (用於新部署) 或容器群組重新啟動時 (若已部署) 開始計算,直到容器群組停止為止。 如需詳細資料,請參閱容器執行個體定價。

容器停止後,是否會停止計費?

當整個容器群組停止後,即停止執行計量。 只要容器群組中的容器還在執行,我們就會保留資源,以備您想要再次啟動容器。

Azure Container Instances 上的機密容器

什麼是機密運算,如何套用至 Azure Container Instances?

機密運算是由機密運算聯盟 (CCC) 所定義的業界術語,它是一個專門定義和加速機密運算採用的基金會。 CCC 對於機密運算的定義是,藉由在硬體型的受信任執行環境 (TEE) 中執行運算以保護使用中的資料。 ACI 機密容器導入硬體結構的保護、程式碼完整性和受信任執行環境 (TEE) 的驗證。 機密容器將套用最新的機密運算硬體,可讓客戶在未修改的情況下部署現有的應用程式,同時利用硬體架構的資料保護。 程式碼完整性和 TEE 的驗證是透過機密運算強制執行原則的證明得以實現,並在部署時附加至容器群組。 如果容器群組的屬性與機密運算強制執行原則的屬性不同,則環境將無法啟動以確保 TEE 不會遭到入侵。

Azure Container Instances 上的機密容器的時機為何?

機密容器可用於各種不同的彈性工作負載,但特別適用於需要強式資料保護保證的工作負載。 這些工作負載的一些範例包含機器學習工作負載以使用包含個人資料的資料集或視為智慧財產權的演算法。 醫療保健客戶可使用這些工作負載來分析病患資料和進行研究。 金融服務客戶可使用這些工作負載來進行信用分析風險運算和資產組合平衡。

如何產生機密運算強制執行原則?

機密運算強制執行原則可使用 Azure CLI 的 confcom 延伸模組產生。 如需詳細資訊,請參閱 confcom 延伸模組

Azure Container Instances 上的機密容器不支援的功能為何?

機密容器不支援以 GPU 為基礎的 ACI 容器部署、Windows 容器、可用性區域和專用執行個體。

提供 Azure Container Instances 上的機密容器的區域為何?

在公開預覽期間,Azure Container Instances 上的機密容器僅適用於所選區域。 目前的區域可用性發佈在這裡

Azure Container Instances 上的機密容器是否需要支付額外的成本?

相較於標準 SKU 容器群組,Azure Container Instances 上的機密容器需要支付額外的成本。 如需詳細資訊,請參閱定價頁面

Azure Container Instances 上的現成容器 (預覽)

什麼是 ACI 現成容器?

ACI 現成容器是新功能,可讓客戶在未使用的 Azure 容量上執行可中斷的容器化工作負載,相較於一般優先順序的 ACI 容器,價格有 70% 的折扣。

使用 ACI 現成容器的時機為何?

當 Azure 容量不足且客戶是按照每秒記憶體/核心使用量計費時,可能會先佔用 ACI 現成容器。 使用 ACI 現成容器時,您現在可執行可容許 Azure 中斷的容器化工作負載 (例如批次處理、蒙地卡羅模擬、開發/測試工作負載和可平行化的離線工作負載),並成本僅為傳統 ACI 價格的一小部分。 此供應項目的目標對象為想要執行可中斷工作負載且沒有嚴格可用性需求的客戶。

ACI 現成容器不支援的功能為何?

現成容器不支援以 GPU 為基礎的 ACI 容器部署、可用性區域、公用 IP 的 ACI 部署支援和私人 IP 自訂虛擬網路後方的 ACI 部署。

ACI 現成容器的預設配額為何?

所有客戶都會取得 10 個 vCPU 核心和 10 個容器群組的預設配額。

如何提供 ACI 現成容器配額要求?

客戶可提出支援要求以增加現成容器的容量,方法是在要求填入要求詳細資料時,選取問題類型為 [服務和訂用帳戶限制 (配額)] 並選取新配額類型為 ACI 現成容器供應項目新增的 [StandardSpotCores]。

哪些區域可以使用 ACI 現成容器?

在公開預覽期間,Azure Container Instances(ACI) 現成容器僅適用於所選區域。 如需詳細資訊,請參閱資源和區域可用性

ACI 現成容器是否需要支付額外費用?

ACI 現成容器以折扣價格提供,並且相較於一般優先順序的 ACI 容器,提供高達 70% 的折扣。 每個區域每月的折扣有所不同。 如需詳細資訊,請參閱價格網頁