本项目用于将Docker Hub,Google Container Registry和Quay中常用的公共container image自动同步至AWS**区的ECR内,使AWS用户能更方便快捷的获取这些常见的容器镜像。
所有同步至ECR的镜像都放在048912060910.dkr.ecr.cn-northwest-1.amazonaws.com.cn这一container registry内,ECR镜像路径规则如下
- Docker Hub (目前只支持docker official images)
- 原始镜像路径: [library/]repo:tag
- ECR镜像路径: 048912060910.dkr.ecr.cn-northwest-1.amazonaws.com.cn/dockerhub/[library/]repo:tag
- GCR
- 原始镜像路径: gcr.io/namespace/repo:tag
- ECR镜像路径: 048912060910.dkr.ecr.cn-northwest-1.amazonaws.com.cn/gcr/namespace/repo:tag
- 原始镜像路径: k8s.gcr.io/repo:tag
- ECR镜像路径: 048912060910.dkr.ecr.cn-northwest-1.amazonaws.com.cn/gcr/google_containers/repo:tag
- Quay
- 原始镜像路径: quay.io/namespace/repo:tag
- ECR镜像路径: 048912060910.dkr.ecr.cn-northwest-1.amazonaws.com.cn/quay/namespace/repo:tag
海外镜像复制到ECR后的路径转换示例如下:
海外镜像 | ECR镜像 |
---|---|
ubuntu:1.17.9 | 048912060910.dkr.ecr.cn-northwest-1.amazonaws.com.cn/dockerhub/ubuntu:1.17.9 |
gcr.io/heptio-images/velero:v1.1.0 | 048912060910.dkr.ecr.cn-northwest-1.amazonaws.com.cn/gcr/heptio-images/velero:v1.1.0 |
k8s.gcr.io/cluster-autoscaler:v1.2.2 | 048912060910.dkr.ecr.cn-northwest-1.amazonaws.com.cn/gcr/google_containers/cluster-autoscaler:v1.2.2 |
quay.io/calico/node:v3.7.4 | 048912060910.dkr.ecr.cn-northwest-1.amazonaws.com.cn/quay/calico/node:v3.7.4 |
- 如果您是开发测试或新建项目,可以直接修改引用到原始容器镜像的地方,如修改k8s deployment yaml文件中的image指向ECR中相应image的路径。
- 如果项目中用到了Helm Charts,并且chart template支持自定义Pod image,可以设置chart参数指向ECR中相应image的路径。
- 如果您的项目直接使用kubectl部署,且kubectl版本在v1.14或以上,可以使用kustomize讲原始image路径指向ECR中相应image的路径。
- 如果您使用了自动部署工具且不方便修改image路径,或者想自动替换所有Pod中image到相应ECR路径,可以使用Kubernetes的Mutating admission webhook,本项目中提供了该webhook的参考实现,详细信息请参考改webhook文档(TBD)
已有镜像列表放在required-images-mirrored.txt。
如果您在集群创建过程中需要其他镜像, 请您编辑 required-images.txt ,这将会在您的GitHub账户中 fork 一个新的分支,之后您可以提交PR(pull request)。 Merge您的PR会触发CodeBuild
去拉取 required-images.txt
中定义的镜像回ECR库。 几分钟后,您可以看到图标从in progress
变为passing