谷歌k8s.gcr.io鏡像快速傳入阿里云鏡像源的解決方案(需瀏覽器科學(xué)上網(wǎng))

來源:知乎
作者:Xin He
時間:2020-06-17
8499
為了規(guī)避風(fēng)險,本文給大家提供一個方便快捷的互傳鏡像方法,只需要瀏覽器支持翻墻即可,即不需要搭建docker本地服務(wù),也不需要裝有docker服務(wù)的機器能翻墻。


kubernetes體系里,很多鏡像都是出自于k8s.gcr.io鏡像源,但是很可惜,國內(nèi)無法直接訪問,所以沒有科學(xué)上網(wǎng)的話,只能先上網(wǎng)搜搜,看有沒有其他人提供本土的鏡像,例如阿里云鏡像源上就有很多(筆者之前也是這么用的,如果網(wǎng)上找不到,可以注冊一個阿里云賬號,直接在阿里云鏡像源里搜索,一定能搜到),這種方法雖然快捷,但是有很多隱患,例如鏡像內(nèi)容是否真的跟鏡像標(biāo)記的tag版本一致?是否可用?話說,這個問題還是好的,能不能鏡像中包含一些非法的內(nèi)容,一些惡意程序?如果有,這就事大了。當(dāng)然,我們可以通過鏡像的sha256信息,來驗證是否這個鏡像和谷歌的原聲鏡像一致,但是很可惜,我查到的阿里云鏡像,很少有跟谷歌鏡像一致的,可能他們不是直接把谷歌的鏡像傳過去,而是自己通過github編譯生成上傳的(寫本文時,又發(fā)現(xiàn)一個原因,很可能是阿里的容器鏡像服務(wù)源不是docker v2的,或者docker版本不是v1.10+,造成谷歌和阿里庫中鏡像manifest的結(jié)構(gòu)不一致,所以有時候,對于某些帶特殊配置的鏡像,傳到谷歌和傳到阿里上面,digest并不一樣,關(guān)于digest的生成原理,詳見該文Docker的Pull Digest和Image ID(https://www.jianshu.com/p/716096892100),另外,通過下面pause:3.1鏡像的例子,也可以看出來,digest會不一樣,但是本人上傳cadvisor和metrics-server-amd64等其他鏡像的時候,就不存在該問題,所以具體原因也跟鏡像配置有關(guān),下文細(xì)表)。

為了規(guī)避上面的風(fēng)險,本文給大家提供一個方便快捷的互傳鏡像方法,只需要瀏覽器支持翻墻即可,即不需要搭建docker本地服務(wù),也不需要裝有docker服務(wù)的機器能翻墻。不贅述,直接說步驟:

·首先瀏覽器要翻墻,登陸谷歌云,登陸控制臺

·點擊激活cloud shell,如下圖

v2-10ada621498ccb396fbea02e3702a070_720w.jpg

cloud shell的使用,可以看下官方說明,其實就是一個免費的shell控制臺,一個隨用隨取的小型服務(wù)器

·創(chuàng)建成功,如下圖

它默認(rèn)是支持docker的,可以看到版本是18.03.1-ce,(寫這個文章的時候,發(fā)現(xiàn)阿里云也有cloud shell,只可惜沒有docker支持,也不能翻墻)

v2-c0dc4dcbab2914bb75e828bad89aa4f9_720w.jpg

v2-95e6c86d04cb1a970afedd1181f3f3a8_720w.jpg

·k8s.gcr.io/pause:3.1為例,先docker pull k8s.gcr.io/pause:3.1(cloud shell支持ctrl+c/v復(fù)制粘貼,你完全可以復(fù)制這條命令進去,很強大的shell工具)

docker pull k8s.gcr.io/pause:3.1

v2-443b8dc8665f8df247735fe2689423d0_720w.jpg

可以看到sha256是f78411e19d84a252e53bff71a4407a5686c46983a2c2eeed83929b888179acea

·在shell里登陸自己的阿里云鏡像源鏡像庫,按照阿里云的操作指南登陸

docker login --username=XXXX(你的阿里云賬號) registry.cn-hangzhou.aliyuncs.com

會提示輸入password,輸入成功后,顯示Login Succeeded

·這個時候可以根據(jù)自己想用的命名空間名字,進行docker tag,我的命名空間叫hexin-public,所以我的命令如下

docker tag k8s.gcr.io/pause:3.1 registry.cn-hangzhou.aliyuncs.com/hexin_public/pause:3.1

·docker push即可

docker push registry.cn-hangzhou.aliyuncs.com/hexin_public/pause:3.1

v2-8045477a89e1656ef875a638c5b7e262_720w.jpg

可以看到,阿里云鏡像返回的digest是sha256:fcaff905397ba63fd376d0c3019f1f1cb6e7506131389edbcb3d22719f1ae54d,這就是我上文提到那個問題,統(tǒng)一查看,會發(fā)現(xiàn),其實他們確實是同一個鏡像。

1592365197(1).png

現(xiàn)在來看,唯一的原因,只可能是我上面說的情況,當(dāng)然,digest也不是對所有的鏡像都有便哈,例如谷歌的cadivsor和metrics-server-amd64,就不會

1592365306(1).png

不過這個不是本文重點,重點是如何快速把國外需要翻墻的鏡像,轉(zhuǎn)移到國內(nèi),關(guān)于國內(nèi)阿里云鏡像源的使用,我這里就不多說了,大家可以登陸阿里云使用。希望本文對大家有幫助!

立即登錄,閱讀全文
原文鏈接:點擊前往 >
版權(quán)說明:本文內(nèi)容來自于知乎,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多