我正在使用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注册表下载图像的最佳方法是什么?据我了解,将拉动秘密复制到我的项目中并不是解决问题的方法。
谢谢
答案 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
中的机密复制到您的名称空间。希望对您有帮助。