kubernetes - 为什么我在尝试从 Quay.io 镜像 OKD 安装映像时收到此“未经授权”错误?
问题描述
我一直致力于在气隙环境中安装 OKD。第一个主要步骤是镜像 OKD 映像,以便可以将它们移动到新环境并在本地拉取。我一直在关注OpenShift 文档和本文的组合,以及用于设置我的证书的资源。我一直在取得缓慢但始终如一的进步。
但是,我现在在尝试使用实际镜像文件时遇到问题
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
我有一个 quay 帐户,但我不确定即使在我的研究之后是否需要它,如果是,我将在哪里或如何登录它。我曾尝试oc login
在发布结构中使用后跟各种地址来执行此操作,但如果这是解决方案,我可能使用了错误的参数,因为我无法找到有关执行此操作的任何说明。
我也尝试过使用sudo
. 我怀疑这是一个问题,但我还是尝试了。
我想问题可能出在我的证书上,但我不确定如何确定是否是这种情况。
任何指导或建议将不胜感激。
解决方案
在我发布此答案时,已确定 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
推荐阅读
- reactjs - 使用 pm2 在服务器上运行 React 构建
- java - Seek Bar Steps 价值达到十亿
- azure-devops - VSTS - 如何将选项列表(字符串)添加到错误的状态、原因、区域和迭代旁边的区域中
- java - Java FXML:将字符串变量放入 TextArea
- c# - Linq to Entities 与 Linq to Objects 性能问题
- python-3.x - 如何从cmd中提取python输出?
- c - 为什么我的数组被转置了?
- crystal-reports - “更改开”中有两个值的条形图,跳过值为 0 的条形图
- gatsby - gatsby-image:childImageSharp 与 imageSharp 之间的区别
- css - IE11 中的模糊效果以创建磨砂玻璃