gpt4 book ai didi

docker - Microk8s 无法从私有(private)注册表中提取

转载 作者:行者123 更新时间:2023-12-02 12:03:57 24 4
gpt4 key购买 nike

我在 EC2 实例上运行 Microk8s。我无法从我们的私有(private)注册表中提取容器。当试图运行这样一个容器时 kubectl describe pod显示:

Failed to pull image "docker.xxx.com/import:v1": rpc error: code = Unknown desc = failed to resolve image "docker.xxx.com/import:v1": no available registry endpoint: failed to fetch anonymous token: unexpected status: 401 Unauthorized



我可以 docker logindocker pull从那台机器。我用来部署容器的 yaml 在另一个(非容器化)集群上运行良好。它指的是一个 pull secret,它与另一个集群中使用的相同,并且在那里工作正常。

我在 Microk8s 的 containerd-template.toml 中添加了以下条目:
   [plugins.cri.registry]
[plugins.cri.registry.mirrors]
...
[plugins.cri.registry.mirrors."docker.xxx.com"]
endpoint = ["https://docker.xxx.com"]

我不知道我可能还缺少什么。

最佳答案

如果您收到错误 401身份验证可能有问题。例如。您缺少私有(private)注册表的凭据。

为了确保 microk8s 使用正确的凭据,除了 mirrors您必须在配置中指定的部分 auths您将放置 docker 注册表凭据的部分。

[plugins.cri.registry.auths]
[plugins.cri.registry.auths."https://gcr.io"]
username = ""
password = ""
auth = ""
identitytoken = ""

该部分中的属性与您可以在 .docker/config.json 中找到的配置兼容。 .

请注意,这是与 mirrors 处于同一级别的部分。它不应该是 mirrors 的一部分条目,但添加为新部分。
另一个重要部分是确保 auth主机匹配您的注册表主机(例如 https 与 http)。

更多详情查看引用: https://github.com/containerd/cri/blob/master/docs/registry.md

p.s.请记住 containerd支持 microk8s[1] v1.14如果您使用旧版本,您应该检查其他选项,例如官方 kubernates 文档[2]

[1] https://microk8s.io/docs/working

[2] https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/

关于docker - Microk8s 无法从私有(private)注册表中提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56642311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com