검색

7.2. 구성 요소 및 아키텍처

download PDF

7.2.1. OLM 1.0 구성 요소 개요 (기술 프리뷰)

중요

OLM 1.0은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

OLM(Operator Lifecycle Manager) 1.0은 다음 구성 요소 프로젝트로 구성됩니다.

Operator Controller
Operator 컨트롤러는 사용자가 Operator 및 확장의 라이프사이클을 설치하고 관리할 수 있는 API를 사용하여 Kubernetes를 확장하는 OLM 1.0의 핵심 구성 요소입니다. 다음 각 구성 요소의 정보를 사용합니다.
RukPak

RukPak 은 클라우드 네이티브 콘텐츠를 패키징하고 배포하기 위한 플러그형 솔루션입니다. 설치, 업데이트 및 정책을 위한 고급 전략을 지원합니다.

RukPak은 Kubernetes 클러스터에 다양한 아티팩트를 설치하기 위한 콘텐츠 에코시스템을 제공합니다. 아티팩트 예제에는 Git 리포지토리, Helm 차트 및 OLM 번들이 포함됩니다. RukPak은 강력한 클러스터 확장을 가능하게 하는 안전한 방법으로 이러한 아티팩트를 관리, 확장 및 업그레이드할 수 있습니다.

Catalogd
Catalogd 는 클러스터 클라이언트의 사용을 위해 패키지화되어 컨테이너 이미지에 포함되어 있는 파일 기반 카탈로그(FBC) 콘텐츠의 압축을 풀는 Kubernetes 확장입니다. OLM 1.0 마이크로 서비스 아키텍처의 구성 요소로서 카탈로그가 확장 작성자가 패키지한 Kubernetes 확장 기능에 대한 메타데이터를 호스트하므로 사용자가 설치 가능한 콘텐츠를 검색하는 데 도움이 됩니다.

7.2.2. Operator Controller (기술 프리뷰)

Operator 컨트롤러는 OLM(Operator Lifecycle Manager) 1.0의 핵심 구성 요소이며 다른 OLM 1.0 구성 요소인 RukPak 및 catalogd를 사용합니다. 사용자가 Operator 및 확장을 설치할 수 있는 API를 사용하여 Kubernetes를 확장합니다.

중요

OLM 1.0은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

7.2.2.1. Operator API

Operator 컨트롤러는 설치된 Operator 의 인스턴스를 나타내는 단일 리소스인 새로운 Operator API 오브젝트를 제공합니다. 이 operator.operators.operatorframework.io API는 사용자용 API를 단일 오브젝트로 통합하여 설치된 Operator 관리를 간소화합니다.

중요

OLM 1.0에서 Operator 오브젝트는 클러스터 범위입니다. 이는 관련 SubscriptionOperatorGroup 오브젝트의 구성에 따라 Operator가 네임스페이스 범위 또는 클러스터 범위 중 하나일 수 있는 이전 OLM 버전과 다릅니다.

이전 동작에 대한 자세한 내용은 Multitenancy 및 Operator colocation 을 참조하십시오.

Operator 오브젝트의 예

apiVersion: operators.operatorframework.io/v1alpha1
kind: Operator
metadata:
  name: <operator_name>
spec:
  packageName: <package_name>
  channel: <channel_name>
  version: <version_number>

참고

예를 들면 다음과 같습니다.

$ oc get operator.operators.operatorframework.io

API 그룹 없이 Operator 리소스만 지정하면 CLI는 OLM 1.0과 관련이 없는 이전 API(operator.operators.coreos.com)에 대한 결과를 반환합니다.

7.2.2.1.1. 대상 버전을 지정하는 CR(사용자 정의 리소스)의 예

OLM(Operator Lifecycle Manager) 1.0에서 클러스터 관리자는 사용자 정의 리소스(CR)에서 Operator 또는 확장의 대상 버전을 선언적으로 설정할 수 있습니다.

다음 필드 중 하나를 지정하여 대상 버전을 정의할 수 있습니다.

  • 채널
  • 버전 번호
  • 버전 범위

CR에 채널을 지정하면 OLM 1.0은 지정된 채널 내에서 해결할 수 있는 최신 버전의 Operator 또는 확장 버전을 설치합니다. 지정된 채널에 업데이트가 게시되면 OLM 1.0이 채널에서 확인할 수 있는 최신 릴리스로 자동으로 업데이트됩니다.

지정된 채널이 있는 CR의 예

