使用鏡像緩衝(ImageCache)建立ECI執行個體可以加速拉取鏡像,減少ECI執行個體的啟動耗時。本文介紹鏡像緩衝的準系統、建立和使用方式、以及計費說明等。
功能簡介
在運行容器前,ECI需要先拉取您指定的容器鏡像,但因網路和容器鏡像大小等因素,鏡像拉取耗時往往成了ECI執行個體啟動的主要耗時。為加速執行個體的建立速度,ECI提供鏡像緩衝功能。您可以預先將需要使用的鏡像製作成緩衝快照,然後基於該快照來建立ECI執行個體,避免或者減少鏡像層的下載,從而提升執行個體的建立速度。
經實測,以使用Docker Hub的flink鏡像(約386.26 MB)建立ECI執行個體為例,正常建立過程中,鏡像準備階段需要耗時50s,使用鏡像緩衝後,鏡像準備階段無需耗時,可以極大節約執行個體啟動耗時。
具體提升速度由ECI執行個體中使用的鏡像個數、鏡像大小和鏡像倉庫網路因素等決定。
建立方式
鏡像緩衝的建立分為手動建立和自動建立兩種方式。
推薦使用自動建立的鏡像緩衝,可以節約使用成本。但對於首次建立就需要加速建立ECI執行個體的情境,需提前手動建立鏡像緩衝。
手動建立
您可以根據需要,自行設定名稱、大小等參數來建立鏡像緩衝。過程如下:
一個鏡像緩衝對應一份快照,手動建立的鏡像緩衝快照由您自行管理。
建立過程中,系統將建立一個ECI執行個體(2 vCPU、4 GiB記憶體),並掛載一塊ESSD PL1類型的雲端硬碟用於中轉建立鏡像緩衝對應的快照。建立完成後,該執行個體和雲端硬碟將被自動釋放。
極速鏡像緩衝功能用於縮短鏡像緩衝的建立時間長度。開啟該功能後,系統將啟用快照極速可用能力,臨時建立一份本地快照。本地快照建立完成即可使用鏡像緩衝功能。
說明本地快照建立完成後,系統將自動開始建立標準快照,在此期間,鏡像緩衝對應使用本地快照;待標準快照建立完成後,系統將自動刪除本地快照,在此之後,鏡像緩衝對應使用標準快照。
鏡像緩衝複用功能用於加快鏡像緩衝的製作速度。開啟該功能後,在建立鏡像緩衝的過程中,系統將自動匹配已有鏡像緩衝,如果新的鏡像緩衝與已有鏡像緩衝存在重複的鏡像層,新的鏡像緩衝將複用已有鏡像緩衝的鏡像層,從而加速鏡像緩衝的建立。
自動建立
建立ECI執行個體時,如果開啟了自動匹配鏡像緩衝,則在未匹配到鏡像緩衝的情況下,系統會在建立ECI執行個體的同時,自動建立一個鏡像緩衝。過程如下:
一個鏡像緩衝對應一份快照,自動建立的鏡像緩衝快照由阿里雲管理。
建立過程中,系統將建立一個ECI執行個體,並使用ECI執行個體內建的儲存空間來中轉建立鏡像緩衝對應的快照。建立完成後,該執行個體將被自動釋放。
說明每個ECI執行個體預設有30 GiB的臨時儲存空間可用於建立鏡像緩衝,如果您的鏡像大小超出了30 GiB,需要額外聲明臨時儲存空間。
對比
手動建立和自動建立的鏡像緩衝在大小、保留時間長度等方面均有差異,對比如下表所示。
對比項 | 手動建立 | 自動建立 |
名稱 | 可以自訂設定名稱。 | 名稱由系統自動產生,格式為 |
大小 | 預設為20 GiB,可以自訂設定大小。 | 預設為30 GiB。如果建立ECI執行個體時聲明了臨時儲存空間,則鏡像緩衝大小=30 GiB+臨時儲存空間大小。 |
保留時間長度 | 預設持續保留,可以自行設定保留時間長度(單位為天),到期後將被自動刪除。 | 預設由阿里雲管理保留時間長度。
|
鏡像緩衝複用 | 可以開啟鏡像緩衝複用來複用已有鏡像層,加快鏡像緩衝的製作速度。 | 不支援配置該功能。 |
極速鏡像緩衝 | 可以開啟極速鏡像緩衝來臨時建立一份本地快照,縮短鏡像緩衝的建立時間長度。 | 不支援配置該功能。 |
配額限制 | 可以調用ListUsage介面,或者在控制台的權益配額頁面查看配額。 如果配額無法滿足需求,請提交工單申請提升配額。 | 可以調用ListUsage介面查看配額。 如果配額無法滿足需求,請提交工單申請提升配額。 |
淘汰策略 | 預設情況下,當數量達到配額限制時,無法繼續手動建立鏡像緩衝。 支援通過OpenAPI(CreateImageCache或UpdateImageCache介面)將某個鏡像緩衝的淘汰策略(EliminationStrategy參數)配置為LRU,表示當數量達到配額限制時,系統可以自動刪除最不常用的LRU鏡像緩衝。 | 當數量達到配額限制時,系統會遵循LRU規則,自動刪除最不常用的鏡像緩衝。 |
使用成本 | 收取建立費用和使用費用。 | 僅收取使用費用,不收取建立費用。 |
使用方式
使用鏡像緩衝可以加快ECI執行個體的建立。建立ECI執行個體時,支援自動匹配和明確指定鏡像緩衝兩種方式:
使用方式 | 說明 |
自動匹配 | 自動匹配使用最優的鏡像緩衝。系統將按照以下順序進行匹配:
說明 如果沒有匹配到鏡像緩衝,系統將在建立ECI執行個體的同時自動建立鏡像緩衝。建立時將正常拉取鏡像,建議您將容器的鏡像拉取策略配置為按需拉取(IfNotPresent),以避免鏡像層重複下載,影響鏡像緩衝的使用效果。 |
明確指定 | 明確指定使用的鏡像緩衝。該鏡像緩衝必須為建立完成(Ready)狀態。 |
注意事項
單個鏡像緩衝最多包含20個鏡像。
建立鏡像緩衝需要拉取容器鏡像,因此建立時間長度由鏡像個數、鏡像大小、網路等多種因素決定。
手動建立鏡像緩衝時採用您指定的容器鏡像,自動建立鏡像緩衝時採用執行個體中所聲明的容器鏡像。
如果鏡像為私人鏡像(非阿里雲Container RegistryACR託管的鏡像),則需要提供私人鏡像倉庫的訪問憑證,包括地址、使用者名稱和密碼。
如果鏡像需要通過公網拉取(如Docker官方鏡像),則需要配置EIP或者NAT來訪問公網。更多資訊,請參見為ECI執行個體配置公網串連。
如果鏡像由於遠程倉庫逾時等原因導致拉取失敗,推薦您使用Container RegistryACR,將鏡像上傳至阿里雲倉庫。
對於手動建立的鏡像緩衝,建議在建立時設定保留時間長度,以免產生不必要的快照費用。對於自動建立的鏡像緩衝,由阿里雲管理對應的快照,您無需關注保留時間長度。
建立鏡像緩衝後,您可以通過其製作事件瞭解鏡像緩衝的製作過程,系統最多可以保留最新的50條製作事件。
計費說明
操作階段 | 手動建立的鏡像緩衝 | 自動建立的鏡像緩衝 |
建立鏡像緩衝 | 涉及以下計費項目:
| 不收費 |
使用鏡像緩衝 | 雲端硬碟費用 | 如果鏡像緩衝大於30 GiB,需增加臨時儲存空間並為其付費。 |
更多資訊,請參見鏡像緩衝計費。