[英]Kubernetes deployment - specify multiple options for image pull as a fallback?
我们所有可能的 docker 注册中心(包括 Artifactory、AWS ECR 和 GitLab)都曾有一次或多次出现图像拉取问题。 甚至 DockerHub 偶尔也会出现问题。
在 Kubernetes 部署中是否有办法指定一个 pod 可以从多个不同的存储库获取图像,以便在一个存储库出现故障时可以回退?
如果不是,还有哪些其他解决方案可以保持稳定? 我见过像 Harbour 和 Trow 这样的东西,但它似乎是一个简单问题的笨拙解决方案。
在 Kubernetes 部署中是否有办法指定一个 pod 可以从多个不同的存储库获取图像,以便在一个存储库出现故障时可以回退?
不是真的,不是天生的。 如果您将 K8s 节点放置在诸如 TCP 负载均衡器之类的东西之后,您可能会欺骗 K8s 节点从不同的图像注册表中提取图像(一次一个),该负载平衡器将流量引导到多个注册表。 但这可能需要大量的测试和工作。
如果不是,还有哪些其他解决方案可以保持稳定? 我见过像 Harbour 和 Trow 这样的东西,但它似乎是一个简单问题的笨拙解决方案。
如果您想要更多冗余的东西,我会说Harbour 、 Quay和Trow是通往 go 的方式。
Kubernetes 具有设置ImagePullPolicy
的能力,例如,如果您想在所有 K8s 节点上预拉所有关键图像,您可以将其设置为Never
。 您可以将其与一些自动化联系起来,以便在集群和节点之间预先拉取您的图像。
实际上,我已经打开了一个 K8s功能请求,看看这个想法是否会受到关注。
更新:
如果您使用的是containerd或cri-o (甚至Docker有注册表镜像)。 您可以配置镜像注册表:
containerd.toml
示例
...
[plugins.cri.registry]
[plugins.cri.registry.mirrors]
[plugins.cri.registry.mirrors."docker.io"]
endpoint = ["https://registry-1.docker.io"]
[plugins.cri.registry.mirrors."local.insecure-registry.io"]
endpoint = ["http://localhost:32000"]
[plugins.cri.registry.mirrors."gcr.io"]
endpoint = ["https://gcr.io"]
[plugins.cri.registry.configs]
[plugins.cri.registry.configs.auths]
[plugins.cri.registry.configs.auths."https://gcr.io"]
auth = "xxxxx...."
...
...
# registries is used to specify a comma separated list of registries to be used
# when pulling an unqualified image (e.g. fedora:rawhide).
registries = [
“registry.example.xyz”,
“registry.fedoraproject.org”
]
...
✌️
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.