apiVersion: operators.operatorframework.io/v1alpha1
kind: Operator
metadata:
  name: pipelines-operator
spec:
  packageName: openshift-pipelines-operator-rh
  channel: latest 1

1
지정된 채널에서 확인할 수 있는 최신 릴리스를 설치합니다. 채널 업데이트가 자동으로 설치됩니다.

CR에서 Operator 또는 확장의 대상 버전을 지정하면 OLM 1.0이 지정된 버전을 설치합니다. 대상 버전이 CR에 지정되면 업데이트가 카탈로그에 게시될 때 OLM 1.0에서 대상 버전이 변경되지 않습니다.

클러스터에 설치된 Operator 버전을 업데이트하려면 Operator의 CR을 수동으로 편집해야 합니다. Operator의 대상 버전을 지정하면 Operator 버전이 지정된 릴리스에 고정됩니다.

대상 버전이 지정된 CR의 예

apiVersion: operators.operatorframework.io/v1alpha1
kind: Operator
metadata:
  name: pipelines-operator
spec:
  packageName: openshift-pipelines-operator-rh
  version: 1.11.1 1

1
대상 버전을 지정합니다. 설치된 Operator 또는 확장 버전을 업데이트하려면 CR을 원하는 대상 버전으로 수동으로 업데이트해야 합니다.

Operator 또는 확장에 허용되는 다양한 버전을 정의하려면 비교 문자열을 사용하여 버전 범위를 지정할 수 있습니다. 버전 범위를 지정하면 OLM 1.0은 Operator 컨트롤러가 해결할 수 있는 Operator 또는 확장의 최신 버전을 설치합니다.

버전 범위가 지정된 CR의 예

apiVersion: operators.operatorframework.io/v1alpha1
kind: Operator
metadata:
  name: pipelines-operator
spec:
  packageName: openshift-pipelines-operator-rh
  version: >1.11.1 1

1
원하는 버전 범위가 버전 1.11.1 보다 크도록 지정합니다. 자세한 내용은 "버전 범위 지원"을 참조하십시오.

CR을 생성하거나 업데이트한 후 다음 명령을 실행하여 구성 파일을 적용합니다.

명령 구문

$ oc apply -f <extension_name>.yaml

7.2.3. Rukpak (기술 프리뷰)

OLM(Operator Lifecycle Manager) 1.0은 RukPak 구성 요소와 해당 리소스를 사용하여 클라우드 네이티브 콘텐츠를 관리합니다.

중요

OLM 1.0은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

7.2.3.1. RukPak 정보

RukPak은 클라우드 네이티브 콘텐츠를 패키징하고 배포하기 위한 플러그형 솔루션입니다. 설치, 업데이트 및 정책을 위한 고급 전략을 지원합니다.

RukPak은 Kubernetes 클러스터에 다양한 아티팩트를 설치하기 위한 콘텐츠 에코시스템을 제공합니다. 아티팩트 예제에는 Git 리포지토리, Helm 차트 및 OLM 번들이 포함됩니다. RukPak은 강력한 클러스터 확장을 가능하게 하는 안전한 방법으로 이러한 아티팩트를 관리, 확장 및 업그레이드할 수 있습니다.

RukPak은 핵심에서 작은 API 및 컨트롤러 세트입니다. API는 클러스터에 설치할 콘텐츠를 나타내는 CRD(사용자 정의 리소스 정의)와 실행 중인 콘텐츠 배포를 생성하는 방법을 나타내는 CRD(사용자 정의 리소스 정의)로 패키징됩니다. 컨트롤러는 API를 감시합니다.

일반적인 용어

번들
클러스터에 배포할 콘텐츠를 정의하는 Kubernetes 매니페스트 컬렉션입니다.
번들 이미지
파일 시스템 내에 번들을 포함하는 컨테이너 이미지
번들 Git 리포지토리
디렉터리 내에 번들을 포함하는 Git 리포지토리
프로비저너
Kubernetes 클러스터에서 콘텐츠를 설치하고 관리하는 컨트롤러
번들 배포
번들의 배포된 인스턴스 생성

7.2.3.2. 프로비저너 정보

RukPak은 Kubernetes 클러스터에 콘텐츠를 설치하고 관리하는 프로비전 프로그램으로 알려진 일련의 컨트롤러로 구성됩니다. RukPak은 또한 BundleBundleDeployment 의 두 가지 주요 API를 제공합니다. 이러한 구성 요소는 함께 작동하여 콘텐츠를 클러스터에 가져오고 설치하고 클러스터 내에서 리소스를 생성합니다.

