繁体   English   中英

Kubernetes 部署 - 指定图像拉取的多个选项作为后备?

[英]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 这样的东西,但它似乎是一个简单问题的笨拙解决方案。

如果您想要更多冗余的东西,我会说HarbourQuayTrow是通往 go 的方式。

Kubernetes 具有设置ImagePullPolicy能力,例如,如果您想在所有 K8s 节点上预拉所有关键图像,您可以将其设置为Never 您可以将其与一些自动化联系起来,以便在集群和节点之间预先拉取您的图像。

实际上,我已经打开了一个 K8s功能请求,看看这个想法是否会受到关注。

更新:

如果您使用的是containerdcri-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...."
...

cri-o.conf示例

...
# 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM