微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 microk8s 连接到 Azure 容器注册表

如何解决从 microk8s 连接到 Azure 容器注册表

我正在尝试从我的 azure 容器注册表中提取图像

 sudo microk8s ctr --debug images pull redacted.azurecr.io/acs/service:2.24.2

但我不断收到此错误

ctr: Failed to resolve reference "redacted.azurecr.io/acs/service:2.24.2": Failed to authorize: Failed to fetch anonymous token: unexpected status: 401 Unauthorized

这是我的 containerd-template.toml 配置:

version = 2

[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
  [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
    endpoint = ["https://registry-1.docker.io",]
  [plugins."io.containerd.grpc.v1.cri".registry.mirrors."localhost:32000"]
    endpoint = ["http://localhost:32000"]
  [plugins."io.containerd.grpc.v1.cri".registry.mirrors."redacted.azurecr.io"]
    endpoint = ["https://redacted.azurecr.io"]
[plugins."io.containerd.grpc.v1.cri".registry.configs]
  [plugins."io.containerd.grpc.v1.cri".registry.configs."redacted.azurecr.io".auth]
    username = "redacted"
    password = "redacted"

通过将用户名:密码添加到终端命令,我可以下载图像,因此我确定用户名和密码是正确的。看起来配置文件中的配置没有被拾取(我确实在编辑配置文件后停止了 microk8s 和 microk8s 启动)

sudo microk8s ctr --debug images pull redacted.azurecr.io/acs/service:2.24.2 -u redacted:redacted

解决方法

请确保在更改 containerd-template.toml 后重新启动了 microk8s。

MicroK8s v1.14 及更高版本使用 containerd。 As described here,用户应该了解安全注册表和访问它所需的凭据。如上所示,配置 containerd 涉及编辑 /var/snap/microk8s/current/args/containerd-template.toml 并通过 microk8s 停止、microk8s 启动循环重新加载新配置。

[Reference]

您可以查看以下类似问题:
https://github.com/containerd/cri/issues/1482
https://github.com/ubuntu/microk8s/issues/990
https://github.com/containerd/containerd/issues/4920

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。