Kubernetes搭建過程中使用k8s.gcr.io、quay.io、docker.io的鏡像加速


前言

因為眾所周知的原因,在使用Kubernetes和docker的時候會出現一些鏡像無法拉取或者速度較慢的情況,錯誤信息類似以下:

[ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-proxy:v1.17.3: output: Error response from daemon ...
Failed to pull image "quay.io/coreos/flannel:v0.11.0-amd64": rpc error: code = Unknown desc = net/http: request canceled ...

之前一直使用的是Azure中國的鏡像,經讀者提醒,該鏡像站已經不能用了,中科大的也不是很穩定。

接下來記錄下使用阿里雲從海外構建鏡像的過程,雖然麻煩點,是能解決問題。

在阿里雲創建鏡像倉庫

首先進入阿里雲的容器鏡像服務

我這已經是開通過的界面了,沒開通過的什么樣已經忘了。

沒有創建命名空間的就創建一個,創建好了之后點擊“創建倉庫鏡像”。這里我們拿kube-apiserver做例子。

點擊下一步,選擇代碼源,作者這里用的是GitHub,已經綁定好了。記得勾選“海外機器構建”

准備github倉庫

這是我倉庫的地址:https://github.com/orccn/kube-dockerfile

倉庫的每個目錄下都有一個Dockerfile

├── README.md
├── coredns
│   └── Dockerfile
├── etcd
│   └── Dockerfile
├── kube-apiserver
│   └── Dockerfile
├── kube-controller-manager
│   └── Dockerfile
├── kube-proxy
│   └── Dockerfile
├── kube-scheduler
│   └── Dockerfile
└── pause
    └── Dockerfile

kube-apiserver/Dockerfile 的內容只有一句話。

FROM k8s.gcr.io/kube-apiserver:v1.17.5

添加規則、構建

倉庫准備ok后,創建完成,然后點擊進入剛創建的倉庫,點擊左側“構建”,然后點擊右側“添加規則”

規則添加完后,點擊“立即構建”,可以看到下方的構建日志

到此時為止,一個鏡像就已經生成了。然后就是到你需要的地方 docker pulldocker tag

$ docker pull registry.cn-hangzhou.aliyuncs.com/k6s/kube-apiserver:v1.17.5
v1.17.5: Pulling from k6s/kube-apiserver
597de8ba0c30: Pull complete
e13a88fa950c: Pull complete
Digest: sha256:5ddc5c77f52767f2f225a531a257259228d74b32d8aac9cfe087251f998c42f3
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/k6s/kube-apiserver:v1.17.5
registry.cn-hangzhou.aliyuncs.com/k6s/kube-apiserver:v1.17.5

$ docker tag registry.cn-hangzhou.aliyuncs.com/k6s/kube-apiserver:v1.17.5 k8s.gcr.io/kube-apiserver:v1.17.5

其他的鏡像如法炮制。

在Docker配置文件中配置加速器

$ vi /etc/docker/daemon.json  

//添加以下內容
{
     "registry-mirrors": ["https://hub-mirror.c.163.com"]
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM