3.2.4. 镜像 OpenShift Container Platform 镜像存储库
OpenShift Update Service 需要本地可访问的 registry,其中包含更新发行有效负载。
为了避免 OpenShift Update Service 应用程序过量使用内存,建议将发行镜像镜像到单独的存储库,如下所述。
先决条件
- 您已查看并完成了 "Mirroring images for a disconnected installation" 中直到(不包括)Mirroring the OpenShift Container Platform image repository 的步骤。
- 您已将镜像 registry 配置为在受限网络中使用,并可访问您配置的证书和凭证。
- 您已从 Red Hat OpenShift Cluster Manager 下载了 pull secret,并已修改为包含镜像存储库身份验证信息。
如果您使用没有设置 Subject Alternative Name 的自签名证书,则必须在这个过程中使用
GODEBUG=x509ignoreCN=0
前执行oc
命令。如果没有设置此变量,oc
命令会失败并显示以下错误:x509: certificate relies on legacy Common Name field, use SANs or temporarily enable Common Name matching with GODEBUG=x509ignoreCN=0
流程
在镜像主机上完成以下步骤:
- 查看 OpenShift Container Platform 下载页面,以确定您要更新的 OpenShift Container Platform 版本,并决定 Repository Tags 页中的相应标签(tag)。
设置所需的环境变量:
导出发行版本信息:
$ OCP_RELEASE=<release_version>
对于
<release_version>
,请指定与 OpenShift Container Platform 版本对应的标签,用于您的架构,如4.6.4
。导出本地 registry 名称和主机端口:
$ LOCAL_REGISTRY='<local_registry_host_name>:<local_registry_host_port>'
对于
<local_registry_host_name>
,请指定镜像存储库的 registry 域名;对于<local_registry_host_port>
,请指定用于提供内容的端口。导出本地存储库名称:
$ LOCAL_REPOSITORY='<local_repository_name>'
对于
<local_repository_name>
,请指定要在 registry 中创建的仓库名称,如ocp4/openshift4
。导出包含发行镜像的额外本地存储库名称:
$ LOCAL_RELEASE_IMAGES_REPOSITORY='<local_release_images_repository_name>'
对于
<local_release_images_repository_name>
,请指定要在 registry 中创建的仓库名称,如ocp4/openshift4-release-images
。导出要进行镜像的存储库名称:
$ PRODUCT_REPO='openshift-release-dev'
对于生产环境版本,必须指定
openshift-release-dev
。导出 registry pull secret 的路径:
$ LOCAL_SECRET_JSON='<path_to_pull_secret>'
对于
<path_to_pull_secret>
,请指定您创建的镜像 registry 的 pull secret 的绝对路径和文件名。导出发行版本镜像:
$ RELEASE_NAME="ocp-release"
对于生产环境版本,您必须指定
ocp-release
。为您的服务器导出构架类型,如
x86_64
:$ ARCHITECTURE=<server_architecture>
导出托管镜像的目录的路径:
$ REMOVABLE_MEDIA_PATH=<path> 1
- 1
- 指定完整路径,包括开始的正斜杠(
/
)字符。
将版本镜像(mirror)到镜像 registry:
如果您的镜像主机无法访问互联网,请执行以下操作:
- 将可移动介质连接到连接到互联网的系统。
查看要镜像的镜像和配置清单:
$ oc adm release mirror -a ${LOCAL_SECRET_JSON} \ --from=quay.io/${PRODUCT_REPO}/${RELEASE_NAME}:${OCP_RELEASE}-${ARCHITECTURE} \ --to=${LOCAL_REGISTRY}/${LOCAL_REPOSITORY} \ --to-release-image=${LOCAL_REGISTRY}/${LOCAL_RELEASE_IMAGES_REPOSITORY}:${OCP_RELEASE}-${ARCHITECTURE} --dry-run
将镜像镜像到可移动介质的目录中:
$ oc adm release mirror -a ${LOCAL_SECRET_JSON} --to-dir=${REMOVABLE_MEDIA_PATH}/mirror quay.io/${PRODUCT_REPO}/${RELEASE_NAME}:${OCP_RELEASE}-${ARCHITECTURE}
将介质上传到受限网络环境中,并将镜像上传到本地容器 registry:
$ oc image mirror -a ${LOCAL_SECRET_JSON} --from-dir=${REMOVABLE_MEDIA_PATH}/mirror "file://openshift/release:${OCP_RELEASE}*" ${LOCAL_REGISTRY}/${LOCAL_REPOSITORY} 1
- 1
- 对于
REMOVABLE_MEDIA_PATH
,您必须使用挂载可移动介质的路径。
将发行镜像镜像到单独的存储库:
$ oc image mirror -a ${LOCAL_SECRET_JSON} ${LOCAL_REGISTRY}/${LOCAL_REPOSITORY}:${OCP_RELEASE}-${ARCHITECTURE} ${LOCAL_REGISTRY}/${LOCAL_RELEASE_IMAGES_REPOSITORY}:${OCP_RELEASE}-${ARCHITECTURE}
如果本地容器 registry 连接到镜像主机,请直接将发行镜像推送到本地 registry:
$ oc adm release mirror -a ${LOCAL_SECRET_JSON} \ --from=quay.io/${PRODUCT_REPO}/${RELEASE_NAME}:${OCP_RELEASE}-${ARCHITECTURE} \ --to=${LOCAL_REGISTRY}/${LOCAL_REPOSITORY} \ --to-release-image=${LOCAL_REGISTRY}/${LOCAL_RELEASE_IMAGES_REPOSITORY}:${OCP_RELEASE}-${ARCHITECTURE}