8.4. OpenShift Container Platform 이미지 저장소 미러링
네트워크가 제한된 환경에서 프로비저닝하는 인프라에서 클러스터를 업데이트하기 전에 필요한 컨테이너 이미지를 해당 환경에 미러링해야 합니다. 이 프로세스를 무제한 네트워크에서 사용하여 클러스터가 외부 컨텐츠에 대해 조직의 제어 조건을 충족하는 컨테이너 이미지만 사용하도록 할 수 있습니다.
프로세스
- Red Hat OpenShift Container Platform Upgrade Graph 시각화 프로그램 및 업데이트 플래너 를 사용하여 한 버전에서 다른 버전으로의 업데이트를 계획합니다. OpenShift Upgrade Graph는 채널 그래프와 현재 클러스터 버전과 예약된 클러스터 버전 간의 업데이트 경로가 있는지 확인하는 방법을 제공합니다.
필요한 환경 변수를 설정합니다.
릴리스 버전을 내보냅니다.
$ export OCP_RELEASE=<release_version>
&
lt;release_version
>에 대해 업데이트할 OpenShift Container Platform 버전에 해당하는 태그를 지정합니다 (예:4.5.4
) .로컬 레지스트리 이름 및 호스트 포트를 내보냅니다.
$ LOCAL_REGISTRY='<local_registry_host_name>:<local_registry_host_port>'
<local_registry_host_name>
의 경우 미러 저장소의 레지스트리 도메인 이름을 지정하고<local_registry_host_port>
의 경우 콘텐츠를 제공하는데 사용되는 포트를 지정합니다.로컬 저장소 이름을 내보냅니다.
$ LOCAL_REPOSITORY='<local_repository_name>'
<local_repository_name>
의 경우 레지스트리에 작성할 저장소 이름 (예:ocp4/openshift4
)을 지정합니다.미러링할 저장소 이름을 내보냅니다.
$ PRODUCT_REPO='openshift-release-dev'
프로덕션 환경의 릴리스의 경우
openshift-release-dev
를 지정해야 합니다.레지스트리 풀 시크릿의 경로를 내보냅니다.
$ LOCAL_SECRET_JSON='<path_to_pull_secret>'
생성한 미러 레지스트리에 대한 풀 시크릿의 절대 경로 및 파일 이름을
<path_to_pull_secret>
에 지정합니다.참고클러스터에서
ImageContentSourcePolicy
오브젝트를 사용하여 저장소 미러링을 구성하는 경우 미러링된 레지스트리에 대한 글로벌 풀 시크릿만 사용할 수 있습니다. 프로젝트에 풀 시크릿을 추가할 수 없습니다.릴리스 미러를 내보냅니다.
$ RELEASE_NAME="ocp-release"
프로덕션 환경의 릴리스의 경우
ocp-release
를 지정해야 합니다.서버의 아키텍처 유형 (예:
x86_64
)을 내보냅니다.$ ARCHITECTURE=<server_architecture>
미러링된 이미지를 호스트할 디렉터리의 경로를 내보냅니다.
$ REMOVABLE_MEDIA_PATH=<path> 1
- 1
- 초기 슬래시 (/) 문자를 포함하여 전체 경로를 지정합니다.
미러링할 이미지 및 설정 매니페스트를 확인합니다.
$ oc adm release mirror -a ${LOCAL_SECRET_JSON} --to-dir=${REMOVABLE_MEDIA_PATH}/mirror quay.io/${PRODUCT_REPO}/${RELEASE_NAME}:${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}
미디어를 네트워크가 제한된 환경으로 가져와서 이미지를 로컬 컨테이너 레지스트리에 업로드합니다.
$ 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
CLI(명령줄 인터페이스)를 사용하여 업그레이드 중인 클러스터에 로그인합니다. 미러링된 릴리스 이미지 서명 config map을 연결된 클러스터에 적용합니다.
$ oc apply -f ${REMOVABLE_MEDIA_PATH}/mirror/config/<image_signature_file> 1
- 1
- <
image_signature_file
>은 파일의 경로와 이름을 지정합니다(예:signature-sha256-81154f5c03294534.yaml
).
로컬 컨테이너 레지스트리와 클러스터가 미러 호스트에 연결된 경우 릴리스 이미지를 로컬 레지스트리로 직접 푸시하고 다음 명령을 사용하여 config map을 클러스터에 적용합니다.
$ oc adm release mirror -a ${LOCAL_SECRET_JSON} --from=quay.io/${PRODUCT_REPO}/${RELEASE_NAME}:${OCP_RELEASE}-${ARCHITECTURE} \ --to=${LOCAL_REGISTRY}/${LOCAL_REPOSITORY} --apply-release-image-signature
참고--apply-release-image-signature
옵션이 포함된 경우 이미지 서명 확인을 위해 config map을 작성하지 않습니다.