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.8.2. 패키지 매니페스트 형식을 사용하는 사용자 정의 카탈로그
4.8.2.1. 패키지 매니페스트 형식 카탈로그 이미지 빌드
클러스터 관리자는 OLM(Operator Lifecycle Manager)에서 사용할 Package Manifest Format에 따라 사용자 정의 Operator 카탈로그 이미지를 빌드할 수 있습니다. 카탈로그 이미지는 Docker v2-2를 지원하는 컨테이너 이미지 레지스트리로 내보낼 수 있습니다. 제한된 네트워크에 있는 클러스터의 경우 이 레지스트리는 제한된 네트워크 클러스터 설치 중에 작성된 미러 레지스트리와 같이 클러스터에 네트워크 액세스 권한이 있는 레지스트리일 수 있습니다.
OpenShift Container Platform 클러스터의 내부 레지스트리는 미러링 프로세스 중에 필요한 태그 없이 푸시를 지원하지 않으므로 대상 레지스트리로 사용할 수 없습니다.
이 예제의 절차에서는 네트워크 및 인터넷에 둘 다 액세스할 수 있는 미러 레지스트리를 사용한다고 가정합니다.
Windows 및 macOS 버전은 oc
adm catalog build 명령을 제공하지 않으므로 이 프로세스에는 Linux 버전의 oc
클라이언트만 사용할 수 있습니다.
사전 요구 사항
- 무제한 네트워크 액세스가 가능한 워크스테이션
-
oc
버전 4.3.5 이상 Linux 클라이언트 -
podman
버전 1.9.3+ - Docker v2-2를 지원하는 미러 레지스트리에 액세스
프라이빗 레지스트리로 작업 중인 경우
REG_CREDS
환경 변수를 이후 단계에서 사용하기 위해 레지스트리 자격 증명의 파일 경로로 설정합니다. 예를 들어podman
CLI의 경우:$ REG_CREDS=${XDG_RUNTIME_DIR}/containers/auth.json
quay.io 계정에서 액세스할 수 있는 비공개 네임스페이스로 작업하는 경우 Quay 인증 토큰을 설정해야 합니다. quay.io 자격 증명을 사용하여 로그인 API에 대해 요청하여
--auth-token
플래그와 함께 사용할AUTH_TOKEN
환경 변수를 설정합니다.$ AUTH_TOKEN=$(curl -sH "Content-Type: application/json" \ -XPOST https://quay.io/cnr/api/v1/users/login -d ' { "user": { "username": "'"<quay_username>"'", "password": "'"<quay_password>"'" } }' | jq -r '.token')
프로세스
무제한 네트워크 액세스가 가능한 워크스테이션에서 대상 미러 레지스트리를 사용하여 인증합니다.
$ podman login <registry_host_name>
빌드 중 기본 이미지를 가져올 수 있도록
registry.redhat.io
로 인증합니다.$ podman login registry.redhat.io
Quay.io에서
redhat-operators
카탈로그를 기반으로 카탈로그 이미지를 빌드하고 태그를 지정한 후 미러 레지스트리로 내보냅니다.$ oc adm catalog build \ --appregistry-org redhat-operators \1 --from=registry.redhat.io/openshift4/ose-operator-registry:v4.7 \2 --filter-by-os="linux/amd64" \3 --to=<registry_host_name>:<port>/olm/redhat-operators:v1 \4 [-a ${REG_CREDS}] \5 [--insecure] \6 [--auth-token "${AUTH_TOKEN}"] 7
- 1
- App Registry 인스턴스에서 가져올 조직(네임스페이스).
- 2
- 대상 OpenShift Container Platform 클러스터 주 버전 및 부 버전과 일치하는 태그를 사용하여
--from
을 Operator 레지스트리 기본 이미지로 설정합니다. - 3
- 기본 이미지에 사용할 운영 체제 및 아키텍처로
--filter-by-os
를 설정합니다. 대상 OpenShift Container Platform 클러스터와 일치해야 합니다. 유효한 값은linux/amd64
,linux/ppc64le
및linux/s390x
입니다. - 4
- 카탈로그 이미지 이름을 지정하고 태그를 포함합니다(예:
v1)
. - 5
- 선택 사항: 필요한 경우 레지스트리 자격 증명 파일의 위치를 지정합니다.
- 6
- 선택 사항: 대상 레지스트리에 대한 신뢰성을 구성하지 않으려면
--insecure
플래그를 추가합니다. - 7
- 선택 사항: 공용이 아닌 다른 애플리케이션 레지스트리 카탈로그가 사용되는 경우 Quay 인증 토큰을 지정합니다.
출력 예
INFO[0013] loading Bundles dir=/var/folders/st/9cskxqs53ll3wdn434vw4cd80000gn/T/300666084/manifests-829192605 ... Pushed sha256:f73d42950021f9240389f99ddc5b0c7f1b533c054ba344654ff1edaf6bf827e3 to example_registry:5000/olm/redhat-operators:v1
간혹 유효하지 않은 매니페스트가 Red Hat에서 제공하는 카탈로그에 실수로 포함될 때가 있습니다. 이 경우 다음과 같은 몇 가지 오류가 표시될 수 있습니다.
오류가 있는 출력 예
... INFO[0014] directory dir=/var/folders/st/9cskxqs53ll3wdn434vw4cd80000gn/T/300666084/manifests-829192605 file=4.2 load=package W1114 19:42:37.876180 34665 builder.go:141] error building database: error loading package into db: fuse-camel-k-operator.v7.5.0 specifies replacement that couldn't be found Uploading ... 244.9kB/s
이러한 오류는 일반적으로 치명적이지 않으며 언급 된 Operator 패키지에 설치하려는 Operator 또는 해당 종속성이 없는 경우 무시할 수 있습니다.
추가 리소스