通过skopeo同步镜像

对于离线部署,kubespray 支持的并不是很友好。比如获取部署需要的镜像列表,目前的方案是需要先部署一个集群,然后通过 kubectl get 一些资源来获取 pod 使用到的镜像。个人觉得这个方式可以修改一下,比如通过 kubespray 源码来生成一个镜像列表。下面只是简单生成一个镜像列表,内容如下 images.list

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15

docker.io/nginx:1.19.0
docker.io/calico/cni:v3.17.3
docker.io/calico/node:v3.17.3
docker.io/calico/kube-controllers:v3.17.3
quay.io/coreos/flannel:v0.13.0
quay.io/coreos/flannel:v0.13.0-amd64
k8s.gcr.io/pause:3.2
k8s.gcr.io/coredns:1.7.0
k8s.gcr.io/kube-apiserver:v1.20.6
k8s.gcr.io/kube-controller-manager:v1.20.6
k8s.gcr.io/kube-proxy:v1.20.6
k8s.gcr.io/kube-scheduler:v1.20.6
k8s.gcr.io/dns/k8s-dns-node-cache:1.17.1
k8s.gcr.io/cpa/cluster-proportional-autoscaler-amd64:1.8.3
1
2
3
4
5
6
7
for image in $(cat images.list); do  skopeo copy docker://${image} docker://10.7.20.12:5000/${image#*/} --insecure-policy --dest-tls-verify=false; done


for image in $(cat images.txt); do  skopeo copy docker://${image} docker://10.7.20.12:5000/${image#*/} --insecure-policy --dest-tls-verify=false; done


for image in $(cat images-list.txt); do  skopeo copy docker://${image} docker://10.7.20.12:5000/${image#*/} --insecure-policy --dest-tls-verify=false; done

其中–insecure-policy –dest-tls-verify=false 是未非 https 的 docker 仓库的选项。

–update 20231010

1
2
3
4
5
6
7
root@debian:/root/skopeo git:(master*) # git clone https://github.com/containers/skopeo && cd skopeo

# 本地开发机器已经安装并配置好了 golang 编译环境
root@debian:/root/skopeo git:(master*) # CGO_ENABLE=0 GO111MODULE=on go build -mod=vendor "-buildmode=pie" -ldflags '-extldflags "-static"' -gcflags "" -tags "exclude_graphdriver_devicemapper exclude_graphdriver_btrfs containers_image_openpgp" -o bin/skopeo ./cmd/skopeo

root@debian:/root/skopeo git:(master*) # ldd bin/skopeo
not a dynamic executable

参考文档:

https://www.51cto.com/article/710492.html

kubectl get pods -n apps-gitlab -o jsonpath="{.items[].spec.containers[].image}" | tr -s ‘[[:space:]]’ ‘\n’ | sort

skopeo copy docker://docker.io/library/docker:20.10.12 docker-archive:docker.tar

Licensed under CC BY-NC-SA 4.0
最后更新于 Jan 06, 2025 05:52 UTC
comments powered by Disqus
Built with Hugo
主题 StackJimmy 设计
Caret Up