1.2.11.5. Operator API 지원
OpenShift Container Platform 4.5에 기술 프리뷰 기능으로 도입된 Operator API가 지원되고 기본적으로 활성화됩니다. OLM(Operator Lifecycle Manager)을 사용하여 Operator를 설치하려면 클러스터 관리자가 CatalogSource
,Subscription
,ClusterServiceVersion
, InstallPlan
리소스를 비롯한 여러 API 오브젝트를 인식해야 했습니다. 이 단일 Operator API 리소스는 OpenShift Container Platform 클러스터에서 Operator의 라이프 사이클을 검색하고 관리하는 보다 간소화된 환경을 제공하기 위한 첫 번째 단계입니다.
이제 Subscription
리소스를 사용하여 CSV가 설치된 모든 Operator의 새 Operator API에 대해 관련 리소스에 자동으로 레이블이 지정됩니다. 클러스터 관리자는 이 단일 API와 함께 CLI를 사용하여 설치된 Operator와 상호 작용할 수 있습니다. 예를 들면 다음과 같습니다.
$ oc get operators
$ oc describe operator <operator_name>
1.2.11.5.1. 클러스터 업그레이드 전에 Technology Preview Operator API 제거
OpenShift Container Platform 4.5에서 Operator API의 기술 프리뷰 기능 버전을 활성화한 경우 OpenShift Container Platform 4.6으로 업그레이드하기 전에 비활성화해야 합니다. 이렇게 하지 않으면 CVO(Cluster Version Operator)를 덮어써야 하기 때문에 클러스터 업그레이드가 차단됩니다.
사전 요구 사항
- Technology Preview Operator API가 활성화된 OpenShift Container Platform 4.5 클러스터
프로시저
Operator API 라벨은 OpenShift Container Platform 4.6의 관련 리소스에 자동으로 적용되기 때문에 이전에 수동으로 적용한 모든
operator.coreos.com/<name>
라벨을 제거해야 합니다.다음 명령을 실행하고
status.components.refs
섹션을 검토하여 Operator에 대해 현재 라벨이 지정된 리소스를 확인할 수 있습니다.$ oc describe operator <operator_name>
예를 들면 다음과 같습니다.
$ oc describe operator etcd-test
출력 예
... Status: Components: Label Selector: Match Expressions: Key: operators.coreos.com/etcd-test Operator: Exists Refs: API Version: apiextensions.k8s.io/v1 Conditions: Last Transition Time: 2020-07-02T05:50:40Z Message: no conflicts found Reason: NoConflicts Status: True Type: NamesAccepted Last Transition Time: 2020-07-02T05:50:41Z Message: the initial names have been accepted Reason: InitialNamesAccepted Status: True Type: Established Kind: CustomResourceDefinition 1 Name: etcdclusters.etcd.database.coreos.com 2 ...
모든 관련 리소스에서 라벨을 제거합니다. 예를 들면 다음과 같습니다.
$ oc label sub etcd operators.coreos.com/etcd-test- -n test-project $ oc label ip install-6c5mr operators.coreos.com/etcd-test- -n test-project $ oc label csv etcdoperator.v0.9.4 operators.coreos.com/etcd-test- -n test-project $ oc label crd etcdclusters.etcd.database.coreos.com operators.coreos.com/etcd-test- $ oc label crd etcdbackups.etcd.database.coreos.com operators.coreos.com/etcd-test- $ oc label crd etcdrestores.etcd.database.coreos.com operators.coreos.com/etcd-test-
CRD(Operator 사용자 정의 리소스 정의)를 삭제합니다.
$ oc delete crd operators.operators.coreos.com
OLM Operator에서
OperatorLifecycleManagerV2=true
기능 게이트를 제거합니다.OLM의 CVO 관리를 다시 활성화합니다.
$ oc patch clusterversion version \ --type=merge -p \ '{ "spec":{ "overrides":[ { "kind":"Deployment", "name":"olm-operator", "namespace":"openshift-operator-lifecycle-manager", "unmanaged":false, "group":"apps/v1" } ] } }'
Operator 리소스를 더 이상 사용할 수 없는지 확인합니다.
$ oc get operators
출력 예
error: the server doesn't have a resource type "operators"
이제 OpenShift Container Platform 4.6으로 업그레이드해도 이 기능에 의해 더 이상 차단되지 않습니다.