MongoDBCommunity 사용자 지정 리소스를 사용하면 Kubernetes에서 MongoDB Community Edition 복제본 세트를 배포하고 관리할 수 있습니다. Kubernetes 연산자는 이 리소스를 사용하여 MongoDB Community 배포서버를 실행하는 데 필요한 statefulSets, 서비스 및 기타 Kubernetes 리소스를 생성합니다.
더 자세히 학습하려면 MongoDB Community 연산자 문서를 참조하세요.
예시
다음 예는 MongoDBCommunity 사용자 지정 리소스에 대한 리소스 사양을 보여줍니다.
1 apiVersion: mongodbcommunity.mongodb.com/v1 2 kind: MongoDBCommunity 3 metadata: 4 name: my-mongodb-community 5 spec: 6 version: "8.0.0" 7 type: ReplicaSet 8 members: 3 9 security: 10 tls: 11 enabled: true 12 certificateKeySecretRef: 13 name: mongodb-tls-cert 14 caConfigMapRef: 15 name: mongodb-ca 16 authentication: 17 ignoreUnknownUsers: true 18 modes: 19 - SCRAM 20 agent: 21 logLevel: DEBUG 22 statefulSet: 23 spec: 24 template: 25 spec: 26 containers: 27 - name: mongod 28 resources: 29 limits: 30 cpu: "2" 31 memory: 2Gi 32 requests: 33 cpu: "1" 34 memory: 1Gi 35 - name: mongodb-agent 36 resources: 37 limits: 38 cpu: "1" 39 memory: 2Gi 40 requests: 41 cpu: "0.5" 42 memory: 1Gi 43 users: 44 - name: mdb-admin 45 db: admin 46 passwordSecretRef: 47 name: mdb-admin-user-password 48 scramCredentialsSecretName: mdb-admin-user 49 roles: 50 - name: root 51 db: admin
필수 MongoDBCommunity 리소스 설정
이 섹션에서는 모든 MongoDBCommunity 리소스에 사용해야 하는 설정에 대해 설명합니다.
apiVersion유형: 문자열
MongoDB Kubernetes 리소스 스키마 의 버전입니다. 값을
mongodbcommunity.mongodb.com/v1(으)로 설정합니다.
kind유형: 문자열
생성할 MongoDB Kubernetes 리소스의 종류입니다. 이를
MongoDBCommunity으로 설정합니다.
metadata.name유형: 문자열
이 특정
MongoDBCommunity리소스를 식별할 수 있도록 사람이 읽을 수 있는 이름입니다.리소스 이름은 44자 이내여야 합니다.
spec.version유형: 문자열
배포할 MongoDB Community 버전입니다. 예시:
"8.0.0"
spec.type유형: 문자열
만들 목표 MongoDB 배포서버 유형입니다. 허용되는 값은
ReplicaSet입니다.
spec.members유형: integer
복제본 세트 노드 수. 이는 Kubernetes 연산자가 StatefulSet에서 만들 수 있는
mongod팝의 수를 결정합니다.
선택 사항 MongoDBCommunity 리소스 설정
MongoDBCommunity 사용자 지정 리소스는 다음 설정을 사용할 수 있습니다.
보안 설정
spec.security유형: 객체
MongoDBCommunity리소스의 보안 구성입니다. TLS 및 인증 설정이 포함되어 있습니다.
spec.security.tls유형: 객체
MongoDB 배포에 대한 TLS 설정.
spec.security.tls.enabled유형: 부울
MongoDB 배포서버에 대한 TLS 활성화 또는 비활성화 플래그입니다.
true으로 설정하여 TLS 암호화된 연결을 활성화합니다.
spec.security.tls.certificateKeySecretRef.name유형: 문자열
MongoDB 배포에 대한 TLS 서버 인증서와 개인 키가 포함된 Kubernetes 시크릿 의 이름입니다.
spec.security.tls.caConfigMapRef.name유형: 문자열
TLS 연결을 확인하는 데 사용되는 CA(인증 기관) 인증서가 포함된 Kubernetes ConfigMap 의 이름입니다.
spec.security.authentication유형: 객체
MongoDB 배포에 대한 인증 구성입니다.
spec.security.authentication.modes유형: 문자열 배열
MongoDB 배포에서 활성화할 인증 메커니즘 목록입니다. 허용되는 값은 다음과 같습니다.
SCRAM
spec.security.authentication.ignoreUnknownUsers유형: 부울
true일 경우 Kubernetes 연산자는 MongoDB 배포에 있지만MongoDBCommunity리소스 사양에 정의되지 않은 사용자에 대해 오류를 보고하지 않습니다.기본값:
false.
에이전트 설정
spec.agent유형: 객체
MongoDB Agent의 구성 설정.
spec.agent.logLevel유형: 문자열
MongoDB Agent 로그의 상세 수준. 허용되는 값은 다음과 같습니다.
DEBUGINFOWARNERROR
StatefulSet 설정
spec.statefulSet유형: 객체
Kubernetes Operator가
MongoDBCommunity리소스에 대해 생성하는 StatefulSet의 사양입니다. 이것을 사용하여 기본 컨테이너 리소스 요청 및 제한을 재정의합니다.
spec.statefulSet.spec유형: 객체
Kubernetes Operator가 생성된 기본값과 병합하는 StatefulSet 사양. 표준 Kubernetes StatefulSet 사양을 따릅니다.
spec.statefulSet.spec.template.spec.containers유형: 객체 배열
컨테이너 재정의 목록입니다. 다음 컨테이너의 리소스 요청 및 제한을 재정할 수 있습니다.
mongod— MongoDB 데이터베이스 컨테이너.mongodb-agent— MongoDB Agent 사이드카 컨테이너.
containers: - name: mongod resources: limits: cpu: "2" memory: 2Gi requests: cpu: "1" memory: 1Gi - name: mongodb-agent resources: limits: cpu: "1" memory: 2Gi requests: cpu: "0.5" memory: 1Gi
사용자 설정
spec.users유형: 객체 배열
이 배포서버에 대해 만들 MongoDB 데이터베이스 사용자 목록입니다. 각 사용자 객체는 데이터베이스 사용자의 자격 증명과 역할을 정의합니다.
spec.users[*].name유형: 문자열
MongoDB 데이터베이스 사용자의 사용자 이름입니다.
spec.users[*].db유형: 문자열
사용자용 인증 데이터베이스입니다. 기본값은
admin입니다.
spec.users[*].passwordSecretRef.name유형: 문자열
이 데이터베이스 사용자의 비밀번호가 포함된 Kubernetes 시크릿 의 이름입니다.
spec.users[*].scramCredentialsSecretName유형: 문자열
Kubernetes 연산자가 이 사용자에 대해 생성된 SCRAM 자격 증명을 저장하는 시크릿 의 이름입니다.
spec.users[*].roles유형: 객체 배열
이 데이터베이스 사용자에 할당할 역할 목록입니다.
spec.users[*].roles[*].name유형: 문자열
할당할 역할의 이름입니다. 예를 들어
root,readWrite,readAnyDatabase또는searchCoordinator입니다.
spec.users[*].roles[*].db유형: 문자열
역할이 적용되는 데이터베이스입니다. 예시:
admin
MongoDBSearch와의 통합
MongoDBSearch CRD를 사용하여 MongoDBCommunity 리소스와 함께 MongoDB Search 및 Vector Search를 배포할 수 있습니다. 검색 기능을 활성화하려면 searchCoordinator 역할을 가진 search-sync-source 사용자를 만듭니다.
users: - name: search-sync-source db: admin passwordSecretRef: name: my-resource-search-sync-source-password scramCredentialsSecretName: my-resource-search-sync-source roles: - name: searchCoordinator db: admin
참고
MongoDB 8.2 및 이후 버전에서는 searchCoordinator 가 내장 역할입니다. 이전 버전에서는 Kubernetes Operator가 searchCoordinator 사용자 지정 역할을 자동으로 만들어줍니다.
자세한 내용은 MongoDB Search 및 벡터 검색 배포를 참조하세요.