Ssoon

Percona Operator (3) - Percona Operator for MongoDB - 설치 본문

Database Operator In Kubernetes study

Percona Operator (3) - Percona Operator for MongoDB - 설치

구구달스 2022. 6. 21. 00:32
CloudNet@ 팀의 가시다님이 진행하는 Database Operator In Kubernetes study 스터디 중 Percona Operator for MongoDB 내용에 대해 정리하였습니다.

Percona Operator for MongoDB는 Percona Server for MongoDB 환경에서 항목의 생성, 수정 또는 삭제를 자동화합니다.

Operator에는 MongoDB용 일관된 Percona Server를 유지하는 데 필요한 Kubernetes 설정이 포함되어 있습니다.

시스템 요건

공식 지원 플랫폼

  • OpenShift 4.7 - 4.10
  • Google Kubernetes 엔진(GKE) 1.19 - 1.22
  • Amazon Elastic Container Service for Kubernetes(EKS) 1.19 - 1.22
  • 미니큐브 1.23
  • VMWare Tanzu

자원 제한

공식적으로 지원되는 플랫폼을 실행하는 클러스터는 최소 3개를 포함합니다.노드 및 다음 리소스(샤딩이 다음과 같은 경우)꺼짐):

  • 2 GB의 RAM,
  • 노드당 2개의 CPU 스레드 
  • 프라이빗 볼륨 프로비저닝에 사용할 수 있는 최소 60GB의 스토리지를 제공합니다.

샤딩이 켜져 있는 경우(기본 동작) 4개의 CPU와 6GB의 RAM을 사용하는 것이 좋습니다.

또한 복제 세트 노드 수는 홀수일 수 없습니다

가능한 경우 XFS가 포함된 스토리지 클래스를 기본 파일 시스템으로 사용 MongoDB의 퍼포먼스를 향상시킵니다.

 

설계 및 아키텍처

Percona Operators는 Operator SDK를 기반으로 Kubernetes 프리미티브를 활용하여 CNCF의 베스트 프랙티스를 따르고 있습니다.

  • 복제 세트는 1개의 프라이머리 서버와 여러 개의 세컨더리 서버로 구성됩니다.
  • 오퍼레이터는 고가용성을 제공하기 위해 노드를 사용합니다.
  • 데이터베이스 클러스터가 3개 이상의 단일 복제 세트로 배포됩니다.
  • 노드가 고장나면 mongod 프로세스가 있는 pod는 자동으로 동작합니다

  • Kubernetes는 stateful 애플리케이션에 데이터 스토리지를 제공하기 위해 PVC(Persistent Volume Claim)를  사용합니다. 
  • PVC(Persistent Volume Claim)는 포드에 자동 스토리지 프로비저닝을 구현하는 데 사용됩니다.
  • 장애가 발생하면 CSI(Container Storage Interface)가 다른 노드에 스토리지를 다시 마운트할 수 있어야 합니다. 

 

Percona Server for MongoDB(PSMDB)

오픈 소스 엔터프라이즈 MongoDB 솔루션으로,  퍼블릭, 프라이빗 및 하이브리드 클라우드 환경에서 보안을 강화하고 새로운 애플리케이션의 개발을 단순화할 수 있습니다.

Kubernetes 클러스터 또는 클라우드에 확장하기 위해서 필요한 모든 것이 포함되어 있으며, 다음과 같은 기능을 제공합니다.

  • 단일 장애점이 없는 간단한 도입
  • 샤딩 지원
  • 스케줄 백업 및 수동 백업
  • Percona 감시  관리를 통한 통합 감시
  • 데이터베이스 소프트웨어를 자동으로 최신 상태로 유지하는 스마트 업데이트
  • 패스워드 자동 로테이션– 표준 Kubernetes API를 사용하여 시스템 사용자에 대한 패스워드 로테이션 정책 적용
  • 개인 컨테이너 이미지 레지스트리

Percona server for MongoDB on Kubernetes 설치

  • CRD (Custom Resource Definitaion) 설치합니다.

# CRD (Custom Resource Definitaion) : 쿠버네티스가 제공하지 않는 기능을 기본 기능과 동일한 방식으로 적용하고 사용할 수 있습니다.

https://raw.githubusercontent.com/percona/percona-server-mongodb-operator/main/deploy/bundle.yaml

  • namespace 생성하고 네임스페이스 변경합니다.

  • RBAC 설치합니다.

  • 오퍼레이터을 마스터노드에 설치합니다.

  • 클러스터 이름으로 사용될 닉네임 변수를 지정합니다.

  • 계정 정보를 위한 secret 생성합니다.
cat ~/DOIK/4/secrets.yaml

apiVersion: v1
kind: Secret
metadata:
  name: ${MYCLUSTERNAME}-secrets
type: Opaque
stringData:
  MONGODB_BACKUP_USER: backup
  MONGODB_BACKUP_PASSWORD: backup123456
  MONGODB_CLUSTER_ADMIN_USER: clusterAdmin
  MONGODB_CLUSTER_ADMIN_PASSWORD: clusterAdmin123456
  MONGODB_CLUSTER_MONITOR_USER: clusterMonitor
  MONGODB_CLUSTER_MONITOR_PASSWORD: clusterMonitor123456
  MONGODB_USER_ADMIN_USER: userAdmin
  MONGODB_USER_ADMIN_PASSWORD: userAdmin123456
  PMM_SERVER_USER: admin
  PMM_SERVER_PASSWORD: admin

# envsubst에 파일을 입력하면 출력으로 치환된 결과를 전달해 줍니다. 

  • 복제 세트(3개 파드) 클러스터 생성하고 정보들을 확인합니다.

 
Comments