权限被拒绝从Red Hat Registry中提取图像

时间:2019-09-30 12:32:11

标签: kubernetes openshift

我正在使用Openshift 4.1集群中的操作员来安装应用程序,该操作员需要访问权限才能从Red Hat注册表中提取图像。当我从项目中运行安装时,操作员尝试从Red Hat注册表中提取映像,但我获得了拒绝的权限。

>oc project 3scale
>oc import-image amp-apicast --from=registry.redhat.io/3scale-amp26/apicast-gateway --confirm

Unable to sync image for tag amp-apicast:2.6. Internal error occurred: Get https://registry.redhat.io/v2/3scale-amp26/apicast-gateway/manifests/latest: unauthorized: Please login to the Red Hat Registry using your Customer Portal credentials. Further instructions can be found here: https://access.redhat.com/articles/3399531

但是,当我从集群中的Openshift项目中手动提取图像时,我从openshift-config项目中获得的提取秘密就会被提取并成功下载图像。

>oc project openshift
>oc import-image amp-apicast --from=registry.redhat.io/3scale-amp26/apicast-gateway --confirm

使我的项目能够从Red Hat注册表下载图像的最佳方法是什么?据我了解,将拉动秘密复制到我的项目中并不是解决问题的方法。

谢谢

1 个答案:

答案 0 :(得分:0)

  

使我的项目能够从Red Hat注册表中下载图像的最佳方法是什么?据我了解,将拉动秘密复制到我的项目中并不是解决问题的方法。

如果您可以在这里访问:https://access.redhat.com/articles/3399531,则最好通过Creating Registry Service Accounts步骤来创建注册表凭据机密。由于openshift类型的注册表凭据秘密,因此可以在kubernetes.io/dockerconfigjson中启用图像提取。

e.g.>
# oc get secret -n openshift
NAME                       TYPE                                  DATA      AGE
imagestreamsecret          kubernetes.io/dockerconfigjson        1         25d
...

如果相同类型的名称空间中存在该类型的机密,则图像拉凭证凭据将自动使用该类型的机密。

此处是Allowing Pods to Reference Images from Other Secured Registries 的更多信息,用于手动配置步骤。

$ oc create secret generic <pull_secret_name> \
    --from-file=.dockerconfigjson=<path/to/.docker/config.json> \
    --type=kubernetes.io/dockerconfigjson

在您的命名空间中创建凭据机密之后,尝试执行oc import-image。为了进行测试,您还可以将openshift中的机密复制到您的名称空间。希望对您有帮助。