簡體   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