현재 RukPak과 함께 두 개의 프로비저너가 구현되고 번들로 제공되는 일반 프로비저너plain+v0 번들의 압축을 풀고, OLM(Operator Lifecycle Manager) registry+v1 번들의 압축을 풉니다.

각 프로비저너에는 고유한 ID가 할당되며 해당 ID와 일치하는 spec.provisionerClassName 필드를 사용하여 BundleBundleDeployment 오브젝트를 조정합니다. 예를 들어 일반 프로비저너는 지정된 plain+v0 번들을 클러스터에 압축한 다음 인스턴스화하여 클러스터에서 번들 내용을 사용할 수 있도록 할 수 있습니다.

프로비저너는 프로비저너를 명시적으로 참조하는 BundleBundleDeployment 리소스에 감시를 배치합니다. 지정된 번들의 경우 프로비저너는 Bundle 리소스의 내용을 클러스터에 압축을 풉니다. 그런 다음 해당 번들을 참조하는 BundleDeployment 리소스가 제공되면 프로비저너는 번들 콘텐츠를 설치하고 해당 리소스의 라이프사이클을 관리합니다.

7.2.3.3. 번들

RukPak Bundle 오브젝트는 클러스터의 다른 사용자가 사용할 수 있도록 콘텐츠를 나타냅니다. 포드를 사용하려면 컨테이너 이미지의 콘텐츠를 가져와서 압축 해제해야 하는 것과 마찬가지로 Bundle 오브젝트는 가져와서 압축 해제해야 하는 콘텐츠를 참조하는 데 사용됩니다. 이러한 점에서 번들은 이미지 개념을 일반화하고 모든 유형의 콘텐츠를 나타내는 데 사용할 수 있습니다.

번들은 자체적으로 아무것도 수행할 수 없습니다. 프로비저닝 프로그램이 클러스터에서 콘텐츠를 사용할 수 있도록 압축을 풀고 사용할 수 있도록 해야 합니다. 프로비저너 Pod에 마운트된 디렉터리의 tar.gz 파일과 같은 임의의 스토리지 미디어에 압축을 해제할 수 있습니다. 각 Bundle 오브젝트에는 특정 번들 유형을 감시하고 압축 해제하는 Provisioner 오브젝트를 나타내는 관련 spec.provisionerClassName 필드가 있습니다.

일반 프로비저너에서 작동하도록 구성된 Bundle 오브젝트의 예

apiVersion: core.rukpak.io/v1alpha1
kind: Bundle
metadata:
  name: my-bundle
spec:
  source:
    type: image
    image:
      ref: my-bundle@sha256:xyz123
  provisionerClassName: core-rukpak-io-plain

참고

번들은 생성 후 변경 불가능한 것으로 간주됩니다.

7.2.3.3.1. 번들 불변성

Bundle 오브젝트가 API 서버에서 승인되면 번들은 RukPak 시스템의 나머지 부분에 의해 변경 불가능한 아티팩트로 간주됩니다. 이 동작은 번들이 클러스터로 소스를 위해 몇 가지 고유한 정적 콘텐츠를 나타내는 개념을 적용합니다. 사용자는 특정 번들이 특정 매니페스트 세트를 가리키며 새 번들을 생성하지 않고 업데이트할 수 없음을 확신할 수 있습니다. 이 속성은 포함된 BundleTemplate 오브젝트에서 생성한 독립 실행형 번들과 동적 번들 모두에 적용됩니다.

번들 불변성은 코어 RukPak 웹 후크에 의해 적용됩니다. 이 Webhook는 Bundle 오브젝트 이벤트를 감시하고 번들에 대한 업데이트를 위해 기존 번들의 spec 필드가 제안된 업데이트된 번들의 사양 필드와 동일한지 확인합니다. 동일하지 않으면 Webhook에서 업데이트가 거부됩니다. 메타데이터 또는 상태와 같은 기타 번들 오브젝트 필드는 번들의 라이프사이클 중에 업데이트됩니다. 이는 변경할 수 없는 것으로 간주되는 spec 필드입니다.

Bundle 오브젝트를 적용한 다음 사양을 업데이트하려고 하면 실패합니다. 예를 들어 다음 예제에서는 번들을 생성합니다.

$ oc apply -f -<<EOF
apiVersion: core.rukpak.io/v1alpha1
kind: Bundle
metadata:
  name: combo-tag-ref
