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