7.2. 구성 요소 및 아키텍처


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의 핵심 구성 요소입니다. catalogd의 정보를 사용합니다.
RukPak
RukPak 은 클라우드 네이티브 콘텐츠를 패키징하고 배포하기 위한 플러그형 솔루션입니다. 설치, 업데이트 및 정책을 위한 고급 전략을 지원합니다.
Catalogd
Catalogd 는 클러스터 클라이언트의 사용을 위해 패키지화되어 컨테이너 이미지에 포함되어 있는 파일 기반 카탈로그(FBC) 콘텐츠의 압축을 풀는 Kubernetes 확장입니다. OLM 1.0 마이크로 서비스 아키텍처의 구성 요소로서 카탈로그가 확장 작성자가 패키지한 Kubernetes 확장 기능에 대한 메타데이터를 호스트하므로 사용자가 설치 가능한 콘텐츠를 검색하는 데 도움이 됩니다.

7.2.2. Operator Controller (기술 프리뷰)

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

중요

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

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

7.2.2.1. ClusterExtension API

Operator 컨트롤러는 registry+v1 번들 형식을 통해 Operator를 포함하는 설치된 확장 인스턴스를 나타내는 단일 리소스인 새로운 ClusterExtension API 오브젝트를 제공합니다. 이 clusterextension.olm.operatorframework.io API는 사용자용 API를 단일 오브젝트로 통합하여 설치된 확장 확장의 관리를 간소화합니다.

중요

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

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

ClusterExtension 오브젝트의 예

apiVersion: olm.operatorframework.io/v1alpha1
kind: ClusterExtension
metadata:
  name: <operator_name>
spec:
  packageName: <package_name>
  installNamespace: <namespace_name>
  channel: <channel_name>
  version: <version_number>

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

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

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

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

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

지정된 채널이 있는 CR의 예

apiVersion: olm.operatorframework.io/v1alpha1
kind: ClusterExtension
metadata:
  name: pipelines-operator
spec:
  packageName: openshift-pipelines-operator-rh
  installNamespace: <namespace_name>
  channel: latest 1

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

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

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

대상 버전이 지정된 CR의 예

apiVersion: olm.operatorframework.io/v1alpha1
kind: ClusterExtension
metadata:
  name: pipelines-operator
spec:
  packageName: openshift-pipelines-operator-rh
  installNamespace: <namespace_name>
  version: "1.11.1" 1

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

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

버전 범위가 지정된 CR의 예

apiVersion: olm.operatorframework.io/v1alpha1
kind: ClusterExtension
metadata:
  name: pipelines-operator
spec:
  packageName: openshift-pipelines-operator-rh
  installNamespace: <namespace_name>
  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 클러스터에 아티팩트를 설치하기 위한 콘텐츠 에코시스템을 제공합니다. OpenShift Container Platform 4.16에서 RukPak은 레거시 OLM(Operator Lifecycle Manager) 번들을 아티팩트로 지원합니다. RukPak은 강력한 클러스터 확장을 가능하게 하는 안전한 방법으로 이러한 아티팩트를 관리, 확장 및 업그레이드할 수 있습니다.

주의

기술 프리뷰 구성 요소인 RukPak은 FIPS를 지원하지 않습니다. OpenShift Container Platform 4.16에서 OLM(Operator Lifecycle Manager) 1.0은 RukPak에 따라 다릅니다. 결과적으로 RukPak 및 OLM 1.0은 FIPS 모드가 활성화된 클러스터에서 실행되지 않습니다.

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

일반적인 용어

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

7.2.3.2. 프로비저너 정보

RukPak은 Kubernetes 클러스터에 콘텐츠를 설치하고 관리하는 프로비전 프로그램으로 알려진 일련의 컨트롤러로 구성됩니다. 프로비저너는 BundleDeployment 오브젝트와 함께 작동하여 컨텐츠를 클러스터에 가져오고 설치하고 클러스터 내에서 리소스를 생성합니다.

현재 레지스트리 프로비전 프로그램이 구현되어 RukPak에 포함되어 있습니다. 레지스트리 번들 또는 registry+v1 번들에는 기존 OLM(Operator Lifecycle Manager) 번들 형식으로 구성된 정적 Kubernetes YAML 매니페스트 세트가 포함되어 있습니다. 레지스트리 프로비저너 소스는 레지스트리 번들의 압축을 풉니다.

프로비저너에는 고유한 ID가 할당되며 해당 ID와 일치하는 spec.provisionerClassName 필드를 사용하여 번들 및 BundleDeployment 오브젝트를 조정합니다. 예를 들어 레지스트리 프로비저너는 지정된 registry+v1 번들을 클러스터에 압축한 다음 인스턴스화하여 클러스터에서 번들의 콘텐츠를 사용할 수 있습니다.

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

추가 리소스

7.2.3.3. BundleDeployment

OpenShift Container Platform 4.16에서 RukPak BundleDeployment 은 번들을 활성화해야 하는 시기를 나타냅니다. 여기에는 이전 버전의 활성 번들에서 피벗하는 작업이 포함됩니다.

주의

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

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

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

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

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

중요

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

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

7.2.4.1. OLM 1.0의 카탈로그 정보

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

중요

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

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

추가 리소스

7.2.4.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.16
      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.16
      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.16
      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.