使用docker拉取上传
- 拉取amd64镜像,并重命名
tag
上传
1
2
3
| docker pull --platform amd64 k8s.gcr.io/kube-apiserver:v1.18.5
docker tag k8s.gcr.io/kube-apiserver:v1.18.5 reg.xxx.cn/kube-apiserver:v1.18.5-amd64
docker push reg.xxx.cn/kube-apiserver:v1.18.5-amd64
|
- 拉取arm64镜像
1
2
3
| docker pull --platform arm64 k8s.gcr.io/kube-apiserver:v1.18.5
docker tag k8s.gcr.io/kube-apiserver:v1.18.5 reg.xxx.cn/kube-apiserver:v1.18.5-arm64
docker push reg.xxx.cn/kube-apiserver:v1.18.5-arm64
|
- 创建清单
1
2
3
| docker manifest create reg.xxx.cn/kube-apiserver:v1.18.5 \
reg.xxx.cn/kube-apiserver:v1.18.5-arm64 \
reg.xxx.cn/kube-apiserver:v1.18.5-amd64
|
- 指定清单镜像中对应的架构
1
2
3
4
5
| docker manifest annotate reg.xxx.cn/kube-apiserver:v1.18.5 \
reg.xxx.cn/kube-apiserver:v1.18.5-arm64 --arch arm64
docker manifest annotate reg.xxx.cn/kube-apiserver:v1.18.5 \
reg.xxx.cn/kube-apiserver:v1.18.5-amd64 --arch amd64
|
- 上传镜像
1
| docker manifest push reg.xxx.cn/kube-apiserver:v1.18.5
|
使用这种方式特别繁琐,查找一番发现了一个工具skopeo
可以使用该工具简化上传
skopeo同步
项目地址:https://github.com/containers/skopeo
安装
该存储库可能包含比较新的内容,用于生产环境前请检查一下。
centos7:
1
2
| sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/CentOS_7/devel:kubic:libcontainers:stable.repo
sudo yum -y install skopeo
|
使用
1
| skopeo copy --all docker://k8s.gcr.io/kube-apiserver:v1.18.15 docker://reg.xxx.cn/kube-apiserver:1.18.15
|
- —all 同步清单中所有镜像,如果不加的话只会复制当前系统架构的镜像
这样就很简单了,而且同步速度也特别快