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 tls: 11 ca: 12 name: mdbc-rs-ca 13 username: search-sync-source 14 passwordSecretRef: 15 name: mdbc-rs-search-sync-source-password 16 key: password 17 security: 18 tls: 19 certificateKeySecretRef: 20 name: mdbs-tls-secret 21 resourceRequirements: 22 limits: 23 cpu: "3" 24 memory: 5Gi 25 requests: 26 cpu: "2" 27 memory: 3Gi 28 logLevel: INFO 29 prometheus: {}
필수 설정
이 섹션에서는 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은(는) 외부입니다.MongoDBMongoDBSearch와 이름이 다릅니다.
MongoDBSearch 리소스 항상 복제본 세트 에 연결되어 있어야 합니다.
MongoDB또는MongoDBCommunityCRD와 함께 Kubernetes Operator를 사용하여 복제본 세트 배포하고 가 비어 있는spec.source경우, Kubernetes Operator는 에 따라 다음을 사용하여metadata.nameKubernetes 에서 데이터베이스 찾습니다.동일한 네임스페이스 에서 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리소스 찾습니다.
사용자 구성을 위한 설정 mongot
spec.source.username유형: 문자열
mongod(으)로mongot을(를) 인증하는 데 사용할 사용자 이름입니다. 지정된 사용자는searchCoordinator역할 있어야 합니다. 생략하면 Kubernetes 연산자는 사용자 이름search-sync-source로 가정합니다.
spec.source.passwordSecretRef.name유형: 문자열
mongot이(가)mongod(으)로 인증하는 데 사용해야 하는 비밀번호가 포함된 시크릿의 이름입니다. 생략하면 기본값은<MongoDBSearch.metadata.name>-search-sync-source-password입니다.
spec.source.passwordSecretRef.key유형: 문자열
비밀번호 값이 시크릿에 저장되는 키입니다. 생략하면 기본값은
password입니다.
외부 MongoDB 에 연결하기 위한 설정
다음 설정은 외부 MongoDB 복제본 세트 에 대한 연결을 구성하는 데에만 필요합니다.
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.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.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.persistence.single유형: 객체
MongoDB Search 및 Vector Search 인덱스가 저장되는 MongoDB Search 및 Vector Search 지속성 볼륨에 대한 스토리지 구성입니다. 각 검색 인스턴스 (pod)에는 인덱스를 유지 관리하기 위한 자체 독립적인 저장 가 있으며, 이는 MongoDB database 와 공유되지 않습니다. 인덱스 메타데이터 (정의)만 데이터베이스 자체에 저장됩니다.
스칼라데이터 유형설명labelSelector문자열
storage문자열
storageClass문자열
영구 볼륨 클레임에 지정된 저장 유형입니다. 이 저장 유형을 StorageClass 객체로 생성한 후 이 객체 사양에서 사용할 수 있습니다.
StorageClass
reclaimPolicy를 Retain 으로 설정하다 해야 합니다. 이렇게 하면 영구 볼륨 클레임 이 제거될 때 데이터가 유지됩니다.MongoDBSearch는
single지속성 필드 만 지원합니다. 생략하면 Kubernetes Operator가spec.persistence.single.storage을10GB로 설정합니다.
로깅 설정
spec.logLevel유형: 문자열
mongot로그의 상세도입니다. 값은 다음 중 하나일 수 있습니다.TRACEDEBUGINFOWARNERROR
생략하는 경우 기본값은
INFO입니다.
지표 설정
spec.prometheus유형: 객체
이 기능은 v1.6 이상에서만 사용할 수 있습니다.
Prometheus 지표 엔드포인트를 활성화 구성입니다. 생략하면
mongot의 지표 엔드포인트가 비활성화됩니다. 기본값 포트(9946)에서 Prometheus 지표 엔드포인트를 활성화 하려면spec.prometheus필드 에 빈{}객체 지정합니다. 포트를 변경하려면spec.prometheus.port필드 에 설정하다 .
spec.prometheus.port유형: 문자열
Prometheus 지표 엔드포인트를 활성화 할 포트입니다. 기본값 으로 Prometheus 지표 엔드포인트는 포트
9946에서 활성화됩니다.
기타 설정
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필드를 각각 사용합니다.