Ssoon
Percona Operator (3) - Percona Operator for MongoDB - 설치 본문
Percona Operator (3) - Percona Operator for MongoDB - 설치
구구달스 2022. 6. 21. 00:32CloudNet@ 팀의 가시다님이 진행하는 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개 파드) 클러스터 생성하고 정보들을 확인합니다.
'Database Operator In Kubernetes study' 카테고리의 다른 글
Percona Operator (5) - Percona Operator for MongoDB - 복제 (0) | 2022.06.22 |
---|---|
Percona Operator (4) - Percona Operator for MongoDB - 기본사용법 (0) | 2022.06.22 |
Percona Operator (1) - DBaaS on Kubernetes (0) | 2022.06.20 |
오퍼레이터 & MySQL 오퍼레이터 (6) - MySQL Operator for Kubernetes 실습 - 3 (1) | 2022.06.07 |
오퍼레이터 & MySQL 오퍼레이터 (6) - MySQL Operator for Kubernetes 실습 - 2 (0) | 2022.06.07 |