Docs Menu
Docs Home
/
Kubernetes Operator용 MongoDB 컨트롤러
/

MongoDB 검색 및 벡터 검색 설정

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

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

예시

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

이 섹션에서는 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 리소스를 찾습니다.

  • search-sync-source-user-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 또는 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

유형: 객체

MongoDB Search의 사용자 비밀번호가 포함된 시크릿에 대한 참조입니다.

spec.source.passwordSecretRef.name

유형: 문자열

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

spec.source.passwordSecretRef.key

유형: 문자열

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

spec.security

유형: 객체

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

spec.security.tls

유형: 객체

에 대한TLS 설정입니다. 생략하면 는 mongotmongot 들어오는 연결에 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.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

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

참고

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

돌아가기

CRD 로그 로테이션 설정

이 페이지의 내용