Docs Menu
Docs Home
/ /
/ / /

MongoDB 검색 및 벡터 검색 설정

Kubernetes Operator용 MongoDB 컨트롤러를 사용하여 MongoDB v8.0 이상과 함께 MongoDB Search 및 Vector Search를 배포 할 수 있습니다.

다음 예시 MongoDB Search 및 Vector Search 배포서버 위한 spec 객체 내부의 설정을 보여줍니다. 이러한 설정에 대해 자세히 학습하려면 필수 설정선택적 설정을 참조하세요.

예시

1spec:
2 source:
3 mongodbResourceRef:
4 name: mdb
5 external:
6 hostAndPorts:
7 - mdb-rs-external-0.example.com:27017
8 - mdb-rs-external-1.example.com:27017
9 - mdb-rs-external-2.example.com:27017
10 keyfileSecretRef:
11 name: mdbc-rs-keyfile
12 key: keyfile
13 tls:
14 ca:
15 name: mdbc-rs-ca
16 username: search-sync-source
17 passwordSecretRef:
18 name: mdbc-rs-search-sync-source-password
19 key: password
20 security:
21 tls:
22 certificateKeySecretRef:
23 name: mdbs-tls-secret
24 resourceRequirements:
25 limits:
26 cpu: "3"
27 memory: 5Gi
28 requests:
29 cpu: "2"
30 memory: 3Gi
31 logLevel: INFO

이 섹션에서는 MongoDB Search 및 Vector Search 리소스 배포하는 데 필요한 설정에 대해 설명합니다. 사용자 지정 리소스 정의(CRD)에서 필수 설정만 정의하는 경우, Kubernetes Operator용 MongoDB 컨트롤러는 모든 선택적 설정의 기본값을 사용하여 MongoDBSearch을(를) 구성합니다.

apiVersion

유형: 문자열

MongoDB Kubernetes 리소스 스키마 의 버전입니다. 값을 mongodb.com/v1(으)로 설정합니다.

kind

유형: 문자열

생성할 MongoDB Kubernetes 리소스의 종류입니다. 이를 MongoDBSearch 으로 설정합니다.

metadata.namespace

유형: 문자열

MongoDBSearch 리소스 생성해야 하는 네임스페이스입니다. MongoDBSearchMongoDB 또는 MongoDBCommunity 리소스의 자동 구성을 활용하려면 MongoDB 또는 MongoDBCommunity 리소스 와 동일한 네임스페이스 에 MongoDBSearch 리소스 생성해야 합니다.

metadata.name

유형: 문자열

MongoDBSearch 리소스 의 고유 식별자입니다. 리소스 이름의 최대 길이는 44 자입니다.

이 섹션에서는 MongoDB 검색 및 벡터 검색 리소스 에 대한 선택적 설정에 대해 설명합니다. CRD에서 선택적 설정을 생략하고 필수 설정만 정의하는 경우, Kubernetes Operator용 MongoDB 컨트롤러는 모든 선택적 설정의 기본값을 사용하여 MongoDBSearch를 구성합니다.

spec.source

유형: 객체

mongot에 대한 MongoDB 소스 복제본 세트 설명하는 설정입니다. 다음과 같은 경우에 필요합니다.

  • MongoDB 은(는) 외부입니다.

  • MongoDB 와 다른 이름을 가집니다. MongoDBSearch

MongoDBSearch 리소스 항상 복제본 세트 에 연결되어 있어야 합니다. MongoDB 또는 MongoDBCommunity CRD와 함께 Kubernetes Operator를 사용하여 복제본 세트 배포하고 spec.source 이(가) 비어 있는 경우, Kubernetes Operator는 metadata.name 에 따라 다음을 사용하여 Kubernetes 에서 데이터베이스 찾습니다.

  • 동일한 네임스페이스 에서 MongoDBSearchmetadata.name 에 대해 설정하다 것과 동일한 이름을 가진 MongoDB 또는 MongoDBCommunity 리소스를 찾습니다.

  • MongoDBSearch.metadata.name>-search-sync-source-password 시크릿에서 mongot 사용자의 비밀번호 시크릿을 찾습니다.

spec.source.mongodbResourceRef.name

유형: 문자열

이 MongoDB 검색 및 벡터 검색 리소스 와 연결할 MongoDB 또는 MongoDBCommunity 리소스 의 이름입니다. 동일한 MongoDB 또는 MongoDBCommunity 리소스 참조하는 MongoDBSearch 리소스 두 개 이상 가질 수 없습니다. 다른 이름을 지정하는 경우, MongoDB 검색 및 벡터 검색을 활성화 하려는 MongoDB 또는 MongoDBCommunity 를 명시적으로 점 야 합니다.

