使用鏡像緩存(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個鏡像。
創建鏡像緩存需要拉取容器鏡像,因此創建時長由鏡像個數、鏡像大小、網絡等多種因素決定。
手動創建鏡像緩存時采用您指定的容器鏡像,自動創建鏡像緩存時采用實例中所聲明的容器鏡像。
如果鏡像為私有鏡像(非阿里云容器鏡像服務ACR托管的鏡像),則需要提供私有鏡像倉庫的訪問憑證,包括地址、用戶名和密碼。
如果鏡像需要通過公網拉取(如Docker官方鏡像),則需要配置EIP或者NAT來訪問公網。更多信息,請參見為ECI Pod配置公網連接。
如果鏡像由于遠程倉庫超時等原因導致拉取失敗,推薦您使用容器鏡像服務ACR,將鏡像上傳至阿里云倉庫。
對于手動創建的鏡像緩存,建議在創建時設置保留時長,以免產生不必要的快照費用。對于自動創建的鏡像緩存,由阿里云管理對應的快照,您無需關注保留時長。
創建鏡像緩存后,您可以通過其制作事件了解鏡像緩存的制作過程,系統最多可以保留最新的50條制作事件。
計費說明
操作階段 | 手動創建的鏡像緩存 | 自動創建的鏡像緩存 |
創建鏡像緩存 | 涉及以下計費項:
| 不收費 |
使用鏡像緩存 | 云盤費用 | 如果鏡像緩存大于30 GiB,需增加臨時存儲空間并為其付費。 |
更多信息,請參見鏡像緩存計費。