3.2. OpenShift Container Storage Operator
ocs-operator
는 OpenShift Data Foundation의 "meta" 연산자로 설명할 수 있습니다. 즉, 다른 Operator에 영향을 미치고 다른 운영자가 제공하는 기능에 대한 구성 게이트웨이 역할을 합니다. 다른 운영자는 직접 관리하지 않습니다.
ocs-operator
에는 다음과 같은 기본 기능이 있습니다.
- 다른 운영자가 조정하도록 트리거하는 사용자 정의 리소스(CR)를 생성합니다.
- Ceph 및 Multicloud Object Gateway 구성을 요약하여 Red Hat에서 검증하고 지원하는 알려진 모범 사례로 제한합니다.
- 지원 정책에 따라 컨테이너화된 Ceph 및 NooBaa 배포에 필요한 리소스를 생성하고 조정합니다.
3.2.1. components
ocs-operator
에는 종속 구성 요소가 없습니다. 그러나 Operator는 CSV( ClusterServiceVersion
)에 정의된 다른 Operator의 모든 CRD(사용자 정의 리소스 정의)가 존재하는 것에 종속되어 있습니다.
3.2.2. 디자인 다이어그램
이 다이어그램은 OpenShift Container Platform과 OpenShift Container Storage를 통합하는 방법을 보여줍니다.
그림 3.2. OpenShift Container Storage Operator
3.2.3. 역할
두 개의 ocs-operator
CRD는 다음과 같습니다.
-
OCSInitialization
-
StorageCluster
OCSInitialization
은 Operator 수준에서 적용되는 작업을 캡슐화하는 데 사용되는 Singleton CRD입니다. 운영자는 하나의 인스턴스가 항상 존재하는지 확인합니다. CR은 다음을 트리거합니다.
OpenShift Container Storage에 필요한 초기화 작업을 수행합니다. 필요한 경우
OCSInitialization
CRD를 삭제하여 이러한 작업을 다시 실행하도록 트리거할 수 있습니다.- OpenShift Container Storage에 필요한 SCC(보안 컨텍스트 제약 조건)가 있는지 확인합니다.
- 고급 문제 해결 및 복구 작업을 수행하는 데 사용되는 Ceph toolbox Pod 배포를 관리합니다.
StorageCluster
CRD는 OpenShift Container Storage의 전체 기능을 제공하는 시스템을 나타냅니다. 이 Operator는 Operator를 트리거하여 Rook-Ceph
및 NooBaa
CRD의 생성 및 조정되었는지 확인합니다. ocs-operator
는 StorageCluster
사양의 구성에 따라 CephCluster
및 NooBaa
CRD를 일반적으로 생성합니다. Operator는 CephBlockPools
,Routes
등과 같은 추가 CR도 생성합니다. 이러한 리소스는 OpenShift Container Storage의 다양한 기능을 활성화하는 데 필요합니다. 현재는 OpenShift Container Platform 클러스터당 하나의 StorageCluster CR만 지원됩니다.
3.2.4. 리소스
ocs-operator
는 정의하는 CRD의 사양에 대한 응답으로 다음 CR을 생성합니다. 이러한 일부 리소스의 구성을 재정의하여 생성된 사양을 변경하거나 완전히 생성하지 않을 수 있습니다.
- 일반 리소스
- 이벤트
- 조정에 대한 대응에 필요한 경우 다양한 이벤트를 생성합니다.
- 영구 볼륨(PV)
- PV는 Operator에서 직접 생성하지 않습니다. 그러나 Operator는 Ceph CSI 드라이버에서 생성한 모든 PV를 추적하고 PV에 지원되는 기능에 대한 적절한 주석이 있는지 확인합니다.
- 빠른 시작
- OpenShift Container Platform 콘솔에 다양한 빠른 시작 CR을 배포합니다.
- Rook-Ceph 리소스
CephBlockPool
-
기본 Ceph 블록 풀을 정의합니다. Ceph 오브젝트 저장소에 대한
CephFilesysPrometheusRulesoute
입니다. StorageClass
-
기본 스토리지 클래스를 정의합니다. 예를 들어
CephBlockPool
및CephFilesystem
의 경우. VolumeSnapshotClass
- 해당 스토리지 클래스에 대한 기본 볼륨 스냅샷 클래스를 정의합니다.
- 다중 클라우드 오브젝트 게이트웨이 리소스
NooBaa
- 기본 Multicloud Object Gateway 시스템을 정의합니다.
- 리소스 모니터링
- 지표 수출 서비스
- 메트릭 수출 서비스 모니터
- PrometheusRules
3.2.5. 제한
ocs-operator
는 다른 OpenShift Data Foundation Pod를 배포하거나 조정하지 않습니다. ocs-operator
CSV는 Operator Deployments 및 OLM(Operator Lifecycle Manager)과 같은 최상위 구성 요소를 정의하면 지정된 구성 요소를 조정합니다.
3.2.6. 고가용성
고가용성은 대부분의 다른 Operator와 유사한 ocs-operator
Pod의 기본 요구 사항이 아닙니다. 일반적으로 프로세스 배포로 인해 필요한 작업이나 이점이 없습니다. OpenShift Container Platform은 현재 Pod를 사용할 수 없거나 삭제될 때마다 대체 Pod를 신속하게 실행합니다.
3.2.7. 관련 구성 파일
ocs-operator
구성은 CSV에 의해 완전히 지정되며 CSV의 사용자 정의 빌드 없이 수정할 수 없습니다.
3.2.8. 관련 로그 파일
OpenShift Container Storage에 대한 이해 및 문제를 해결하려면 다음을 참조하십시오.
- Operator Pod 로그
- 스토리지 클러스터 상태 및 이벤트
- OCSInitialization 상태
Operator Pod 로그
각 Operator는 조정 및 발생한 오류에 대한 정보를 포함하는 표준 Pod 로그를 제공합니다. 이러한 로그에는 종종 필터링되고 무시할 수 있는 성공적인 조정에 대한 정보가 있습니다.
스토리지 클러스터
상태 및 이벤트
StorageCluster
CR은 조정 세부 정보를 CR 상태에 저장하고 관련 이벤트가 있습니다. 상태에는 예상되는 컨테이너 이미지의 섹션이 포함되어 있습니다. 다른 Operator의 Pod와 현재 탐지하는 이미지에 있어야 하는 컨테이너 이미지가 표시됩니다. 이는 OpenShift Container Storage 업그레이드가 완료되었는지 확인하는 데 도움이 됩니다.
OCSInitialization
상태
이 상태는 초기화 작업이 성공적으로 완료되었는지 여부를 표시합니다.
3.2.9. 라이프 사이클
OpenShift Container Storage 번들이 설치된 한 ocs-operator
가 있어야 합니다. 이는 OpenShift Container Storage CSV의 OLM 조정의 일부로 관리됩니다. Pod의 인스턴스가 하나 이상 Ready
상태여야 합니다.
CRD와 같은 연산자 피연산자는 Operator의 라이프사이클에 영향을 미치지 않습니다. OCSInitialization
CR이 항상 있어야 합니다. Operator가 존재하지 않는 경우 이를 생성합니다. StorageClusters의 생성 및 삭제는 Operator의 제어 범위를 벗어나는 작업이며 관리자가 시작하거나 적절한 API 호출을 통해 자동화해야 합니다.