4.11. OCI 형식으로 파일 기반 카탈로그 Operator 이미지 미러링
oc-mirror 플러그인을 사용하여 Docker v2 형식 대신 OCI(Open Container Initiative) 이미지 형식으로 Operator를 미러링할 수 있습니다. OCI 형식의 디스크의 파일 기반 카탈로그에 Operator 이미지를 복사할 수 있습니다. 그런 다음 로컬 OCI 이미지를 대상 미러 레지스트리에 복사할 수 있습니다.
oc-mirror 플러그인을 사용하여 OCI 형식으로 Operator 이미지를 미러링하는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
OCI 기능을 사용하는 경우 대상 미러 레지스트리에서 이미지가 자동으로 정리되지 않습니다.
사전 요구 사항
- 필요한 컨테이너 이미지를 얻으려면 인터넷에 액세스할 수 있습니다.
-
OpenShift CLI(
oc
)가 설치되어 있습니다. -
oc-mirror
CLI 플러그인을 설치했습니다.
프로세스
선택 사항: 필요한 카탈로그 및 이미지를 검색하여 디스크에 저장합니다. 디스크의 OCI 형식의 카탈로그 이미지가 이미 있는 경우 이 단계를 건너뛸 수 있습니다.
이미지 세트 구성 파일을 생성합니다.
디스크에 복사하는 이미지 세트 구성 파일의 예
kind: ImageSetConfiguration apiVersion: mirror.openshift.io/v1alpha2 mirror: operators: - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.12 packages: - name: aws-load-balancer-operator
참고OCI 기능을 사용하는 경우
mirror.operators.catalog
설정만 사용할 수 있습니다.storageConfig
설정은oc mirror
명령으로 전달되는 위치를 대신해서 무시됩니다.oc mirror
명령을 실행하여 지정된 이미지 세트 구성의 이미지를 디스크로 미러링합니다.$ oc mirror --config=./imageset-config.yaml \ 1 --use-oci-feature \ 2 --oci-feature-action=copy \ 3 oci://my-oci-catalog 4
- 1
- 이미지 세트 구성 파일을 전달합니다. 이 절차에서는
imageset-config.yaml
이라는 이름을 가정합니다. - 2
- OCI 기능을 활성화하려면
--use-oci-feature
플래그를 사용합니다. - 3
- 카탈로그를 디스크에 복사하려면
--oci-feature-action
플래그를복사
하도록 설정합니다. - 4
- 카탈로그를 출력할 디스크의 디렉터리를 지정합니다. 이 절차에서는 이름이
my-oci-catalog
인 것으로 가정합니다. 경로는oci://
로 시작해야 합니다. 지정된 디렉터리가 전체 경로가 아닌 경우oc mirror
명령이 실행되는 현재 작업 디렉터리에 디렉터리가 생성됩니다.
참고선택적으로
--oci-registries-config
플래그를 사용하여 TOML 형식의registries.conf
파일의 경로를 지정할 수 있습니다. 이미지 세트 구성 파일을 변경하지 않고도 테스트를 위한 사전 프로덕션 위치와 같은 다른 레지스트리에서 미러링할 수 있습니다.registries.conf 파일 예
[[registry]] location = "registry.redhat.io:5000" insecure = false blocked = false mirror-by-digest-only = true prefix = "" [[registry.mirror]] location = "preprod-registry.example.com" insecure = false
registry.mirror
섹션의위치
필드를 이미지를 가져올 대체 레지스트리 위치로 설정합니다.registry
섹션의location
필드는 이미지 세트 구성 파일에서 지정한 레지스트리 위치와 동일해야 합니다.디렉터리 콘텐츠를 나열하고 다음 디렉터리가 생성되었는지 확인합니다.
$ ls -l
출력 예
my-oci-catalog 1 oc-mirror-workspace 2 olm_artifacts 3
이미지 세트 구성 파일을 업데이트하여 대상 미러 레지스트리에 미러링할 디스크의 카탈로그 위치를 지정합니다.
미러 레지스트리로 미러링을 위한 이미지 세트 구성 파일의 예
kind: ImageSetConfiguration apiVersion: mirror.openshift.io/v1alpha2 mirror: operators: - catalog: oci:///home/user/oc-mirror/my-oci-catalog/redhat-operator-index 1 packages: - name: aws-load-balancer-operator
- 1
- 디스크의 OCI 카탈로그 위치에 대한 절대 경로를 지정합니다. 이 절차에서는
my-oci-catalog
를 디렉터리로 사용하고redhat-operator-index
카탈로그를 미러링한 것으로 가정합니다. 경로는oci://
로 시작해야 합니다.
oc mirror 명령을 실행하여 디스크에서 이미지 세트 파일을 처리하고 콘텐츠를 대상 미러 레지스트리에 미러링합니다.
$ oc mirror --config=./imageset-config.yaml \ 1 --use-oci-feature \ 2 --oci-feature-action=mirror \ 3 docker://registry.example:5000 4
- 1
- 업데이트된 이미지 세트 구성 파일을 전달합니다. 이 절차에서는
imageset-config.yaml
이라는 이름을 가정합니다. - 2
- OCI 기능을 활성화하려면
--use-oci-feature
플래그를 사용합니다. - 3
- 카탈로그를 대상 미러 레지스트리에 미러링하려면
--oci-feature-action
플래그를미러
로 설정합니다. - 4
- 이미지 세트 파일을 미러링할 레지스트리를 지정합니다. 레지스트리는
docker://
로 시작해야 합니다. 미러 레지스트리에 최상위 네임스페이스를 지정하는 경우 후속 실행 시 동일한 네임스페이스를 사용해야 합니다.
참고선택적으로
--oci-insecure-signature-policy
플래그를 사용하여 서명을 대상 미러 레지스트리로 내보내지 않습니다.
다음 단계
- oc-mirror에서 생성한 리소스를 사용하도록 클러스터를 구성합니다.
추가 리소스