Kubernetes Operator용 MongoDB 컨트롤러를 사용하여 MongoDB v8.0 이상과 함께 MongoDB Search 및 Vector Search를 배포 할 수 있습니다.
리소스 사양 예시
다음 예시 MongoDB Search 및 Vector Search 배포서버 위한 spec 객체 내부의 설정을 보여줍니다. 이러한 설정에 대해 자세히 학습하려면 필수 설정 및 선택적 설정을 참조하세요.
예시
1 spec: 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리소스 생성해야 하는 네임스페이스입니다.MongoDBSearch및MongoDB또는MongoDBCommunity리소스의 자동 구성을 활용하려면MongoDB또는MongoDBCommunity리소스 와 동일한 네임스페이스 에MongoDBSearch리소스 생성해야 합니다.
metadata.name유형: 문자열
MongoDBSearch리소스 의 고유 식별자입니다. 리소스 이름의 최대 길이는 44 자입니다.
선택적 설정
이 섹션에서는 MongoDB 검색 및 벡터 검색 리소스 에 대한 선택적 설정에 대해 설명합니다. CRD에서 선택적 설정을 생략하고 필수 설정만 정의하는 경우, Kubernetes Operator용 MongoDB 컨트롤러는 모든 선택적 설정의 기본값을 사용하여 MongoDBSearch를 구성합니다.
spec.source유형: 객체
mongot에 대한 MongoDB 소스 복제본 세트 설명하는 설정입니다. 다음과 같은 경우에 필요합니다.MongoDB은(는) 외부입니다.MongoDB와 다른 이름을 가집니다.MongoDBSearch
MongoDBSearch리소스 항상 복제본 세트 에 연결되어 있어야 합니다.MongoDB또는MongoDBCommunityCRD와 함께 Kubernetes Operator를 사용하여 복제본 세트 배포하고spec.source이(가) 비어 있는 경우, Kubernetes Operator는metadata.name에 따라 다음을 사용하여 Kubernetes 에서 데이터베이스 찾습니다.동일한 네임스페이스 에서
MongoDBSearch의metadata.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유형: 문자열
mongod를mongot에 인증하는 데 사용되는 키 파일의 이름입니다. 지정된 시크릿 이름에는 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로그의 상세도입니다. 값은 다음 중 하나일 수 있습니다.TRACEDEBUGINFOWARNERROR
생략하는 경우 기본값은
INFO입니다.
spec.persistence.single유형: 객체
MongoDB Search 및 Vector Search 인덱스가 저장되는 MongoDB Search 및 Vector Search 지속성 볼륨에 대한 스토리지 구성입니다. 각 검색 인스턴스 (pod)에는 인덱스를 유지 관리하기 위한 자체 독립적인 저장 가 있으며, 이는 MongoDB database 와 공유되지 않습니다. 인덱스 메타데이터 (정의)만 데이터베이스 자체에 저장됩니다.
스칼라데이터 유형설명labelSelector문자열
storage문자열
storageClass문자열
영구 볼륨 클레임에 지정된 저장 유형입니다. 이 저장 유형을 StorageClass 객체로 생성한 후 이 객체 사양에서 사용할 수 있습니다.
StorageClass
reclaimPolicy를 Retain 으로 설정하다 해야 합니다. 이렇게 하면 영구 볼륨 클레임 이 제거될 때 데이터가 유지됩니다.MongoDBSearchsingle지속성 필드 만 지원합니다. 생략하면 Kubernetes Operator가spec.persistence.single.storage을10GB로 설정합니다.
spec.version유형: 문자열
mongodb-searchDocker 이미지의 버전입니다. 생략하면 Kubernetes Operator가 자동으로MongoDBSearch의 최신 버전을 선택합니다. Kubernetes Operator 버전 업그레이드 시 자동 업그레이드를 방지하도록 명시적으로 설정하다 수 있습니다.
spec.statefulSetmongot파드 배포를 위해 생성된 StatefulSet에 대한 사양으로, Kubernetes 연산자가 적용하는 설정을 덮어씁니다. 재정의는 항상 마지막에 적용됩니다.spec.statefulSet.spec및spec.statefulSet.metadata필드를 모두 지원합니다.참고
spec.statefulSet을(를) 사용하여 리소스 요구 사항 또는 지속성 설정을 설정하다 하지 마세요. 대신spec.resourceRequirements및spec.persistence필드를 각각 사용합니다.