Google在其Kubernetes服務GKE中,添加映像檔串流新功能,官方提到,這是一個革命性的功能,能夠明顯縮短應用程式擴展的時間,讓企業有能力更快地回應突然增加的用戶需求,並且也能配置更少的備用容量來節省支出。

映像檔串流能夠將映像檔的拉取時間降到數秒鐘,即便是大型映像檔,也能忽略容器大小,使得用戶的應用程式,能夠在GKE串流容器資料的同時快速啟動。

Google解釋,傳統Kubernetes擴展應用程式的工作方式,必須要等到容器映像檔完全下載到節點上,才能開始啟動應用程式。因此當容器映像檔越大,啟動需要的時間就越長,儘管大多數應用程式,其實不需要等到容器中每位元組資料都到齊,就可以開始啟動,Google舉例,像是應用程式可能會花費大量時間連接到外部資料庫,就幾乎不需要用到來自映像檔的任何資料。

因此Google想讓應用程式在需要的時候,再將資料交付給應用程式,以節省額外下載資料的時間,因此開發出了映像檔串流技術,其運作的原理是使用網路掛載的方式,在containerd中掛載容器資料層。

一旦用戶的映像檔掛載完成,容器就能在數秒鐘內,從ImagePulling狀態轉換成為Running,這能有效平行化應用程式啟動和需要的容器資料傳輸,因此用戶也就能獲得更快的容器啟動和自動縮放速度。Google提到,映像檔串流的效能根據配置而有所不同,但一般而言,映像檔越大,使用映像檔串流所獲得的好處就越大。

除了平行資料傳輸之外,GKE映像檔串流還採用多層級快取系統,從節點上的記憶體和磁碟快取開始,向上到地區層級的Artifact Registry,官方提到,該快取是專為映像檔串流設計,使用與Cloud Spanner相同的技術。

不過,由於映像檔串流容器讀取的資料來自網路串流傳輸,與從磁碟讀取的速度相比還是稍慢,但是Google提到,這個影響會在容器啟動的時候被抵消,因為容器可以跳過整個映像檔拉取過程,而在應用程式開始執行之後,就能夠獲得相同的讀取效能。GKE還是會像過去一樣,平行下載完整的容器映像檔,只要下載完成,容器就能獲得相同的磁碟讀取效能。

用戶要使用GKE映像檔串流功能,就必須要使用Google的構件註冊表Artifact Registry,Container Registry或是外部的容器註冊表均不支援映像檔串流。無論是新的或是現有GKE叢集,都可以使用這個新功能,Google提醒用戶,映像檔串流會在節點上預留部分記憶體供快取使用,這樣會減少節點上可用於工作負載的記憶體。

熱門新聞

Advertisement