![](/img/trans.png)
[英]Uploading personal docker image to Azure Container Registry - ErrImagePull
[英]Container image exists in registry but pod shows 'ErrImagePull'
我正在尝试将映像部署到IBM Cloud kubernetes实例中。
首先,我创建并推送了图片...
$ ic cr images
Listing images...
REPOSITORY NAMESPACE TAG DIGEST CREATED SIZE VULNERABILITY STATUS
registry.ng.bluemix.net/my_namespace/my_app my_namespace latest 123456789012 56 minutes ago 264 MB Vulnerable
OK
然后 ...
$ ic cs cluster-config my_cluster
$ export KUBECONFIG=/Users/me/.bluemix/plugins/container-service/clusters/my_cluster/kube-config-mil01-my_cluster.yml
$ kubectl run my_app --image=registry.ng.bluemix.net/my_namespace/my_app \
--port=8080 --generator=run/v1
replicationcontroller/my_app created
还有...
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
my_app-zvqwq 0/1 ErrImagePull 0 38s
虽然我所在的地区位于美国us-south
...
$ ic target
API endpoint: https://api.ng.bluemix.net
Region: us-south
User: me@email.com
...有趣的是,集群是在米兰创建的...
$ ic cs clusters
OK
Name ID State Created Workers Location Version
my_cluster xxxxxxxxxxxxxx normal 55 minutes ago 1 mil01 1.9.9_1520
更新感谢Bloodysock,这里是更多调试信息:
无法提取图像“ registry.ng.bluemix.net/my_namespace/my_app”:rpc错误:代码=未知desc =来自守护程序的错误响应:获取https://registry.ng.bluemix.net/v2/my_namespace/my_app/清单/最新 :未经授权:需要验证
但是,我在文档中看不到如何为IBM Container Registry设置身份验证。
消息unauthorized: authentication required
表明您的Pod没有用于美国南部(ng)注册中心的有效ImagePullSecret。 由于您的集群是在米兰创建的,因此在创建集群时IKS安装的秘密很可能是针对欧盟中央(eu-de)注册中心的,而不是美国南方的。
如果您有能力查看集群中的机密,则可以通过运行kubectl get secret bluemix-default-secret-regional -o yaml | grep .dockercfg: | awk '{print $2}' | base64 --decode
来检查自动安装的ImagePullSecret的内容。 kubectl get secret bluemix-default-secret-regional -o yaml | grep .dockercfg: | awk '{print $2}' | base64 --decode
kubectl get secret bluemix-default-secret-regional -o yaml | grep .dockercfg: | awk '{print $2}' | base64 --decode
。 该命令获取称为bluemix-default-secret-regional
,提取.dockercfg
字段,然后解码base64编码的密钥值。
您可以创建其他ImagePullSecrets并将其添加到默认的ServiceAccount中,以便群集自动使用它们。 有关说明,请参见此处 。
顺便说一句,如果您的ic cs
插件针对IKS的欧盟中部地区,则您的集群可能已在米兰创建。 您可以通过ic cs region
查看正在使用的IKS区域,并通过ic cs region-set
对其进行更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.