在 OpenShift 上的私有注册表中的图像上创建图像流
Create image-stream on image from private registry on OpenShift
我已经设置了一个 OpenShift Origin 1.1.3 集群。现在我正在从私有注册表中提取图像。此注册表是 'insecure'。它具有自签名证书和凭据以进行身份验证。我能够执行 docker login
并在我的节点上手动拉取图像。
问题是只有那个节点可以访问图像。因此,当我扩展我的 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=*** --docker-email=any@mail.com
我如何才能将这个秘密添加到我的图像流中?这是正确的方法吗?
Openshift Origin Doc
要使用密码为 pods 拉取图像,您必须将密码添加到您的服务帐户。此示例中的服务帐户名称应与 pod 将使用的服务帐户名称相匹配;默认是默认服务帐户:
$ oc secrets 添加 serviceaccount/default secrets/ --for=pull
要使用密钥来推送和拉取构建映像,密钥必须可安装在 pod 内。您可以通过 运行:
$ oc 秘密添加 serviceaccount/builder 秘密/
@cloudnoob 他的回答对我帮助很大。
但主要问题是我以错误的方式创建了我的秘密。
我在以日志级别 5 启动 OpenShift master 后看到了这个。
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=*** --docker-email=any@mail.com
在这一步之后,我必须执行 cloudnoob 的步骤。将机密添加到服务帐户。之后导入成功。
我已经设置了一个 OpenShift Origin 1.1.3 集群。现在我正在从私有注册表中提取图像。此注册表是 'insecure'。它具有自签名证书和凭据以进行身份验证。我能够执行 docker login
并在我的节点上手动拉取图像。
问题是只有那个节点可以访问图像。因此,当我扩展我的 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=*** --docker-email=any@mail.com
我如何才能将这个秘密添加到我的图像流中?这是正确的方法吗?
Openshift Origin Doc 要使用密码为 pods 拉取图像,您必须将密码添加到您的服务帐户。此示例中的服务帐户名称应与 pod 将使用的服务帐户名称相匹配;默认是默认服务帐户:
$ oc secrets 添加 serviceaccount/default secrets/ --for=pull
要使用密钥来推送和拉取构建映像,密钥必须可安装在 pod 内。您可以通过 运行:
$ oc 秘密添加 serviceaccount/builder 秘密/
@cloudnoob 他的回答对我帮助很大。 但主要问题是我以错误的方式创建了我的秘密。 我在以日志级别 5 启动 OpenShift master 后看到了这个。
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=*** --docker-email=any@mail.com
在这一步之后,我必须执行 cloudnoob 的步骤。将机密添加到服务帐户。之后导入成功。