This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.4.9.3. 인덱스 이미지 정리
Operator 번들 포맷을 기반으로 하는 인덱스 이미지는 Operator 카탈로그의 컨테이너화된 스냅샷입니다. 지정된 패키지 목록을 제외한 인덱스를 모두 정리하여 원하는 Operator만 포함하는 소스 인덱스 복사본을 생성할 수 있습니다.
제한된 네트워크 OpenShift Container Platform 클러스터에서 미러링된 콘텐츠를 사용하도록 OLM(Operator Lifecycle Manager)을 구성할 때는 기본 카탈로그에서 Operator 서브 세트만 미러링하려면 이 정리 방법을 사용하십시오.
이 절차의 단계에서 대상 레지스트리는 무제한 네트워크 액세스 권한을 사용하여 워크스테이션에서 액세스할 수 있는 기존 미러 레지스트리입니다. 이 예제에서는 기본 redhat-operators
카탈로그의 인덱스 이미지를 정리하는 방법도 보여주지만 프로세스는 모든 인덱스 이미지에서 동일합니다.
사전 요구 사항
- 무제한 네트워크 액세스가 가능한 워크스테이션
-
podman
버전 1.9.3+ -
grpcurl
(타사 명령줄 도구) -
opm
버전 1.18.0 이상 Docker v2-2를 지원하는 레지스트리에 액세스
중요OpenShift Container Platform 클러스터의 내부 레지스트리는 미러링 프로세스 중에 필요한 태그 없이 푸시를 지원하지 않으므로 대상 레지스트리로 사용할 수 없습니다.
절차
registry.redhat.io
로 인증합니다.$ podman login registry.redhat.io
대상 레지스트리로 인증합니다.
$ podman login <target_registry>
정리된 인덱스에 포함하려는 패키지 목록을 결정합니다.
컨테이너에서 정리하려는 소스 인덱스 이미지를 실행합니다. 예를 들면 다음과 같습니다.
$ podman run -p50051:50051 \ -it registry.redhat.io/redhat/redhat-operator-index:v4.7
출력 예
Trying to pull registry.redhat.io/redhat/redhat-operator-index:v4.7... Getting image source signatures Copying blob ae8a0c23f5b1 done ... INFO[0000] serving registry database=/database/index.db port=50051
별도의 터미널 세션에서
grpcurl
명령을 사용하여 인덱스에서 제공하는 패키지 목록을 가져옵니다.$ grpcurl -plaintext localhost:50051 api.Registry/ListPackages > packages.out
packages.out
파일을 검사하고 정리된 인덱스에 보관할 이 목록에 있는 패키지 이름을 확인합니다. 예를 들면 다음과 같습니다.패키지 목록 조각의 예
... { "name": "advanced-cluster-management" } ... { "name": "jaeger-product" } ... { { "name": "quay-operator" } ...
-
podman run
명령을 실행한 터미널 세션에서 Ctrl 및 C를 눌러 컨테이너 프로세스를 중지합니다.
다음 명령을 실행하여 지정된 패키지를 제외한 소스 인덱스를 모두 정리합니다.
$ opm index prune \ -f registry.redhat.io/redhat/redhat-operator-index:v4.7 \1 -p advanced-cluster-management,jaeger-product,quay-operator \2 [-i registry.redhat.io/openshift4/ose-operator-registry:v4.7] \3 -t <target_registry>:<port>/<namespace>/redhat-operator-index:v4.7 4
다음 명령을 실행하여 새 인덱스 이미지를 대상 레지스트리로 내보냅니다.
$ podman push <target_registry>:<port>/<namespace>/redhat-operator-index:v4.7
<namespace>
는 레지스트리의 기존 네임스페이스입니다. 예를 들어 미러링된 콘텐츠를 모두 내보내기 위해olm-mirror
네임스페이스를 생성할 수 있습니다.