尝试从Quay.io镜像OKD安装映像时,为什么会出现此“未经授权”错误?

时间:2020-11-03 18:21:22

标签: kubernetes containers openshift okd quay.io

我一直在空白环境中安装OKD。第一步是镜像OKD图像,以便可以将它们移到新环境中并在本地拉出。我一直在使用OpenShift documentationthis article以及this resource的组合来设置证书。我一直在缓慢但始终如一地进步。

但是,现在尝试使用来实际镜像文件时遇到了麻烦

oc adm -a ${LOCAL_SECRET_JSON} release mirror \ 
--from=quay.io/${PRODUCT_REPO}/${RELEASE_NAME}:${OCP_RELEASE}-${ARCHITECTURE} \ 
--to=${LOCAL_REGISTRY}/${LOCAL_REPOSITORY} \ 
--to-release-image=${LOCAL_REGISTRY}/${LOCAL_REPOSITORY}:${OCP_RELEASE}-${ARCHITECTURE}

我得到以下令人鼓舞的答复:

info: Mirroring 120 images to host.okd-registry.dns:5000/ocp4/openshift4 ...

接着是blobs:manifests:行,最后是该行

stats: shared=0 unique=7 size=105.3MiB ratio=1.00

然后我得到约50行说明

error: unable to retrieve source image quay.io/openshift-release-dev/ocp-v4.0-art-dev manifest
sha256:{some value}: unauthorized: access to the requested resource is not authorized

我有一个码头帐户,但是即使经过研究,我也不确定是否需要这样做,如果是,我将在哪里登录或如何登录。我尝试使用oc login,然后在发行结构中使用各种地址来执行此操作,但是,如果这是解决方案,则可能使用了错误的参数,因为我无法找到执行此操作的任何指令。

我还尝试了sudo的命令。我怀疑这是一个问题,但是我还是尝试了。

我想问题可能出在我的证书上,但是我不确定如何确定是否是这种情况。

任何指导或建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

在我发布此答案时,已经确定OKD文档不正确,并且正在指示读者从OCP图像存储库而不是从OKD存储库中拉出,显然这需要其他凭证。已记录了一个错误,希望文档会尽快更新。

正确的环境变量和用于镜像图像的完整命令如下:

LOCAL_REGISTRY=localhost:5000 (or your local domain name and port for the registry)
LOCAL_REPOSITORY=okd
LOCAL_SECRET_JSON=<full path to your pull secret>
OCP_RELEASE=4.5.0-0.okd-2020-10-15-235428
PRODUCT_REPO=openshift
RELEASE_NAME=okd
ARCHITECTURE=not-used-in-okd


oc adm -a ${LOCAL_SECRET_JSON} release mirror \
--from=quay.io/${PRODUCT_REPO}/${RELEASE_NAME}:${OCP_RELEASE} \
--to=${LOCAL_REGISTRY}/${LOCAL_REPOSITORY} \
--to-release-image=${LOCAL_REGISTRY}/${LOCAL_REPOSITORY}:${OCP_RELEASE} --dry-run