2016-02-26 75 views
2

我已经设置了OpenShift Origin 1.1.3群集。现在我从私人注册表中提取图片。这个注册表是'不安全的'。它具有自签名证书和凭证以进行身份​​验证。我可以执行docker login并在我的节点上手动提取图像。从OpenShift上的私人注册表创建图像流

问题是只有那个节点可以访问图像。所以,当我扩展我的pod时(基于该映像),所有副本都将在该特定节点上运行。其他节点不能拉出或使用图像。

所以我要为我的图像创建图像流:

oc import-image --insecure=true ec2-xxx:5000/image 

But:  message: you may not have access to the Docker image "ec2-xxx:5000/image" 
     reason: Unauthorized 

我读了关于建立一个秘密。我创建它:

oc secrets new-dockercfg mysecret --docker-server=ec2-xxx:5000 --docker-username=*** --docker-password=*** [email protected] 

我该如何将这个秘密添加到我的图像流?这是正确的做法吗?

回答

2

@cloudnoob他的回答对我帮助很大。 但主要问题是我以错误的方式创造了我的秘密。 我看到这个用记录级开始OpenShift主后5

Unable to find a secret to match https://ec2-xxx:5000/v2/test/image/manifests/83 

所以我不得不创建我以https秘密(这就是所谓的不安全使用自签名的证书,但它的使用HTTPS):

oc secrets new-dockercfg mysecret --docker-server=https://ec2-xxx:5000 --docker-username=*** --docker-password=*** [email protected] 

后这一步我不得不执行cloudnoob的步骤。将秘密添加到服务帐户。之后,进口是成功的。

0

Openshift Origin Doc 要使用一个秘密来拉动豆荚的图像,您必须将秘密添加到您的服务帐户。此示例中的服务帐户名称应该与pod将使用的服务帐户的名称匹配;默认情况下是默认的服务帐户:

$ OC秘密添加serviceaccount /默认的秘密/ - 用于=拉

要使用推拉构建映像一个秘密,这个秘密必须是一个吊舱内安装。您可以通过运行做到这一点:

$ OC秘密添加serviceaccount /建设者秘密/

+0

感谢您的回复。我尝试过,但我仍然有同样的问题。我创造的秘密的名字是重要的吗?我能够创造这个秘密。将其添加到服务帐户。但错误仍然存​​在(当我创建一个is) – lvthillo

+0

loglevel 5给了我这个:无法找到一个秘密来匹配https:// ec2-xxx:5000/v2/test/image/manifests/83(ec2-xxx:5000/v2/test/image/manifests/83) I0302 07:41:05.054381 37500 importer.go:430]无法访问存储库的标签“83” – lvthillo