spec:
  source:
    type: git
    git:
      ref:
        tag: v0.0.2
      repository: https://github.com/operator-framework/combo
  provisionerClassName: core-rukpak-io-plain
EOF

출력 예

bundle.core.rukpak.io/combo-tag-ref created

그런 다음 최신 태그를 가리키도록 번들 패치를 패치하면 오류가 반환됩니다.

$ oc patch bundle combo-tag-ref --type='merge' -p '{"spec":{"source":{"git":{"ref":{"tag":"v0.0.3"}}}}}'

출력 예

Error from server (bundle.spec is immutable): admission webhook "vbundles.core.rukpak.io" denied the request: bundle.spec is immutable

번들 사양을 변경할 수 없기 때문에 코어 RukPak 승인 Webhook가 패치를 거부했습니다. 번들의 콘텐츠를 변경하는 데 권장되는 방법은 인플레이스에서 업데이트하는 대신 새 Bundle 오브젝트를 생성하는 것입니다.

추가 불변성 고려 사항

Bundle 오브젝트의 spec 필드는 변경할 수 없지만 BundleDeployment 오브젝트에서 기본 spec 필드를 변경하지 않고 최신 버전의 번들 콘텐츠로 피벗할 수 있습니다. 이러한 의도하지 않은 피벗은 다음 시나리오에서 발생할 수 있습니다.

  1. 사용자가 Bundle 오브젝트의 spec.source 필드에 이미지 태그, Git 분기 또는 Git 태그를 설정합니다.
  2. 이미지 태그는 새 다이제스트로 이동하거나, 사용자가 변경 사항을 Git 분기로 내보내거나, 사용자가 삭제한 후 다른 커밋에서 Git 태그를 다시 가져옵니다.
  3. 사용자가 압축 풀기 Pod를 삭제하는 등 번들 압축 해제 Pod를 다시 생성하도록 하는 작업을 수행합니다.

이 시나리오가 발생하면 3단계의 새 콘텐츠의 압축을 풉니다. 번들 배포에서는 변경 사항을 감지하고 최신 버전의 콘텐츠로 피벗합니다.

이는 Pod의 컨테이너 이미지 중 하나가 태그를 사용하고 태그를 다른 다이제스트로 이동한 다음 나중에 기존 Pod가 다른 노드에 다시 예약되는 Pod 동작과 유사합니다. 이 시점에서 노드는 새 다이제스트에서 새 이미지를 가져와서 사용자가 명시적으로 요청하지 않고 다른 이미지를 실행합니다.

번들 사양 콘텐츠가 변경되지 않도록 하려면 번들을 생성할 때 다이제스트 기반 이미지 또는 Git 커밋 참조를 사용합니다.

7.2.3.3.2. 일반 번들 사양

RukPak의 일반 번들은 지정된 디렉터리에 있는 정적, 임의의 Kubernetes YAML 매니페스트 컬렉션입니다.

현재 구현된 일반 번들 형식은 plain+v0 형식입니다. 번들 형식인 plain +v0은 번들 유형(일반 )과 현재 스키마 버전(v0)을 결합합니다.

참고

plain+v0 번들 형식은 스키마 버전 v0 입니다. 즉, 변경될 수 있는 실험 형식입니다.

예를 들어 다음은 일반+v0 번들의 파일 트리를 보여줍니다. 애플리케이션을 배포하는 데 필요한 Kubernetes 리소스가 포함된 manifests/ 디렉터리가 있어야 합니다.

일반+v0 번들 파일 트리의 예

$ tree manifests

manifests
├── namespace.yaml
├── service_account.yaml
├── cluster_role.yaml
├── cluster_role_binding.yaml
└── deployment.yaml

정적 매니페스트는 번들에서 프로비저너의 압축을 풀 수 있는 유효한 plain+v0 번들로 하나 이상의 리소스가 있는 manifests/ 디렉터리에 있어야 합니다. manifests/ 디렉터리도 플랫이어야 합니다. 모든 매니페스트는 하위 디렉터리가 없는 최상위에 있어야 합니다.

중요

정적 매니페스트가 아닌 일반 번들의 manifests/ 디렉터리에 콘텐츠를 포함하지 마십시오. 그렇지 않으면 해당 번들에서 클러스터상의 콘텐츠를 생성할 때 오류가 발생합니다. oc apply 명령을 사용하여 성공적으로 적용되지 않는 파일이 발생하면 오류가 발생합니다. 다중 오브젝트 YAML 또는 JSON 파일도 유효합니다.

