3.2.5. 특정 버전의 Operator 설치
Subscription 오브젝트에 CSV(클러스터 서비스 버전)를 설정하면 특정 버전의 Operator를 설치할 수 있습니다.
사전 요구 사항
- Operator 설치 권한이 있는 계정을 사용하여 OpenShift Container Platform 클러스터에 액세스할 수 있습니다.
-
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
다음 명령을 실행하여 설치하려는 Operator의 사용 가능한 버전 및 채널을 찾습니다.
명령 구문
$ oc describe packagemanifests <operator_name> -n <catalog_namespace>예를 들어 다음 명령은 OperatorHub에서 사용 가능한 Red Hat Quay Operator의 사용 가능한 채널 및 버전을 출력합니다.
명령 예
$ oc describe packagemanifests quay-operator -n openshift-marketplace예 3.1. 출력 예
Name: quay-operator Namespace: operator-marketplace Labels: catalog=redhat-operators catalog-namespace=openshift-marketplace hypershift.openshift.io/managed=true operatorframework.io/arch.amd64=supported operatorframework.io/os.linux=supported provider=Red Hat provider-url= Annotations: <none> API Version: packages.operators.coreos.com/v1 Kind: PackageManifest ... Current CSV: quay-operator.v3.7.11 ... Entries: Name: quay-operator.v3.7.11 Version: 3.7.11 Name: quay-operator.v3.7.10 Version: 3.7.10 Name: quay-operator.v3.7.9 Version: 3.7.9 Name: quay-operator.v3.7.8 Version: 3.7.8 Name: quay-operator.v3.7.7 Version: 3.7.7 Name: quay-operator.v3.7.6 Version: 3.7.6 Name: quay-operator.v3.7.5 Version: 3.7.5 Name: quay-operator.v3.7.4 Version: 3.7.4 Name: quay-operator.v3.7.3 Version: 3.7.3 Name: quay-operator.v3.7.2 Version: 3.7.2 Name: quay-operator.v3.7.1 Version: 3.7.1 Name: quay-operator.v3.7.0 Version: 3.7.0 Name: stable-3.7 ... Current CSV: quay-operator.v3.8.5 ... Entries: Name: quay-operator.v3.8.5 Version: 3.8.5 Name: quay-operator.v3.8.4 Version: 3.8.4 Name: quay-operator.v3.8.3 Version: 3.8.3 Name: quay-operator.v3.8.2 Version: 3.8.2 Name: quay-operator.v3.8.1 Version: 3.8.1 Name: quay-operator.v3.8.0 Version: 3.8.0 Name: stable-3.8 Default Channel: stable-3.8 Package Name: quay-operator작은 정보다음 명령을 실행하여 Operator의 버전 및 채널 정보를 YAML 형식으로 출력할 수 있습니다.
$ oc get packagemanifests <operator_name> -n <catalog_namespace> -o yaml네임스페이스에 두 개 이상의 카탈로그가 설치된 경우 다음 명령을 실행하여 특정 카탈로그에서 사용 가능한 Operator 버전 및 채널을 찾습니다.
$ oc get packagemanifest \ --selector=catalog=<catalogsource_name> \ --field-selector metadata.name=<operator_name> \ -n <catalog_namespace> -o yaml중요Operator의 카탈로그를 지정하지 않으면 다음 조건이 충족되면
oc get packagemanifest및oc describe packagemanifest명령을 실행하면 예기치 않은 카탈로그에서 패키지를 반환할 수 있습니다.- 동일한 네임스페이스에 여러 개의 카탈로그가 설치되어 있습니다.
- 카탈로그에는 동일한 이름의 Operator 또는 Operator가 포함되어 있습니다.
OperatorGroup오브젝트에서 정의하는 Operator group은 Operator group과 동일한 네임스페이스에 있는 모든 Operator에 대해 필요한 RBAC(역할 기반 액세스 제어) 액세스를 생성할 대상 네임스페이스를 선택합니다.Operator를 서브스크립션하는 네임스페이스에는 Operator의 설치 모드, 즉
AllNamespaces또는SingleNamespace모드와 일치하는 Operator group이 있어야 합니다. 설치하려는 Operator에서AllNamespaces모드를 사용하는 경우openshift-operators네임스페이스에 적절한 Operator group이 이미 있습니다.그러나 Operator에서
SingleNamespace모드를 사용하고 적절한 Operator group이 없는 경우 다음을 생성해야 합니다.OperatorGroup개체 YAML 파일을 만듭니다 (예:operatorgroup.yaml).OperatorGroup오브젝트의 예apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: <operatorgroup_name> namespace: <namespace> spec: targetNamespaces: - <namespace>주의OLM(Operator Lifecycle Manager)은 각 Operator 그룹에 대해 다음 클러스터 역할을 생성합니다.
-
<operatorgroup_name>-admin -
<operatorgroup_name>-edit -
<operatorgroup_name>-view
Operator group을 수동으로 생성할 때 클러스터의 기존 클러스터 역할 또는 기타 Operator 그룹과 충돌하지 않는 고유한 이름을 지정해야 합니다.
-
OperatorGroup개체를 생성합니다.$ oc apply -f operatorgroup.yaml
startingCSV필드를 설정하여 특정 버전의 Operator에 네임스페이스를 서브스크립션하는Subscription오브젝트 YAML 파일을 생성합니다. 카탈로그에 이후 버전이 있는 경우 Operator가 자동으로 업그레이드되지 않도록installPlanApproval필드를Manual로 설정합니다.예를 들어 다음
sub.yaml파일을 사용하여 특히 3.7.10 버전에 Red Hat Quay Operator를 설치할 수 있습니다.특정 시작 Operator 버전이 있는 서브스크립션
apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: quay-operator namespace: quay spec: channel: stable-3.7 installPlanApproval: Manual1 name: quay-operator source: redhat-operators sourceNamespace: openshift-marketplace startingCSV: quay-operator.v3.7.102 Subscription오브젝트를 생성합니다.$ oc apply -f sub.yaml- 보류 중인 설치 계획을 수동으로 승인하여 Operator 설치를 완료합니다.