Fargate 容器映像提取行為上的 Linux 容器適用於 Amazon ECS - Amazon Elastic Container Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Fargate 容器映像提取行為上的 Linux 容器適用於 Amazon ECS

每個 Fargate 任務都會在自己的單次使用、單一租用戶執行個體上執行。當您在 Fargate 上執行 Linux 容器時,不會快取執行個體上的容器映像或容器映像層。因此,對於任務中定義的每個容器映像,需要從每個 Fargate 任務的容器映像登錄檔中提取整個容器映像。提取影像所需的時間與啟動 Fargate 任務所需的時間直接相關。

請考量下列事項,以最佳化映像提取時間。

容器映像鄰近

若要縮短下載容器映像所需的時間,請將資料盡可能靠近運算。透過網際網路或跨 提取容器映像 AWS 區域 可能會影響下載時間。我們建議您將容器映像存放在將執行任務的相同區域中。如果您在 Amazon ECR 中存放容器映像,請使用 VPC 介面端點來進一步縮短映像提取時間。如需詳細資訊,請參閱《Amazon ECR 使用者指南》中的 Amazon ECR 介面 VPC 端點 (AWS PrivateLink)

容器映像大小縮減

容器映像的大小會直接影響下載時間。減少容器映像的大小或容器映像層的數量,可以縮短下載映像所需的時間。輕量型基礎映像 (例如最小的 Amazon Linux 2023 容器映像) 可以明顯小於以傳統作業系統基礎映像為基礎的映像。如需最小映像的詳細資訊,請參閱《Amazon Linux 2023 使用者指南》中的 AL2023 最小容器映像

替代壓縮演算法

容器映像層通常會在推送至容器映像登錄檔時壓縮。壓縮容器映像層可減少必須跨網路傳輸並存放在容器映像登錄檔中的資料量。容器映像層由容器執行時間下載至執行個體後,該層會解壓縮。使用的壓縮演算法和執行時間可用的 vCPUs 數量會影響解壓縮容器映像所需的時間。在 Fargate 上,您可以增加任務的大小,或利用效能更高的 zstd 壓縮演算法來減少解壓縮所需的時間。如需詳細資訊,請參閱 GitHub 上的 zstd。如需如何實作 Fargate 映像的資訊,請參閱使用 zstd 壓縮容器映像縮短 AWS Fargate 啟動時間

延遲載入容器映像

對於大型容器映像 (> 250mb),最好是延遲載入容器映像,而不是下載所有容器映像。在 Fargate 上,您可以使用 Seekable OCI (SOCI) 從容器映像登錄檔延遲載入容器映像。如需詳細資訊,請參閱 GitHub 上的社交快照,以及使用 Seekable OCI (SOCI) 延遲載入容器映像