文章大纲
部署 mirror registry 和同步镜像
OpenShift 部署期间每个节点都要从外网下载大量的镜像,为了加快部署和减轻网络负载,建议部署 mirror registry 来同步镜像到本地。
部署 mirror registry
从 https://console.redhat.com/openshift/downloads#tool-mirror-registry 下载最新版本的 mirror registry for Red Hat OpenShift 的 mirror-registry.tar.gz 。
解压 tar 文件:
[root@support ~]# tar xf mirror-registry.tar.gz创建 quayRoot 目录和安装 podman:
[root@support ~]# mkdir /var/quay
[root@support ~]# dnf install podman -y安装 mirror registry for Red Hat OpenShift:
[root@support ~]# ./mirror-registry install --quayHostname support.ocp.icu --quayRoot /var/quay
   __   __
  /  \ /  \     ______   _    _     __   __   __
 / /\ / /\ \   /  __  \ | |  | |   /  \  \ \ / /
/ /  / /  \ \  | |  | | | |  | |  / /\ \  \   /
\ \  \ \  / /  | |__| | | |__| | / ____ \  | |
 \ \/ \ \/ /   \_  ___/  \____/ /_/    \_\ |_|
  \__/ \__/      \ \__
                  \___\ by Red Hat
 Build, Store, and Distribute your Containers
...
INFO Quay installed successfully, config data is stored in /var/quay 
INFO Quay is available at https://support.ocp.icu:8443 with credentials (init, iZQA6E8whY3IT9UVWNLH27G1c0g4pS5k)访问 https://support.ocp.icu:8443 使用 init 作为用户名和 iZQA6E8whY3IT9UVWNLH27G1c0g4pS5k 作为密码进行登录。
注册一个新账户,账户名:ocp4:

登录后,创建 openshift4 仓库,并选择 Public:

使用 podman login 登录:
[root@support ~]# podman login -u ocp4 -p redhat@123 support.ocp.icu:8443 --tls-verify=false
Login Succeeded!信任证书:
[root@support ~]# cp /var/quay/quay-rootCA/rootCA.pem /etc/pki/ca-trust/source/anchors/
[root@support ~]# update-ca-trust extract同步镜像
前往 https://console.redhat.com/openshift/install/pull-secret 下载 pull-secret.txt 到本地。
添加 mirror registry 的凭据:
[root@support ~]# dnf install jq -y
[root@support ~]# cat pull-secret.txt | jq . > pull-secret-done.txt
[root@support ~]# echo -n 'ocp4:redhat@123' | base64 -w0
b2NwNDpyZWRoYXRAMTIz
[root@support ~]# vim pull-secret-2.txt
#添加关于 support.ocp.icu 的凭据
"auths": {
    "support.ocp.icu:8443": {
      "auth": "b2NwNDpyZWRoYXRAMTIz",
      "email": "ocp4@support.ocp.icu"
   },使用链接:https://mirror.openshift.com/pub/openshift-v4/x86_64/clients/ocp/4.14.6/openshift-client-linux-4.14.6.tar.gz 下载 OpenShift command-line interface(oc),并解压。
[root@support ~]# tar xf openshift-client-linux-4.14.6.tar.gz -C /usr/local/bin/设置环境变量:
[root@support ~]# export OCP_RELEASE=4.14.6
[root@support ~]# export LOCAL_REGISTRY='support.ocp.icu:8443'
[root@support ~]# export LOCAL_REPOSITORY='ocp4/openshift4'
[root@support ~]# export PRODUCT_REPO='openshift-release-dev'
[root@support ~]# export LOCAL_SECRET_JSON='/root/pull-secret-done.txt'
[root@support ~]# export RELEASE_NAME="ocp-release"
[root@support ~]# export ARCHITECTURE=x86_64检查mirror的镜像和配置清单:
[root@support ~]# 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_REPOSITORY}:${OCP_RELEASE}-${ARCHITECTURE} --dry-run
...
info: Planning completed in 37.42s
info: Dry run complete
Success
Update image:  support.ocp.icu:8443/ocp4/openshift4:4.14.6-x86_64
Mirror prefix: support.ocp.icu:8443/ocp4/openshift4
Mirror prefix: support.ocp.icu:8443/ocp4/openshift4:4.14.6-x86_64
To use the new mirrored repository to install, add the following section to the install-config.yaml:
imageContentSources:
- mirrors:
  - support.ocp.icu:8443/ocp4/openshift4
  source: quay.io/openshift-release-dev/ocp-release
- mirrors:
  - support.ocp.icu:8443/ocp4/openshift4
  source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
To use the new mirrored repository for upgrades, use the following to create an ImageContentSourcePolicy:
apiVersion: operator.openshift.io/v1alpha1
kind: ImageContentSourcePolicy
metadata:
  name: example
spec:
  repositoryDigestMirrors:
  - mirrors:
    - support.ocp.icu:8443/ocp4/openshift4
    source: quay.io/openshift-release-dev/ocp-release
  - mirrors:
    - support.ocp.icu:8443/ocp4/openshift4
    source: quay.io/openshift-release-dev/ocp-v4.0-art-dev开始同步:
[root@support ~]# 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_REPOSITORY}:${OCP_RELEASE}-${ARCHITECTURE} --skip-verification=false同步的过程(同步过程中可能会受到网络影响导致失败,重复执行同步命令即可,现版本同步的数据大概在18G左右):

同步成功,记录以下信息,用于后续的 OpenShift 的安装:
Success
Update image:  support.ocp.icu:8443/ocp4/openshift4:4.13.5-x86_64
Mirror prefix: support.ocp.icu:8443/ocp4/openshift4
Mirror prefix: support.ocp.icu:8443/ocp4/openshift4:4.13.5-x86_64
To use the new mirrored repository to install, add the following section to the install-config.yaml:
imageContentSources:
- mirrors:
  - support.ocp.icu:8443/ocp4/openshift4
  source: quay.io/openshift-release-dev/ocp-release
- mirrors:
  - support.ocp.icu:8443/ocp4/openshift4
  source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
To use the new mirrored repository for upgrades, use the following to create an ImageContentSourcePolicy:
apiVersion: operator.openshift.io/v1alpha1
kind: ImageContentSourcePolicy
metadata:
  name: example
spec:
  repositoryDigestMirrors:
  - mirrors:
    - support.ocp.icu:8443/ocp4/openshift4
    source: quay.io/openshift-release-dev/ocp-release
  - mirrors:
    - support.ocp.icu:8443/ocp4/openshift4
    source: quay.io/openshift-release-dev/ocp-v4.0-art-dev