MongoDB 또는 MongoDBCommunity 리소스 동일한 Kubernetes 클러스터 에 배포되고 MongoDBSearch 리소스 와 동일한 네임스페이스 에 있는 경우에만 이 필드 사용합니다. 이 필드 설정하면 Kubernetes Operator가 자동으로 다음을 수행할 수 있습니다.

  • 데이터베이스 에 대한 적절한 연결 문자열을 설정합니다.

  • 검색 기능을 활성화 하고 검색 파드의 주소를 구성하는 데 필요한 매개변수를 설정하여 MongoDB database 배포를 재구성합니다.

데이터베이스 Kubernetes 외부에 배포되었거나 다른 네임스페이스 에 있는 경우 spec.external 를 사용하여 데이터베이스 에 대한 연결을 구성합니다. 이 필드 spec.external와 상호 배타적입니다.

생략하면 Kubernetes Operator는 이 MongoDBSearch 리소스 와 동일한 이름을 가진 MongoDB 또는 MongoDBCommunity 리소스 찾습니다.

spec.source.external

유형: 객체

외부 데이터 소스 설명하는 설정입니다. 이 객체 외부 MongoDB 에 연결하기 위한 MongoDB 검색 및 벡터 검색 리소스 의 설정을 설명합니다. 이러한 설정은 Kubernetes Operator를 사용하여 배포되지 않은 외부 MongoDB 에 연결하려는 경우에만 지정해야 합니다. 지정된 경우 이러한 설정이 spec.source.mongodbResourceRef.name에 대한 설정을 재정의합니다. Kubernetes Operator를 사용하여 동일한 클러스터 에 MongoDB 설치한 경우 이러한 설정은 선택 사항입니다.

spec.source.external.hostAndPorts

유형: 문자열 배열

외부 복제본 세트 의 호스트 이름 및 포트 목록입니다. MongoDB 복제본 세트 에 대한 호스팅하다 시드 목록 입니다. mongot 는 복제본 세트 모드 에서 데이터베이스 에 연결하고 db.hello()을 사용하여 다른 모든 노드의 목록을 가져옵니다.

예시

hostAndPorts:
- mdbc-rs-0.my-external-domain.example.com:27017
- mdbc-rs-1.my-external-domain.example.com:27017
- mdbc-rs-2.my-external-domain.example.com:27017
spec.source.external.keyfileSecretRef

유형: 객체

내부 클러스터 인증 위한 키 파일이 포함된 Kubernetes 시크릿에 대한 참조입니다.

spec.source.external.keyfileSecretRef.name

유형: 문자열

mongodmongot에 인증하는 데 사용되는 키 파일의 이름입니다. 지정된 시크릿 이름에는 MongoDB 복제본 세트 멤버가 내부 통신을 위해 사용하는 것과 동일한 키 파일이 포함되어야 합니다.

spec.source.external.keyfileSecretRef.key

유형: 문자열

키 파일의 내용(문자열)입니다.

Cloud Manager 또는 MongoDB Ops Manager 인스턴스 대한 자동화 구성의 auth.key 필드 에서 키 파일을 찾을 수 있습니다.

spec.source.external.tls

유형: 객체

외부 MongoDB database 에 연결할 때 mongot 사용해야 하는 TLS 설정입니다.

spec.source.external.tls.ca.name

유형: 문자열

mongod 노드에서 사용하는 TLS 인증서를 발급한 인증 기관의 신뢰할 수 있는 체인이 포함된 시크릿의 이름입니다.

예시

spec:
source:
external:
tls:
ca:
name: trusted-ca

인증서(또는 신뢰할 수 있는 CA 인증서 체인인 경우 인증서)는 이 시크릿의 ca.crt 키 아래에 지정되어야 합니다.

예시

name: Secret
apiVersion: v1
metadata:
name: trusted-ca
data:
ca.crt: |
-----BEGIN CERTIFICATE-----
MIIDBTCCAe2gAwIBAgIIH3EOUAGAsx0wDQYJKoZIhvcNAQELBQAwFTETMBEGA1UE
[...]
U/4rN8Ias/FONYFRtGfs9uXHmo2MP04BF+9ED2dlbNDUbat+6XCozLJj98nI4VEi
qaV3JrVFHTgN
-----END CERTIFICATE-----
spec.source.username

유형: 문자열

mongod(으)로 mongot 을(를) 인증하는 데 사용할 사용자 이름입니다. 지정된 사용자는 searchCoordinator 역할 있어야 합니다. 생략하면 Kubernetes Operator는 사용자 이름 search-sync-source이라고 가정합니다.

spec.source.passwordSecretRef.name

유형: 문자열

mongot 이(가) mongod(으)로 인증하는 데 사용해야 하는 비밀번호가 포함된 시크릿의 이름입니다. 생략하면 기본값은 <MongoDBSearch.metadata.name>-search-sync-source-password입니다.

