Noo*_*kie 7 amazon-web-services docker kubernetes
我目前在尝试拉取通过 AWS ECR 托管的远程 docker 映像时遇到问题。我在运行部署时收到此错误
\n\n步骤1)
\n\n跑步
\n\naws ecr get-login-password --region cn-north-1 | docker login --username AWS --password-stdin xxxxxxxxxx.dkr.ecr.cn-north-1.amazonaws.com.cn\nRun Code Online (Sandbox Code Playgroud)\n\n第2步)
\n\n跑步kubectl create -f backend.yaml
从这里开始,会发生以下情况:
\n\n\xe2\x9e\x9c backend git:(kubernetes-fresh) \xe2\x9c\x97 kubectl get pods\nNAME READY STATUS RESTARTS AGE\nbackend-89d75f7df-qwqdq 0/1 Pending 0 2s\n\n\xe2\x9e\x9c backend git:(kubernetes-fresh) \xe2\x9c\x97 kubectl get pods\nNAME READY STATUS RESTARTS AGE\nbackend-89d75f7df-qwqdq 0/1 ContainerCreating 0 4s\n\n\xe2\x9e\x9c backend git:(kubernetes-fresh) \xe2\x9c\x97 kubectl get pods\nNAME READY STATUS RESTARTS AGE\nbackend-89d75f7df-qwqdq 0/1 ErrImagePull 0 6s\n\n\xe2\x9e\x9c backend git:(kubernetes-fresh) \xe2\x9c\x97 kubectl get pods\nNAME READY STATUS RESTARTS AGE\nbackend-89d75f7df-qwqdq 0/1 ImagePullBackOff 0 7s\nRun Code Online (Sandbox Code Playgroud)\n\n然后我运行kubectl describe pod backend它会输出:
Events:\n Type Reason Age From Message\n ---- ------ ---- ---- -------\n Normal Scheduled 117s default-scheduler Successfully assigned default/backend-89d75f7df-qwqdq to minikube\n Normal Pulling 32s (x4 over 114s) kubelet, minikube Pulling image "xxxxxxxxx.dkr.ecr.cn-north-1.amazonaws.com.cn/baopals:latest"\n Warning Failed 31s (x4 over 114s) kubelet, minikube Failed to pull image "xxxxxxxxx.dkr.ecr.cn-north-1.amazonaws.com.cn/baopals:latest": rpc error: code = Unknown desc = Error response from daemon: Get https://xxxxxxxxx.dkr.ecr.cn-north-1.amazonaws.com.cn/v2/baopals/manifests/latest: no basic auth credentials\n Warning Failed 31s (x4 over 114s) kubelet, minikube Error: ErrImagePull\n Warning Failed 19s (x6 over 113s) kubelet, minikube Error: ImagePullBackOff\n Normal BackOff 4s (x7 over 113s) kubelet, minikube Back-off pulling image "xxxxxxxxx.dkr.ecr.cn-north-1.amazonaws.com.cn/baopals:latest"\n\nRun Code Online (Sandbox Code Playgroud)\n\n主要错误是no basic auth credentials
现在我感到困惑的是,我可以将图像推送到我的 ECR,也可以推送到我的远程 EKS 集群,我觉得基本上我现在唯一不能做的就是从 ECR 上托管的私有存储库中提取图像。
\n\n是否有一些明显的我在这里丢失的东西阻止我从私人存储库中提取以便我可以在本地计算机上使用它们?
\n当集群中的节点启动容器时,它需要凭据来访问私有注册表以提取映像。即使您已在本地计算机中进行了身份验证,该节点也无法重复使用登录信息,因为根据设计,它可能会在另一台计算机上运行;因此您必须在 pod 模板中提供凭据。请按照本指南执行此操作:
https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
基本上,您将 ECR 凭证存储为秘密,并在 imagePullSecret容器规范中提供它。然后 Pod 将能够每次拉取镜像。
如果您正在使用本地计算机上运行的集群进行开发,则甚至不需要这样做。您可以让 Pod 重用您已下载到本地缓存的映像,方法是将imagePullPolicy容器下的规范设置为IfNotPresent,或使用特定标记而不是latest您的映像。
| 归档时间: |
|
| 查看次数: |
6925 次 |
| 最近记录: |