在OpenShift的私人registry中创build图像stream

我build立了一个OpenShift Origin 1.1.3集群。 现在我从私人registry中拉出图像。 这个registry是'不安全的'。 它具有自签名证书和凭证以进行身份​​validation。 我能够执行docker login并在我的节点上手动拉取图像。

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

所以我想为我的图像创build一个图像stream:

 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=*** --docker-email=any@mail.com 

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

@cloudnoob他的回答帮了我很多。 但主要问题是我用错误的方式创造了我的秘密。 在使用loglevel 5启动OpenShift master后,我看到了这一点。

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

所以我不得不用https创build我的秘密(它被称为不安全的自签名证书,但它使用https):

 oc secrets new-dockercfg mysecret --docker-server=https://ec2-xxx:5000 --docker-username=*** --docker-password=*** --docker-email=any@mail.com 

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

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

$ oc secrets add serviceaccount / default secrets / –for = pull

为了使用秘密来推拉构build图像,秘密必须可安装在吊舱内。 你可以通过运行:

$ oc secrets add serviceaccount / builder secrets /