spec.source.passwordSecretRef.key

유형: 문자열

비밀번호 값이 시크릿에 저장되는 키입니다. 생략하면 기본값은 password입니다.

spec.security

유형: 객체

mongot 수신 서버 에 대한 보안 설정입니다.

spec.security.tls

유형: 객체

mongot 대한 TLS 설정입니다. 생략하면 mongot 는 들어오는 연결에 TLS를 사용하지 않습니다.

spec.security.tls.certificateKeySecretRef.name

유형: 문자열

비공개 키(tls.key)와 인증서(tls.crt)를 포함하는 동일한 네임스페이스 에 있는 TLS 시크릿의 이름입니다. 시크릿은 kubernetes.io/tls 유형(cert-manager에서 발급)이거나 수동으로 생성할 수 있습니다. 이는 에서 TLS를 활성화하는mongot 필요합니다.

spec.resourceRequirements

유형: core/v1/ResourceRequirements

mongodb-search 컨테이너 요청 수 있고 제한할 수 있는 CPU 및 메모리입니다. spec.statefulSet(으)로 재정의하는 대신 이 필드 사용하여 리소스 할당을 사용자 지정하는 것이 좋습니다.

생략하면 Kubernetes Operator는 다음 기본값 을 사용합니다.

requests:
cpu: 2
memory: 2G
spec.resourceRequirements.limits

유형: 객체

mongodb-search 컨테이너 사용할 수 있는 리소스 , CPU 및 메모리의 상한선입니다. 기본값 으로 제한은 설정하다 있지 않습니다. 생략하면 파드가 제한되지 않으므로 노드 의 모든 리소스를 사용할 수 있습니다. 워크로드 에 따라 제한을 설정하는 것이 좋습니다.

spec.resourceRequirements.requests

유형: 객체

mongodb-search 컨테이너 에 대해 요청된 CPU 및 메모리의 양입니다. 생략하면 Kubernetes Operator는 다음 기본값 을 사용합니다.

requests:
cpu: 2
memory: 2G
spec.logLevel

유형: 문자열

mongot 로그의 상세도입니다. 값은 다음 중 하나일 수 있습니다.

  • TRACE

  • DEBUG

  • INFO

  • WARN

  • ERROR

생략하는 경우 기본값은 INFO입니다.

spec.persistence.single

유형: 객체

MongoDB Search 및 Vector Search 인덱스가 저장되는 MongoDB Search 및 Vector Search 지속성 볼륨에 대한 스토리지 구성입니다. 각 검색 인스턴스 (pod)에는 인덱스를 유지 관리하기 위한 자체 독립적인 저장 가 있으며, 이는 MongoDB database 와 공유되지 않습니다. 인덱스 메타데이터 (정의)만 데이터베이스 자체에 저장됩니다.

스칼라
데이터 유형
설명

labelSelector

문자열

storage

문자열

마운트해야 하는 영구 볼륨 의 최소 크기입니다. 이 값은 정수 뒤에 JEDEC 표기법으로 저장 단위를 붙여 표현합니다.

기본값은 16Gi입니다.

예시를 들어 복제본 세트 60 기가바이트의 저장 공간이 필요한 경우 이 값을 60Gi로 설정하다.

storageClass

문자열

영구 볼륨 클레임에 지정된 저장 유형입니다. 이 저장 유형을 StorageClass 객체로 생성한 후 이 객체 사양에서 사용할 수 있습니다.

StorageClass reclaimPolicyRetain 으로 설정하다 해야 합니다. 이렇게 하면 영구 볼륨 클레임 이 제거될 때 데이터가 유지됩니다.

MongoDBSearch single 지속성 필드 만 지원합니다. 생략하면 Kubernetes Operator가 spec.persistence.single.storage10GB로 설정합니다.

spec.version

유형: 문자열

mongodb-search Docker 이미지의 버전입니다. 생략하면 Kubernetes Operator가 자동으로 MongoDBSearch의 최신 버전을 선택합니다. Kubernetes Operator 버전 업그레이드 시 자동 업그레이드를 방지하도록 명시적으로 설정하다 수 있습니다.

spec.statefulSet

유형: apps/v1/StatefulSet

mongot 파드 배포를 위해 생성된 StatefulSet에 대한 사양으로, Kubernetes 연산자가 적용하는 설정을 덮어씁니다. 재정의는 항상 마지막에 적용됩니다. spec.statefulSet.specspec.statefulSet.metadata 필드를 모두 지원합니다.

참고

spec.statefulSet을(를) 사용하여 리소스 요구 사항 또는 지속성 설정을 설정하다 하지 마세요. 대신 spec.resourceRequirementsspec.persistence 필드를 각각 사용합니다.

돌아가기

CRD 로그 로테이션 설정

이 페이지의 내용