11.4. 미러링된 Operator 카탈로그에서 OperatorHub 채우기
연결이 끊긴 클러스터에 사용하기 위해 Operator 카탈로그를 미러링한 경우 미러링된 카탈로그에서 Operator로 OperatorHub를 채울 수 있습니다. 미러링 프로세스에서 생성된 매니페스트를 사용하여 필요한 ImageContentSourcePolicy
및 CatalogSource
오브젝트를 생성할 수 있습니다.
11.4.1. 사전 요구 사항
11.4.1.1. ImageContentSourcePolicy 오브젝트 생성
Operator 카탈로그 콘텐츠를 미러 레지스트리에 미러링한 후 필요한 ImageContentSourcePolicy
(ICSP) 오브젝트를 생성합니다. ICSP 오브젝트는 Operator 매니페스트에 저장된 이미지 참조와 미러링된 레지스트리 간에 변환하도록 노드를 구성합니다.
절차
연결이 끊긴 클러스터에 액세스할 수 있는 호스트에서 매니페스트 디렉터리에
imageContentSourcePolicy.yaml
파일을 지정하도록 다음 명령을 실행하여 ICSP를 생성합니다.$ oc create -f <path/to/manifests/dir>/imageContentSourcePolicy.yaml
여기서
<path/to/manifests/dir>
은 미러링된 콘텐츠의 매니페스트 디렉터리 경로입니다.이제 미러링된 인덱스 이미지 및 Operator 콘텐츠를 참조하도록
CatalogSource
오브젝트를 생성할 수 있습니다.
11.4.1.2. 클러스터에 카탈로그 소스 추가
OpenShift Container Platform 클러스터에 카탈로그 소스를 추가하면 사용자를 위한 Operator를 검색하고 설치할 수 있습니다. 클러스터 관리자는 인덱스 이미지를 참조하는 CatalogSource
오브젝트를 생성할 수 있습니다. OperatorHub는 카탈로그 소스를 사용하여 사용자 인터페이스를 채웁니다.
또는 웹 콘솔을 사용하여 카탈로그 소스를 관리할 수 있습니다. 관리
사전 요구 사항
- 인덱스 이미지를 빌드하여 레지스트리로 내보냈습니다.
절차
인덱스 이미지를 참조하는
CatalogSource
오브젝트를 생성합니다.oc adm catalog mirror
명령을 사용하여 카탈로그를 대상 레지스트리에 미러링한 경우 매니페스트 디렉터리에서 생성된catalogSource.yaml
파일을 시작점으로 사용할 수 있습니다.다음을 사양에 맞게 수정하고
catalogsource.yaml
파일로 저장합니다.apiVersion: operators.coreos.com/v1alpha1 kind: CatalogSource metadata: name: my-operator-catalog 1 namespace: openshift-marketplace 2 spec: sourceType: grpc grpcPodConfig: securityContextConfig: <security_mode> 3 image: <registry>/<namespace>/redhat-operator-index:v4.12 4 displayName: My Operator Catalog publisher: <publisher_name> 5 updateStrategy: registryPoll: 6 interval: 30m
- 1
- 레지스트리에 업로드하기 전에 콘텐츠를 로컬 파일에 미러링한 경우 오브젝트를 생성할 때 "잘못된 리소스 이름" 오류가 발생하지 않도록
metadata.name
필드에서 백슬래시(/
) 문자를 제거합니다. - 2
- 카탈로그 소스를 모든 네임스페이스의 사용자가 전역적으로 사용할 수 있도록 하려면
openshift-marketplace
네임스페이스를 지정합니다. 그러지 않으면 카탈로그의 범위가 지정되고 해당 네임스페이스에 대해서만 사용할 수 있도록 다른 네임스페이스를 지정할 수 있습니다. - 3
legacy
또는restricted
의 값을 지정합니다. 필드가 설정되지 않은 경우 기본값은legacy
입니다. 향후 OpenShift Container Platform 릴리스에서는 기본값이제한
될 예정입니다.제한된
권한으로 카탈로그를 실행할 수 없는 경우 이 필드를 기존로 수동으로 설정하는 것이좋습니다
.- 4
- 인덱스 이미지를 지정합니다. 이미지 이름(예
: :v4.1
2) 뒤에 태그를 지정하면 카탈로그 소스 Pod는Always
라는 이미지 가져오기 정책을 사용합니다. 즉, Pod는 컨테이너를 시작하기 전에 항상 이미지를 가져옵니다. 다이제스트(예:@sha256:<id
>)를 지정하는 경우 이미지 가져오기 정책은IfNotPresent
입니다. 즉, 노드에 아직 존재하지 않는 경우에만 Pod에서 이미지를 가져옵니다. - 5
- 카탈로그를 게시하는 이름 또는 조직 이름을 지정합니다.
- 6
- 카탈로그 소스는 새 버전을 자동으로 확인하여 최신 상태를 유지할 수 있습니다.
파일을 사용하여
CatalogSource
오브젝트를 생성합니다.$ oc apply -f catalogSource.yaml
다음 리소스가 성공적으로 생성되었는지 확인합니다.
Pod를 확인합니다.
$ oc get pods -n openshift-marketplace
출력 예
NAME READY STATUS RESTARTS AGE my-operator-catalog-6njx6 1/1 Running 0 28s marketplace-operator-d9f549946-96sgr 1/1 Running 0 26h
카탈로그 소스를 확인합니다.
$ oc get catalogsource -n openshift-marketplace
출력 예
NAME DISPLAY TYPE PUBLISHER AGE my-operator-catalog My Operator Catalog grpc 5s
패키지 매니페스트 확인합니다.
$ oc get packagemanifest -n openshift-marketplace
출력 예
NAME CATALOG AGE jaeger-product My Operator Catalog 93s
이제 OpenShift Container Platform 웹 콘솔의 OperatorHub 페이지에서 Operator를 설치할 수 있습니다.