Kubernetes gcr/quay 镜像同步和国内加速介绍
在学习
Kubernetes时,由于种种原因拉去国外镜像比较慢,该开源提供一种将Google Container Registry(gcr.io)指定仓库的容器官方镜像同步到 docker register 的方式,然后利用国内加速加速拉去镜像。
介绍
查询当前同步了哪些镜像:https://mirrors.kb.cx
利用 github actions + docker hub 将 gcr.io 的全部镜像同步到docker hub
架构
相关开源组件
- python3-cisctl:基于 skopeo + python3 开发的镜像同步工具,发布在 github action Marketplace,详见 skopeo 容器镜像工具
- https://mirrors.kb.cx:基于 vue 开发的 web 页面(搜索引擎 fuse.js),提供同步镜像的搜索功能
- go-gcrmirrors:基于 https://github.com/kbcx/gcr.io action yaml 生成供 https://mirrors.kb.cx 搜索的 json data,并使用 go-sync 同步到 aliyun CDN,同样发布在 github action Marketplace
- gcr/qury 同步示例
使用方式
将 gcr.io/x 替换为 docker hub 仓库的地址,如:
gcr.io/ml-pipeline->mlmirrors
利用 Github Action 同步 Google/Quay 等容器镜像到 hub.docker.com,实现曲线加速被墙 kubernetes 和[云原生]](https://www.xiexianbin.cn/cloud-native) 的相关镜像问题。
已同步进行在线查询地址:https://mirrors.kb.cx
Which Images Syncing
使用示例,将原来的 gcr.io/knative-releases/knative.dev/serving/cmd/activator 替换为 gcrioknative/serving-activator
gcr.io
| GCR | Docker | Status |
|---|---|---|
| gcr.io/distroless | gcriodistroless | |
| gcr.io/google-samples | gcriogooglesamples | |
| gcr.io/kaniko-project | gcriokaniko | |
| gcr.io/knative-releases/knative.dev/f/cmd/n | gcrioknative | |
| gcr.io/ml-pipeline | gcriomlpipeline | |
| gcr.io/tekton-releases/github.com/tektoncd/f/cmd/n | gcriotekton |
k8s.gcr.io
| GCR | Docker | Status |
|---|---|---|
| k8s.gcr.io/autoscaling | k8sgcrioautoscaling | |
| k8s.gcr.io/coredns | gcmirrors | |
| k8s.gcr.io/infra-tools | k8sgcrioinfratools | |
| k8s.gcr.io/ingress-nginx | k8sgcrioingressnginx | |
| k8s.gcr.io | gcmirrors | |
| gcr.io/metrics-server | gcriometricsserver | |
| k8s.gcr.io/metrics-server | k8sgcriometricsserver | |
| k8s.gcr.io/scheduler-plugins | k8sgcrioschedulerplugins |
quay.io
| Quay.io | Docker | Status |
|---|---|---|
| quay.io/argoproj | qargoproj | |
| quay.io/ceph | qceph | |
| quay.io/coreos | qcoreos | |
| quay.io/metallb | quayiometallb |
新增同步需求
发送邮件到 me@xiexnabin.cn 或在 https://github.com/x-mirrors/gcr.io/ 提交 issue
generates image lists
# gcloud container images list --project google-containers
gcloud container images list --repository us.gcr.io/k8s-artifacts-prod | awk -F "/" '{print "k8s.gcr.io/"$3}'
gcloud container images list --repository k8s.gcr.io/scheduler-plugins
gcloud container images list --repository k8s.gcr.io/ingress-nginx
gcloud container images list --repository k8s.gcr.io/coredns
gcloud container images list --project ml-pipeline
gcloud container images list --repository k8s.gcr.io/autoscaling
gcloud container images list --repository k8s.gcr.io/metrics-server
gcloud container images list --repository gcr.io/google-samples
gcloud container images list --repository gcr.io/distroless > gcr.io/distroless.txt
# knative.txt
for i in $(gcloud container images list --repository gcr.io/knative-releases/knative.dev | grep -v -i name); do gcloud container images list --repository $i/cmd; done > gcr.io/knative-releases.txt
# tekton.txt
for i in $(gcloud container images list --repository gcr.io/tekton-releases/github.com/tektoncd | grep -v -i name); do gcloud container images list --repository $i/cmd; done > tekton.txtquay image from :
ref
- old mirrors repo
- mirror workflow/Kubernetes gcr/quay 镜像同步和国内加速介绍
- build your own mirrors use python3-cisctl
- kubernetes v1.25 容器注册服务由 k8s.gcr.io 迁移到 registry.k8s.io
- Registry Explorer
- Verify image repositories and tags
Changelog
- 2022 年 2 月基于 skopeo 重构为 Github Actions:https://github.com/x-actions/python3-cisctl
- 2020 年 8 月因 travis 废弃:https://hub.docker.com/u/gcmirrors