[英]Istio Multicluster between Microk8s (on GCE instance) and GKE custer
[英]Connect to Azure container registry from microk8s
我正在尝试从我的 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。 如此处所述,用户应了解安全注册表以及访问它所需的凭据。 如上所示,配置 containerd 涉及编辑 /var/snap/microk8s/current/args/containerd-template.toml 并通过 microk8s 停止、microk8s 启动循环重新加载新配置。
[参考]
您可以查看以下类似问题:
https://github.com/containerd/cri/issues/1482
https://github.com/ubuntu/microk8s/issues/990
https://github.com/containerd/containerd/issues/4920
最后,我通过添加 docker 密码并修补服务帐户以默认使用 pull 密码来解决它
microk8s kubectl create secret docker-registry acr-token --docker-server=**redacted** --docker-username="**redacted**" --docker-password="**redacted**" --namespace **redacted**
microk8s kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "acr-token"}]}' --namespace **redacted**
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.