7.2.3.3.3. 레지스트리 번들 사양

레지스트리 번들 또는 registry+v1 번들에는 기존 OLM(Operator Lifecycle Manager) 번들 형식으로 구성된 정적 Kubernetes YAML 매니페스트 세트가 포함되어 있습니다.

추가 리소스

7.2.3.4. BundleDeployment

주의

BundleDeployment 오브젝트는 오브젝트를 설치 및 제거하여 Kubernetes 클러스터의 상태를 변경합니다. RBAC를 사용하여 설치 중인 콘텐츠를 확인하고 해당 권한이 필요한 사용자에게만 BundleDeployment API에 대한 액세스를 제한하는 것이 중요합니다.

RukPak BundleDeployment API는 Bundle 오브젝트를 가리키며 활성화되어 있어야 함을 나타냅니다. 여기에는 이전 버전의 활성 번들에서 피벗하는 작업이 포함됩니다. BundleDeployment 오브젝트에는 원하는 번들에 대한 임베디드 사양도 포함될 수 있습니다.

Pod가 컨테이너 이미지의 인스턴스를 생성하는 것과 마찬가지로 번들 배포는 배포된 버전의 번들을 생성합니다. 번들 배포는 Pod 개념의 일반화로 볼 수 있습니다.

번들 배포에서 참조된 번들을 기반으로 클러스터를 변경하는 방법에 대한 세부 사항은 번들 배포를 모니터링하도록 구성된 프로비저너에 의해 정의됩니다.

일반 프로비저너에서 작동하도록 구성된 BundleDeployment 오브젝트의 예

apiVersion: core.rukpak.io/v1alpha1
kind: BundleDeployment
metadata:
  name: my-bundle-deployment
spec:
  provisionerClassName: core-rukpak-io-plain
  template:
    metadata:
      labels:
        app: my-bundle
    spec:
      source:
        type: image
        image:
          ref: my-bundle@sha256:xyz123
      provisionerClassName: core-rukpak-io-plain

7.2.4. OLM 1.0의 종속성 확인 (기술 프리뷰)

OLM(Operator Lifecycle Manager) 1.0은 RukPak 번들 카탈로그에 대한 제약 조건을 해결하는 데 종속성 관리자를 사용합니다.

중요

OLM 1.0은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

7.2.4.1. 개념

패키지 관리자가 다음을 수행하지 않아야 하는 사용자의 기대치가 있습니다.

  • 종속성을 충족할 수 없거나 다른 패키지의 종속 항목과 충돌하는 패키지 설치
  • 현재 설치 가능한 패키지 세트에서 제약 조건을 충족할 수 없는 패키지를 설치합니다.
  • 패키지에 종속된 다른 패키지를 중단하는 방식으로 업데이트
7.2.4.1.1. 예: 성공적인 해결 방법

사용자는 다음과 같은 종속성이 있는 패키지 A 및 B를 설치하려고 합니다.

Package A v0.1.0

패키지 B 최신

Cryostat (depends on)

Cryostat (depends on)

Package C v0.1.0

패키지 D 최신

또한 사용자는 A 버전을 v0.1.0 에 고정하려고 합니다.

OLM 1.0에 전달된 패키지 및 제약 조건

패키지

  • A
  • B

Constraints

  • v0.1.0 은 C v0.1.0에 따라 다릅니다.
  • v0.1.0에 고정됨
  • B는 D에 따라 다릅니다.

출력 결과

  • 해결 방법 세트:

    • A v0.1.0
    • B latest
    • C v0.1.0
    • D latest
7.2.4.1.2. 예: 성공하지 못한 해결 방법

사용자는 다음과 같은 종속성이 있는 패키지 A 및 B를 설치하려고 합니다.

Package A v0.1.0

패키지 B 최신

Cryostat (depends on)

Cryostat (depends on)

Package C v0.1.0

Package C v0.2.0

또한 사용자는 A 버전을 v0.1.0 에 고정하려고 합니다.

OLM 1.0에 전달된 패키지 및 제약 조건

패키지

  • A
  • B

Constraints

  • v0.1.0 은 C v0.1.0에 따라 다릅니다.
  • v0.1.0에 고정됨
  • B C v0.2.0에 따라 다릅니다.

