쿠버네티스 오퍼레이터는 쿠버네티스의 소프트웨어 확장으로, 다음과 같은 기능을 한다. 는 쿠버네티스 애플리케이션을 자동화된 방식으로 관리할 수 있는 기본 제공 기능을 지원하며, 특히 쿠버네티스 원칙을 따르고 있습니다. 제어 루프 패턴.
왜 쿠버네티스 오퍼레이터? Let's 스테이트풀셋 예제를 살펴보겠습니다..
스테이트풀셋은 특정 사용 사례에 적합하지만, 파드를 생성하고 관리하는 데 중점을 두지 파드에서 실행되는 소프트웨어를 관리하는 데 중점을 두지 않기 때문에 데이터베이스와 같은 복잡한 소프트웨어를 실행하는 데는 그다지 적합하지 않습니다. 따라서 4노드 클러스터를 원하고 배포한 경우 카우치베이스 를 사용하면, 서로에 대해 알지 못하는 초기화되지 않은 4개의 Couchbase 파드를 얻게 됩니다. 그런 다음 노드를 클러스터로 결합하는 것은 사용자의 몫이며, 이는 추가적인 운영 작업을 의미합니다.
배포하여 카우치베이스 자율 운영자 고유한 사용자 지정 카우치베이스 컨트롤러를 사용하면 쿠버네티스가 CouchBase 관련 지식을 가져와서 CouchBase 파드가 배포될 때마다 클러스터의 다른 CouchBase 파드와 적절하게 구성하고 조인할 수 있습니다.
클러스터 프로비저닝, 노드 장애, 애드혹 확장 및 기타 많은 관리 작업도 제대로 자동화하려면 Kubernetes 내에서 Couchbase 관련 지식이 필요합니다. 따라서 쿠버네티스 운영자는 데이터베이스를 쿠버네티스에서 클라우드 네이티브 개발을 위한 최고의 선택으로 만들 수 있는 가장 좋은 방법입니다. 그러나 어떤 데이터베이스가 진정한 클라우드 네이티브이고 조직의 목표에 가장 적합한지 알아보려면 여러 가지 요소를 고려해야 합니다.
이 글에서는 카우치베이스의 핵심 부분인 카우치베이스 자율 운영자를 비교합니다. 카우치베이스 클라우드 네이티브 스택 클라우드 네이티브 개발을 위한 데이터베이스 선택에 있어 올바른 결정을 내리는 데 핵심이 되는 다양한 요소에 대해 MongoDB Enterprise Kubernetes Operator와 비교했습니다.
클라우드 네이티브 통합
그림 1: 카우치베이스 클라우드 네이티브 스택
위의 그림 1과 같습니다, 카우치베이스 자율 운영자 는 Prometheus Exporter와 같은 도구와 긴밀하게, 그리고 경우에 따라 기본으로 통합되어 있습니다, 플루언트비트헬름 차트, 서비스 브로커, 운영자 계량, Istio 서비스 메시, CoreDNS, GlusterFS, Ceph, Portworx, CNI. 이들은 모두 제품에서 완벽하게 인증되고 지원됩니다.
MongoDB Enterprise Kubernetes Operator는 기본적으로 이러한 모든 통합을 지원하지 않습니다. 서비스 브로커와 헬름 차트는 MongoDB Atlas의 확장 기능이지만, MongoDB Kubernetes Operator용은 아닙니다.
아키텍처
그림 2: 쿠버네티스용 Couchbase 자율 운영자의 아키텍처
Couchbase Autonomous Operator는 진정한 클라우드 네이티브이며 표준 클라우드 네이티브 Operator 프레임워크를 기반으로 합니다. 본격적인 제품으로서 데이터베이스 프로비저닝, 백업/복원, 알림/모니터링, Prometheus 또는 OSB API와 같은 오픈 소스 프로젝트와의 기본 통합 등 모든 작업은 Couchbase Autonomous Operator에서 수행됩니다.
카우치베이스 자율 운영자는 쿠버네티스에 배포하는 고객을 위한 안전망을 제공하고 다음과 같이 카우치베이스 배포를 간소화합니다. 역할 기반 액세스 제어(RBAC) 기능이 있는 입장 컨트롤러.
그림 3: MongoDB 엔터프라이즈 Kubernetes 운영자의 아키텍처. 출처
몽고DB 엔터프라이즈 쿠버네티스 오퍼레이터는 몽고DB 운영 관리자를 감싸는 래퍼입니다. 자체 는 MongoDB 데이터베이스를 감싸는 래퍼입니다. 반면, Couchbase Autonomous Operator는 래퍼가 아닌 본격적인 유틸리티 제품으로, Couchbase의 자동화 기능을 확장하여 클라우드 를 사용하여 완전 관리형 배포를 제공합니다.
MongoDB Enterprise Kubernetes Operator 아키텍처는 클라우드 네이티브가 아닙니다. 프로비저닝, 백업/복원, 알림/모니터링 등을 포함한 각 Day-2 작업은 MongoDB Kubernetes Operator가 직접 수행하는 것이 아니라 MongoDB Ops Manager를 통해 수행됩니다. 또한, MongoDB Enterprise Kubernetes Operator에는 어드미션 컨트롤러가 없습니다.
운영자 성숙도 수준
주어진 쿠버네티스 오퍼레이터에는 다섯 가지 성숙도 레벨이 있다:
-
- 기본 설치
- 원활한 업그레이드
- 전체 수명 주기
- 심층 인사이트
- 자동 파일럿
카우치베이스 자율 운영자는 운영자 역량 성숙도 모델의 최고 수준인 오토파일럿까지 각 레벨의 기준을 충족하는 레벨 5 쿠버네티스 운영자로 인증받았습니다. (참조.)
몽고DB 엔터프라이즈 쿠버네티스 오퍼레이터는 레벨 5 오퍼레이터가 아닙니다. (참조.)
기능 비교: 카우치베이스 자율 운영자와 몽고DB 엔터프라이즈 쿠버네티스 운영자 비교
기능 카테고리 |
쿠버네티스용 카우치베이스 자율 운영자(CAO) 2.2 |
MongoDB 엔터프라이즈 쿠버네티스 운영자 1.10 |
자동 스케일링 |
Couchbase Autonomous Operator는 모든 Couchbase 서비스의 자동 확장을 지원합니다.
이 기능은 데이터베이스 업계에서 다음과 같이 고유한 기능입니다. 완전히 사용자 정의된 임계값을 기반으로 단일 서비스 또는 서비스 그룹을 함께 수평적으로 자동 확장할 수 있습니다. 를 사용하여 환경별 요구 사항에 따라 모든 Couchbase 통계를 확인할 수 있습니다. |
몽고DB 엔터프라이즈 쿠버네티스 오퍼레이터는 자동 확장을 지원하지 않습니다.
몽고DB Atlas는 메모리 및 CPU 사용률이라는 제한된 통계로 수직 자동 확장만 지원합니다. 자동 확장 중에 다른 작업을 적절하게 구성(또는 우선순위 지정)하지 않으면 피크 시간대에 유연성이 제한되어 많은 비용이 발생할 수 있습니다. |
클러스터 최대 절전 모드 |
카우치베이스 오토노머스 오퍼레이터는 클러스터 최대 절전 모드를 지원합니다. 즉시 종료 전략.
플러시되지 않은 문서는 삭제될 수 있지만 적절한 내구성 수준으로 설정하면 종료 동작을 더 잘 제어할 수 있습니다. |
몽고DB 엔터프라이즈 쿠버네티스 오퍼레이터는 클러스터 최대 절전 모드를 지원하지 않습니다.
클러스터 최대 절전 모드는 Atlas를 통해서만 지원됩니다. 다음에 대한 문서 일시 중지 API 는 일시 중지 중인 모든 클러스터 구성 속성을 나열합니다. 내구성 수준은 고객이 기내 작업, 쿼리 또는 문서에 어떤 일이 발생하는지 이해하는 데 가장 중요한 매개 변수입니다. (참조.) |
구성 및 배포(CI/CD) |
CAO는 헬름 차트 및 OSB API와의 클라우드 네이티브 통합을 지원합니다.
CAO는 Couchbase 헬름 차트와 Couchbase 서비스 브로커를 통해 배포할 수 있습니다. |
몽고DB 엔터프라이즈 오퍼레이터는 헬름 차트 및 OSB API와의 기본 통합을 지원하지 않습니다.
참고: 몽고DB는 Atlas 또는 몽고DB Ops Manager와 같은 다른 제품에서 Helm 또는 OSB API를 지원할 수 있지만, 몽고DB Enterprise Kubernetes Operator는 지원하지 않습니다. |
유지 관리 및 업그레이드 |
Kubernetes 클러스터 업그레이드, CAO 업그레이드, Couchbase 클러스터 업그레이드는 모두 Couchbase Autonomous Operator를 통해 지원됩니다.
CAO는 다운타임 없이 기존의 롤링 업그레이드와 함께 일괄 업그레이드를 지원합니다. 즉, 클러스터에서 업그레이드할 파드의 수 또는 파드의 비율을 선택하고 나머지 파드는 그대로 실행하면서 업그레이드할 수 있는 사용자 정의 롤링 업그레이드도 지원합니다. |
몽고DB 엔터프라이즈 쿠버네티스 운영자 설명서에는 몽고DB 엔터프라이즈 쿠버네티스 운영자를 통한 몽고DB 데이터베이스 인스턴스의 업그레이드에 대한 언급이 없습니다.
MongoDB Enterprise Kubernetes Operator는 일괄 업그레이드를 지원하지 않습니다. 에 따라 여기에 언급된 단계를 사용하면 MongoDB Enterprise Kubernetes Operator가 항상 오류를 발생시킬 수 있으며 가동 중단 시간을 수반하는 Operator를 삭제해야 합니다. (참조.) |
고가용성 및 재해 복구 |
카우치베이스 자율 운영자는 고가용성(HA), 노드 선호도, 자동 페일오버, 내결함성 및 XDCR을 지원합니다. | 몽고DB 엔터프라이즈 쿠버네티스 운영자는 내결함성과 자동 페일오버를 지원합니다.
그러나 내부적으로 HA 및 XDCR 작업을 위해 MongoDB Ops Manager에 의존하므로 서비스 계층이 추가되고 처리량 및 지연 시간 측면에서 성능에 영향을 미칠 수 있습니다. |
보안 관리 |
카우치베이스 오토노머스 오퍼레이터의 보안 관리에는 RBAC, LDAP 및 TLS 지원이 포함됩니다. | MongoDB Enterprise Kubernetes Operator는 보안을 제공하며, MongoDB Ops Manager를 통해 RBAC, LDAP 및 TLS 지원도 포함합니다. |
백업 관리 |
백업 및 복원은 기본적으로 Couchbase Autonomous Operator를 통해 완벽하게 관리됩니다.
AWS S3로의 백업도 지원됩니다. |
백업/복원은 기본적으로 MongoDB Enterprise Kubernetes Operator를 통해 관리되는 것이 아니라 MongoDB Ops Manager를 통해 관리됩니다. |
관찰 가능성 분석 |
Couchbase Autonomous Operator는 Prometheus, Grafana와 기본 통합되어 모니터링 및 다음과 같은 알림을 제공합니다. 중앙 집중식 로그 포워딩 및 자동화된 감사 로깅을 위한 FluentBit. | 알림 및 모니터링은 MongoDB Ops Manager를 통해 지원됩니다.
몽고DB 엔터프라이즈 쿠버네티스 오퍼레이터에는 Prometheus 또는 FluentBit과 기본 엔터프라이즈 통합 기능이 없습니다. (참고: MongoDB Enterprise Kubernetes Operator 설명서에는 이러한 통합에 대한 언급이 어디에도 없습니다. 참조.) |
네트워킹 |
카우치베이스 오토노머스 오퍼레이터는 CNI, CoreDNS, Istio 서비스 메시와의 클라우드 네이티브 통합을 지원합니다. | MongoDB Enterprise Kubernetes Operator에는 이러한 기본 통합 기능이 없습니다.
MongoDB Enterprise Kubernetes Operator 설명서에는 이러한 클라우드 네이티브 통합에 대한 언급이 없습니다. (참조.) |
스토리지 |
Couchbase Autonomous Operator는 GlusterFS, Ceph 및 Portworx를 위한 클라우드 네이티브 스토리지 통합을 지원합니다.
카우치베이스 오토노머스 오퍼레이터는 퍼시스턴트 볼륨의 온라인 확장과 온라인 백업 볼륨 스케일링도 지원합니다. 참고: 온라인 퍼시스턴트 볼륨 확장은 파드를 다시 시작하지 않고도 퍼시스턴트 볼륨을 확장하는 것을 의미합니다. |
MongoDB Enterprise Kubernetes Operator 설명서에는 이러한 클라우드 네이티브 통합에 대한 언급이 없습니다. (참조.)
몽고DB 엔터프라이즈 쿠버네티스 오퍼레이터는 온라인 스토리지 확장을 지원하지 않습니다. 또한 온라인 백업 볼륨 스케일링도 지원하지 않습니다. |
결론
MongoDB는 대부분의 고급 기능을 MongoDB Ops Manager 또는 MongoDB Atlas를 통해 제공하지만, MongoDB Enterprise Kubernetes Operator를 통해서는 이를 지원하지 않습니다. 이 추가 계층의 Ops Manager는 리소스 비용을 증가시키고 성능에 영향을 미치며 불필요한 아키텍처 복잡성을 추가합니다.
반면, Couchbase Autonomous Operator는 완전한 제품이며 진정한 클라우드 네이티브 방식으로 모든 서비스를 직접 지원합니다. CAO는 데이터베이스 업계의 다른 어떤 Kubernetes 운영자보다 더 성숙합니다.
참조
-
- https://docs.couchbase.com
- https://docs.couchbase.com/cloud-native-database/index.html
- https://docs.couchbase.com/operator/current/overview.html
- https://docs.mongodb.com
- https://medium.com/hackernoon/getting-started-with-mongodb-enterprise-operator-for-kubernetes-bb5d5205fe02
- https://www.couchbase.com/blog/couchbase-autonomous-operator-2-1-for-kubernetes-is-now-ga/
- https://info.couchbase.com/rs/302-GJY-034/images/CBvM_Scale_out%20_High_availability.pdf
- https://www.couchbase.com/blog/couchbase-better-scale-out-agility-and-high-availability-than-mongodb/
- https://connectondemand.couchbase.com/watch/wET3Bo88agGqFCTbMWXegJ