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.7. 사용자 정의 카탈로그 관리
이 가이드에서는 OpenShift Container Platform의 OLM(Operator Lifecycle Manager)에서 번들 형식 또는 레거시 패키지 매니페스트 형식을 사용하여 패키지로 제공되는 Operator용 사용자 정의 카탈로그 사용 방법을 설명합니다.
4.7.1. 번들 형식을 사용하는 사용자 정의 카탈로그 링크 복사링크가 클립보드에 복사되었습니다!
4.7.1.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
-
opm
CLI를 설치합니다.
4.7.1.2. 인덱스 이미지 생성 링크 복사링크가 클립보드에 복사되었습니다!
opm
CLI를 사용하여 인덱스 이미지를 생성할 수 있습니다.
사전 요구 사항
-
opm
버전 1.12.3 이상 -
podman
버전 1.9.3+ 번들 이미지를 빌드하여 Docker v2-2를 지원하는 레지스트리로 내보냄
중요OpenShift Container Platform 클러스터의 내부 레지스트리는 미러링 프로세스 중에 필요한 태그 없이 푸시를 지원하지 않으므로 대상 레지스트리로 사용할 수 없습니다.
절차
새 인덱스를 시작합니다.
opm index add \ --bundles <registry>/<namespace>/<bundle_image_name>:<tag> \ --tag <registry>/<namespace>/<index_image_name>:<tag> \ [--binary-image <registry_base_image>]
$ opm index add \ --bundles <registry>/<namespace>/<bundle_image_name>:<tag> \
1 --tag <registry>/<namespace>/<index_image_name>:<tag> \
2 [--binary-image <registry_base_image>]
3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 인덱스 이미지를 레지스트리로 내보냅니다.
필요한 경우 대상 레지스트리로 인증합니다.
podman login <registry>
$ podman login <registry>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 인덱스 이미지를 내보냅니다.
podman push <registry>/<namespace>/test-catalog:latest
$ podman push <registry>/<namespace>/test-catalog:latest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7.1.3. 인덱스 이미지에서 카탈로그 생성 링크 복사링크가 클립보드에 복사되었습니다!
인덱스 이미지에서 Operator 카탈로그를 생성하고 OLM(Operator Lifecycle Manager)과 함께 사용하도록 OpenShift Container Platform 클러스터에 적용할 수 있습니다.
사전 요구 사항
- 인덱스 이미지를 빌드하여 레지스트리로 내보냈습니다.
프로세스
인덱스 이미지를 참조하는
CatalogSource
오브젝트를 생성합니다.다음을 사양에 맞게 수정하고
catalogsource.yaml
파일로 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 파일을 사용하여
CatalogSource
오브젝트를 생성합니다.oc apply -f catalogSource.yaml
$ oc apply -f catalogSource.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 리소스가 성공적으로 생성되었는지 확인합니다.
Pod를 확인합니다.
oc get pods -n openshift-marketplace
$ oc get pods -n openshift-marketplace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE my-operator-catalog-6njx6 1/1 Running 0 28s marketplace-operator-d9f549946-96sgr 1/1 Running 0 26h
NAME READY STATUS RESTARTS AGE my-operator-catalog-6njx6 1/1 Running 0 28s marketplace-operator-d9f549946-96sgr 1/1 Running 0 26h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 카탈로그 소스를 확인합니다.
oc get catalogsource -n openshift-marketplace
$ oc get catalogsource -n openshift-marketplace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME DISPLAY TYPE PUBLISHER AGE my-operator-catalog My Operator Catalog grpc 5s
NAME DISPLAY TYPE PUBLISHER AGE my-operator-catalog My Operator Catalog grpc 5s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 패키지 매니페스트 확인합니다.
oc get packagemanifest -n openshift-marketplace
$ oc get packagemanifest -n openshift-marketplace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME CATALOG AGE jaeger-product My Operator Catalog 93s
NAME CATALOG AGE jaeger-product My Operator Catalog 93s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
이제 OpenShift Container Platform 웹 콘솔의 OperatorHub 페이지에서 Operator를 설치할 수 있습니다.
4.7.1.4. 인덱스 이미지 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 인덱스 이미지를 참조하는 카탈로그 소스를 사용하도록 OperatorHub를 구성하면 클러스터 관리자가 인덱스 이미지에 번들 이미지를 추가하여 클러스터에 사용 가능한 Operator를 최신 상태로 유지할 수 있습니다.
opm index add
명령을 사용하여 기존 인덱스 이미지를 업데이트할 수 있습니다.
사전 요구 사항
-
opm
버전 1.12.3 이상 -
podman
버전 1.9.3+ - 인덱스 이미지를 빌드하여 레지스트리로 내보냈습니다.
- 기존 카탈로그 소스에서 인덱스 이미지를 참조합니다.
프로세스
번들 이미지를 추가하여 기존 인덱스를 업데이트합니다.
opm index add \ --bundles <registry>/<namespace>/<new_bundle_image>@sha256:<digest> \ --from-index <registry>/<namespace>/<existing_index_image>:<existing_tag> \ --tag <registry>/<namespace>/<existing_index_image>:<updated_tag> \ --pull-tool podman
$ opm index add \ --bundles <registry>/<namespace>/<new_bundle_image>@sha256:<digest> \
1 --from-index <registry>/<namespace>/<existing_index_image>:<existing_tag> \
2 --tag <registry>/<namespace>/<existing_index_image>:<updated_tag> \
3 --pull-tool podman
4 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
<registry>
-
quay.io 또는
과 같은 레지스트리의 호스트 이름을 지정합니다.mirror.example.
com <namespace>
-
ocs-dev
또는abc
와 같은 레지스트리의 네임스페이스를 지정합니다. <new_bundle_image>
-
ocs-operator
와 같이 레지스트리에 추가할 새 번들 이미지를 지정합니다. <digest>
-
번들 이미지의 SHA 이미지 ID 또는 다이제스트를 지정합니다(예:
c7f11097a628f092d8bad148406aa0e0951094a03445fd4bc0775431ef683a41)
. <existing_index_image>
-
이전에 내보낸 이미지를 지정합니다(예:
abc-redhat-operator-index
). <existing_tag>
-
4.6
과 같이 이전에 푸시된 이미지 태그를 지정합니다. <updated_tag>
-
4.6.1
과 같이 업데이트된 인덱스 이미지에 적용할 이미지 태그를 지정합니다.
명령 예
opm index add \ --bundles quay.io/ocs-dev/ocs-operator@sha256:c7f11097a628f092d8bad148406aa0e0951094a03445fd4bc0775431ef683a41 \ --from-index mirror.example.com/abc/abc-redhat-operator-index:4.6 \ --tag mirror.example.com/abc/abc-redhat-operator-index:4.6.1 \ --pull-tool podman
$ opm index add \ --bundles quay.io/ocs-dev/ocs-operator@sha256:c7f11097a628f092d8bad148406aa0e0951094a03445fd4bc0775431ef683a41 \ --from-index mirror.example.com/abc/abc-redhat-operator-index:4.6 \ --tag mirror.example.com/abc/abc-redhat-operator-index:4.6.1 \ --pull-tool podman
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 업데이트된 인덱스 이미지를 내보냅니다.
podman push <registry>/<namespace>/<existing_index_image>:<updated_tag>
$ podman push <registry>/<namespace>/<existing_index_image>:<updated_tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OLM(Operator Lifecycle Manager)이 정기적으로 카탈로그 소스에서 참조하는 인덱스 이미지를 자동으로 폴링하면 새 패키지가 성공적으로 추가되었는지 확인합니다.
oc get packagemanifests -n openshift-marketplace
$ oc get packagemanifests -n openshift-marketplace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7.1.5. 인덱스 이미지 정리 링크 복사링크가 클립보드에 복사되었습니다!
Operator 번들 포맷을 기반으로 하는 인덱스 이미지는 Operator 카탈로그의 컨테이너화된 스냅샷입니다. 지정된 패키지 목록을 제외한 인덱스를 모두 정리하여 원하는 Operator만 포함하는 소스 인덱스 복사본을 생성할 수 있습니다.
사전 요구 사항
-
podman
버전 1.9.3+ -
grpcurl
(타사 명령줄 도구) -
opm
버전 1.18.0 이상 Docker v2-2를 지원하는 레지스트리에 액세스
중요OpenShift Container Platform 클러스터의 내부 레지스트리는 미러링 프로세스 중에 필요한 태그 없이 푸시를 지원하지 않으므로 대상 레지스트리로 사용할 수 없습니다.
절차
대상 레지스트리로 인증합니다.
podman login <target_registry>
$ podman login <target_registry>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 정리된 인덱스에 포함하려는 패키지 목록을 결정합니다.
컨테이너에서 정리하려는 소스 인덱스 이미지를 실행합니다. 예를 들면 다음과 같습니다.
podman run -p50051:50051 \ -it registry.redhat.io/redhat/redhat-operator-index:v4.6
$ podman run -p50051:50051 \ -it registry.redhat.io/redhat/redhat-operator-index:v4.6
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Trying to pull registry.redhat.io/redhat/redhat-operator-index:v4.6... Getting image source signatures Copying blob ae8a0c23f5b1 done ... INFO[0000] serving registry database=/database/index.db port=50051
Trying to pull registry.redhat.io/redhat/redhat-operator-index:v4.6... Getting image source signatures Copying blob ae8a0c23f5b1 done ... INFO[0000] serving registry database=/database/index.db port=50051
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 별도의 터미널 세션에서
grpcurl
명령을 사용하여 인덱스에서 제공하는 패키지 목록을 가져옵니다.grpcurl -plaintext localhost:50051 api.Registry/ListPackages > packages.out
$ grpcurl -plaintext localhost:50051 api.Registry/ListPackages > packages.out
Copy to Clipboard Copied! Toggle word wrap Toggle overflow packages.out
파일을 검사하고 정리된 인덱스에 보관할 이 목록에 있는 패키지 이름을 확인합니다. 예를 들면 다음과 같습니다.패키지 목록 조각의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
podman run
명령을 실행한 터미널 세션에서 Ctrl 및 C를 눌러 컨테이너 프로세스를 중지합니다.
다음 명령을 실행하여 지정된 패키지를 제외한 소스 인덱스를 모두 정리합니다.
opm index prune \ -f registry.redhat.io/redhat/redhat-operator-index:v4.6 \ -p advanced-cluster-management,jaeger-product,quay-operator \ [-i registry.redhat.io/openshift4/ose-operator-registry:v4.6] \ -t <target_registry>:<port>/<namespace>/redhat-operator-index:v4.6
$ opm index prune \ -f registry.redhat.io/redhat/redhat-operator-index:v4.6 \
1 -p advanced-cluster-management,jaeger-product,quay-operator \
2 [-i registry.redhat.io/openshift4/ose-operator-registry:v4.6] \
3 -t <target_registry>:<port>/<namespace>/redhat-operator-index:v4.6
4 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 새 인덱스 이미지를 대상 레지스트리로 내보냅니다.
podman push <target_registry>:<port>/<namespace>/redhat-operator-index:v4.6
$ podman push <target_registry>:<port>/<namespace>/redhat-operator-index:v4.6
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <namespace>
는 레지스트리의 기존 네임스페이스입니다.