2.2. Operator Controller
Operator 컨트롤러는 OLM(Operator Lifecycle Manager) v1의 핵심 구성 요소이며 다른 OLM v1 구성 요소 catalogd를 사용합니다. 사용자가 Operator 및 확장을 설치할 수 있는 API를 사용하여 Kubernetes를 확장합니다.
2.2.1. ClusterExtension API 링크 복사링크가 클립보드에 복사되었습니다!
Operator 컨트롤러는 registry+v1 번들 형식을 통해 Operator를 포함하는 설치된 확장 인스턴스를 나타내는 단일 리소스인 새로운 ClusterExtension API 오브젝트를 제공합니다. 이 clusterextension.olm.operatorframework.io API는 사용자용 API를 단일 오브젝트로 통합하여 설치된 확장 확장의 관리를 간소화합니다.
OLM v1에서 ClusterExtension 오브젝트는 클러스터 범위입니다. Operator는 관련 Subscription 및 OperatorGroup 오브젝트의 구성에 따라 네임스페이스 범위 또는 클러스터 범위 중 하나일 수 있는 OLM(Classic)과 다릅니다.
이전 동작에 대한 자세한 내용은 Multitenancy 및 Operator colocation 을 참조하십시오.
ClusterExtension 오브젝트의 예
apiVersion: olm.operatorframework.io/v1
kind: ClusterExtension
metadata:
name: <extension_name>
spec:
namespace: <namespace_name>
serviceAccount:
name: <service_account_name>
source:
sourceType: Catalog
catalog:
packageName: <package_name>
channels:
- <channel>
version: "<version>"
2.2.1.1. 대상 버전을 지정하는 CR(사용자 정의 리소스)의 예 링크 복사링크가 클립보드에 복사되었습니다!
OLM(Operator Lifecycle Manager) v1에서 클러스터 관리자는 사용자 정의 리소스(CR)에서 Operator 또는 확장의 대상 버전을 선언적으로 설정할 수 있습니다.
다음 필드 중 하나를 지정하여 대상 버전을 정의할 수 있습니다.
- 채널
- 버전 번호
- 버전 범위
CR에 채널을 지정하면 OLM v1이 지정된 채널 내에서 해결할 수 있는 최신 버전의 Operator 또는 확장 버전을 설치합니다. 지정된 채널에 업데이트가 게시되면 OLM v1이 채널에서 확인할 수 있는 최신 릴리스로 자동으로 업데이트됩니다.
지정된 채널이 있는 CR의 예
apiVersion: olm.operatorframework.io/v1
kind: ClusterExtension
metadata:
name: <clusterextension_name>
spec:
namespace: <installed_namespace>
serviceAccount:
name: <service_account_installer_name>
source:
sourceType: Catalog
catalog:
packageName: <package_name>
channels:
- latest
- 1
- 선택 사항: 지정된 채널에서 확인할 수 있는 최신 릴리스를 설치합니다. 채널 업데이트가 자동으로 설치됩니다.
channels매개변수의 값을 배열로 지정합니다.
CR에서 Operator 또는 확장의 대상 버전을 지정하면 OLM v1이 지정된 버전을 설치합니다. 대상 버전이 CR에 지정되면 업데이트가 카탈로그에 게시될 때 OLM v1에서 대상 버전이 변경되지 않습니다.
클러스터에 설치된 Operator 버전을 업데이트하려면 Operator의 CR을 수동으로 편집해야 합니다. Operator의 대상 버전을 지정하면 Operator 버전이 지정된 릴리스에 고정됩니다.
대상 버전이 지정된 CR의 예
apiVersion: olm.operatorframework.io/v1
kind: ClusterExtension
metadata:
name: <clusterextension_name>
spec:
namespace: <installed_namespace>
serviceAccount:
name: <service_account_installer_name>
source:
sourceType: Catalog
catalog:
packageName: <package_name>
version: "1.11.1"
- 1
- 선택 사항: 대상 버전을 지정합니다. 설치된 Operator 또는 확장 버전을 업데이트하려면 CR을 원하는 대상 버전으로 수동으로 업데이트해야 합니다.
Operator 또는 확장에 허용되는 다양한 버전을 정의하려면 비교 문자열을 사용하여 버전 범위를 지정할 수 있습니다. 버전 범위를 지정하면 OLM v1은 Operator 컨트롤러에서 해결할 수 있는 최신 버전의 Operator 또는 확장을 설치합니다.
버전 범위가 지정된 CR의 예
apiVersion: olm.operatorframework.io/v1
kind: ClusterExtension
metadata:
name: <clusterextension_name>
spec:
namespace: <installed_namespace>
serviceAccount:
name: <service_account_installer_name>
source:
sourceType: Catalog
catalog:
packageName: <package_name>
version: ">1.11.1"
- 1
- 선택 사항: 원하는 버전 범위가 버전
1.11.1보다 큰지 지정합니다. 자세한 내용은 "버전 범위 지원"을 참조하십시오.
CR을 생성하거나 업데이트한 후 다음 명령을 실행하여 구성 파일을 적용합니다.
명령 구문
$ oc apply -f <extension_name>.yaml