출력 결과

  • 해결 방법 세트:

    • v0.1.0에 C v0.1.0 이 필요하므로 최신 C v0.2.0이 필요한 B와 충돌하는 C v0.1.0 이 필요하기 때문에 해결할 수 없습니다.

7.2.5. 카탈로그 (기술 프리뷰)

OLM(Operator Lifecycle Manager) 1.0은 카탈로그 구성 요소와 해당 리소스를 사용하여 Operator 및 확장 카탈로그를 관리합니다.

중요

OLM 1.0은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

7.2.5.1. OLM 1.0의 카탈로그 정보

카탈로그 구성 요소를 사용하여 Operator 및 컨트롤러와 같은 Kubernetes 확장 카탈로그를 쿼리하여 설치 가능한 콘텐츠를 검색할 수 있습니다. Catalogd는 클러스터 내 클라이언트의 카탈로그 콘텐츠의 압축을 풀고 OLM(Operator Lifecycle Manager) 1.0 마이크로 서비스 제품군의 일부입니다. 현재 catalogd는 컨테이너 이미지로 패키지 및 배포되는 카탈로그 콘텐츠의 압축을 풉니다.

중요

고유한 이름이 없는 Operator 또는 확장을 설치하려고 하면 설치에 실패하거나 예기치 않은 결과가 발생할 수 있습니다. 이는 다음과 같은 이유로 발생합니다.

  • mulitple 카탈로그가 클러스터에 설치된 경우 OLM 1.0에는 Operator 또는 확장을 설치할 때 카탈로그를 지정하는 메커니즘이 포함되어 있지 않습니다.
  • OLM(Operator Lifecycle Manager) 1.0의 종속성 확인에서는 클러스터에 설치할 수 있는 모든 Operator 및 확장이 번들 및 패키지에 고유한 이름을 사용해야 합니다.

추가 리소스

7.2.5.1.1. OLM 1.0의 Red Hat 제공 Operator 카탈로그

OLM(Operator Lifecycle Manager) 1.0에는 기본적으로 Red Hat 제공 Operator 카탈로그가 포함되어 있지 않습니다. Red Hat 제공 카탈로그를 클러스터에 추가하려면 카탈로그의 CR(사용자 정의 리소스)을 생성하여 클러스터에 적용합니다. 다음 CR(사용자 정의 리소스) 예제에서는 OLM 1.0에 대한 카탈로그 리소스를 생성하는 방법을 보여줍니다.

중요

registry.redhat.io 의 Red Hat 제공 Operator 카탈로그와 같은 보안 레지스트리에서 호스팅되는 카탈로그를 사용하려면 openshift-catalogd 네임스페이스에 풀 시크릿 범위가 지정되어야 합니다. 자세한 내용은 "보안 레지스트리에서 호스팅되는 카탈로그의 풀 시크릿 생성"을 참조하십시오.

Red Hat Operator 카탈로그의 예

apiVersion: catalogd.operatorframework.io/v1alpha1
kind: Catalog
metadata:
  name: redhat-operators
spec:
  source:
    type: image
    image:
      ref: registry.redhat.io/redhat/redhat-operator-index:v4.15
      pullSecret: <pull_secret_name>
      pollInterval: <poll_interval_duration> 1

1
최신 이미지 다이제스트를 위해 원격 레지스트리를 폴링하는 간격을 지정합니다. 기본값은 24h 입니다. 유효한 단위에는 초(s), 분(m) 및 시간(h)이 포함됩니다. 폴링을 비활성화하려면 0s 와 같은 0 값을 설정합니다.

인증된 Operator 카탈로그의 예

apiVersion: catalogd.operatorframework.io/v1alpha1
kind: Catalog
metadata:
  name: certified-operators
spec:
  source:
    type: image
    image:
      ref: registry.redhat.io/redhat/certified-operator-index:v4.15
      pullSecret: <pull_secret_name>
      pollInterval: 24h

커뮤니티 Operator 카탈로그의 예

apiVersion: catalogd.operatorframework.io/v1alpha1
kind: Catalog
metadata:
  name: community-operators
spec:
  source:
    type: image
    image:
      ref: registry.redhat.io/redhat/community-operator-index:v4.15
      pullSecret: <pull_secret_name>
      pollInterval: 24h

다음 명령은 클러스터에 카탈로그를 추가합니다.

명령 구문

$ oc apply -f <catalog_name>.yaml 1

1
redhat-operators.yaml 과 같은 카탈로그 CR을 지정합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.