國內無法下載k8s鏡像的解決辦法

關於通過各種方法下載k8s相關鏡像的方法總結如下:

1.使用Azure中國鏡像站,目前限制只能“Azure China IP”可用,不再對外提供服務,此路不通。

2.直接使用mirrorgooglecontainers用戶同步到DockerHub的鏡像。

用戶mirrorgooglecontainers在DockerHub上同步了一些相應的google鏡像,可以直接使用,當然安全性無法保證。

# 下載mirrorgooglecontainers用戶同步的etcd鏡像
docker pull mirrorgooglecontainers/etcd-amd64:3.2.18

# 下載mirrorgooglecontainers用戶同步的kube-scheduler鏡像
docker pull mirrorgooglecontainers/kube-scheduler-s390x:v1.13.12

如果需要搜索更過的鏡像,比如我需要在DockerHub上搜索用戶mirrorgooglecontainers上傳的kube-apiserver鏡像,就輸入關鍵字mirrorgooglecontainers/kube-apiserver進行搜索。
通過這種方式下載的鏡像可能需要重新打tag才能使用,如下示例:

# 對下載的google鏡像重新打tag才能被正常使用
# 對鏡像mirrorgooglecontainers/kube-scheduler-s390x:v1.13.12打tag爲:k8s.gcr.io/kube-scheduler-s390x:v1.13.12
docker tag mirrorgooglecontainers/kube-scheduler-s390x:v1.13.12 k8s.gcr.io/kube-scheduler-s390x:v1.13.12

3.使用國內的鏡像倉庫,這種方式本質上跟方法2相同,只不過使用的是國內的鏡像倉庫。

# 從阿里雲Docker鏡像倉庫下載用戶google_containers同步的Google鏡像
# 阿里雲鏡像倉庫不支持搜索指定用戶的鏡像
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2

4.自己有一臺國外的服務器,先在服務器上下載k8s鏡像,再上傳到DockerHub,然後從DockerHub下載到本地(這一步可以通過設置Docker加速器解決),最後再通過重新打tag的方式將下載的鏡像命名爲對應的k8s原始鏡像名稱。

5.使用github構建,再使用阿里雲鏡像進行同步,最後從阿里雲鏡像倉庫下載,具體實現步驟參考利用阿里雲下載國外鏡像,國內順暢下載k8s.gcr.io的鏡像。當然,這一步可能需要使用魔法才能正常訪問到Github。而且對於個人版本有配額限制。

方法4和方法5都是自己去下載鏡像,所以鏡像的安全性能得到保證。

【參考】
failed to pull image k8s.gcr.io/kube-controller-manage
常用鏡像倉庫
K8S(kubernetes)鏡像源
使用重新打 tag 的方式,拉取 k8s.gcr.io 的鏡像
Docker 國內倉庫和鏡像

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章