kubernetes Minikube报告20张图像中有1张“需要身份验证”

yquaqz18  于 2023-06-05  发布在  Kubernetes
关注(0)|答案(1)|浏览(261)

好的,我有一个Minikube设置和部署Helm图表。这个图表主要来自一个我需要验证的仓库。
我为那个仓库做了一个kubectl create secret,大部分图像都拉得很好。只有一个(总是相同的)不会被拉出来,错误是Authentication is required
我如何才能找出为什么这个确切的图像失败,而来自同一个存储库的所有其他图像(相同的身份验证和所有内容)都工作正常?
顺便说一句:当我在Minikube容器中做docker logindocker pullinside 时,一切都很好...

yks3o0rb

yks3o0rb1#

由于错误显示的图片为requires authentication,因此该图片可能是私有图片。要解决此问题,您可以使用“kubectl create secret docker-registry”命令创建一个拉取密码,并将其添加到服务帐户的拉取密码列表中,或者使用“imagePullSecrets”列表将其直接添加到部署中。
使用Kubectl将您的密钥应用到集群:

Kubectl apply -f image-pull-secret.yaml

现在,您必须更新pod的清单,以指示Kubernetes在获取映像时使用创建的secret

apiVersion: v1
kind: Pod
Metadata:
    name: example
Spec:
    Containers:
       - name: example
        image: registry.example.com/example-image:latest
    imagePullSecrets:
       - name: image-pull-secret

将更新的pod manifest应用到集群。下一次拉入尝试现在应该成功。Kubernetes将能够对注册表进行身份验证并下载映像。
请注意,当您使用身份验证但指定了无效的用户名或密码时,也可能出现pull access denied错误的变体。在这种情况下,您应该检查pod的imagePullSecrets以确保它引用了正确的secret。
您可以参考Austin DaweyJames walker编写的文档,了解有关imagePullSecrets故障排除的更多信息。

相关问题