MongoDB.local SF, Jan 15: See the speaker lineup & ship your AI vision faster. Use WEB50 to save 50%
Find out more >
Docs Menu
Docs Home
/ /

MongoDB Search 및 Vector Search 배포

Kubernetes 클러스터 에 MongoDB Search 및 Vector Search를 배포 애플리케이션 내에서 직접 강력한 검색 경험을 빌드 수 있습니다. MongoDB Search 및 Vector Search를 사용하면 기존 텍스트 검색 과 온프레미스 MongoDB database 와 자동으로 동기화 되는 AI 기반 벡터 검색 기능을 모두 빌드 할 수 있습니다. 이렇게 하면 고급 검색 기능을 제공하면서 별도의 시스템 동기화 를 유지할 필요가 없습니다. 자세한 학습 은 다음을 참조하세요.

온프레미스 배포에서 전체 텍스트 및 시맨틱 검색 과 같은 검색 기능을 활성화 하려면 MongoDB 검색 및 벡터 검색 프로세스 (mongot) 배포 이를 MongoDB database 배포서버 (mongod)와 연결해야 합니다. . mongot 배포는 선택 사항이며, 제공하는 검색 기능을 활용하려는 경우에만 필요합니다.

MongoDB 데이터베이스 프로세스(mongod)는 mongot에 대한 모든 검색 쿼리의 프록시 역할을 합니다. mongod 는 쿼리 mongot로 전달하고, 이 쿼리 처리합니다. mongot 는 쿼리 결과를 mongod에 반환한 다음 결과를 사용자에게 전달합니다. mongot와 직접 상호 작용 하지 않습니다.

mongot 프로세스 에는 데이터베이스 또는 다른 검색 노드와 공유되지 않는 자체 영구 볼륨이 있습니다. 저장소는 데이터베이스 에서 지속적으로 제공되는 데이터로 구축된 인덱스를 유지 관리하는 데 사용됩니다. 인덱스 정의(메타데이터)는 데이터베이스 자체에 저장됩니다.

mongot 는 다음 조치를 수행합니다.

  • 인덱스 관리합니다.

    mongot 는 데이터베이스 의 인덱스 정의를 업데이트하는 역할을 합니다.

  • 데이터베이스 에서 데이터를 가져옵니다.

    mongot 노드는 데이터베이스 에서 실시간 인덱스를 업데이트 위해 데이터베이스 에 대한 영구 연결을 설정합니다.

  • 검색 쿼리를 처리합니다.

    mongod$search, $searchMeta 또는 $vectorSearch 쿼리 수신하면 쿼리 mongot 노드 중 하나로 전달합니다. 쿼리 수신한 mongot 는 쿼리 처리하고 데이터를 집계한 다음 결과를 mongod에 반환하고, 이를 사용자에게 전달합니다.

mongot 구성 요소는 단일 MongoDB 복제본 세트 와 긴밀하게 결합되어 있으며 여러 데이터베이스 또는 복제본 세트에서 공유할 수 없습니다. 즉, 복제본 세트 배포서버 자체 전용 검색 노드가 있습니다.

mongotmongod 간의 네트워크 연결은 양방향으로 진행됩니다.

  • mongot 인덱스를 빌드 하고 쿼리를 실행 데 사용되는 데이터를 소싱하기 위해 복제본 세트 에 대한 연결을 설정합니다.

  • mongod mongot 에 연결하여 인덱스 관리 및 데이터 쿼리와 같은 검색 관련 작업을 전달합니다.

Kubernetes Operator의 유무에 관계없이 검색 배포서버 아키텍처 간에는 많은 차이점이 없습니다. Kubernetes Operator는 특히 데이터베이스 Kubernetes Operator에 의해 managed 경우, 완전히 작동하는 검색 노드를 배포 데 필요한 단계를 간소화합니다.

배포 하려면 Kubernetes Operator가 선택하여 mongot 파드 배포를 시작하고 spec에 지정된 영구 저장 요청하는 MongoDBSearch 사용자 지정 리소스(CR)를 적용 . Kubernetes Operator를 사용하여 배포된 MongoDB Search 및 Vector Search는 동일한 Kubernetes 클러스터 내부 또는 완전히 독립적인 외부 MongoDB database 내에 Kubernetes Operator가 배포한 MongoDB 복제본 세트 대상으로 할 수 있습니다. 사용할 mongot 를 배포 하고 구성하는 방법을 학습 :

  • Kubernetes 에 복제본 세트 MongoDB 복제본은 MongoDB Community Edition 으로 설치 및 사용 또는 MongoDB 엔터프라이즈 Edition으로 검색 설치 및 사용을 참조하세요.

  • 외부 MongoDB 복제본 세트, 외부 MongoDB 엔터프라이즈에서 MongoDB Search 설치 및 사용 및 Vector Search를 참조하세요.

MongoDB Search 및 Vector Search를 활용하려면 다음을 수행하세요.

  • MongoDB Community 배포서버 , Kubernetes Operator를 사용하여 Kubernetes 클러스터 내에 배포된 모든 기능을 갖춘 MongoDB 8.2+ 복제본 세트 있어야 합니다.

  • MongoDB Enterprise 배포서버, 다음 방법 중 하나로 완전히 작동하는 MongoDB 8.2+ 복제본 세트 배포되어 있어야 합니다.

    • Kubernetes Operator를 사용하는 Kubernetes 클러스터 내부

    • Kubernetes 클러스터 외부

  • Cloud Manager 또는 MongoDB Ops Manager 인스턴스

시작하기 전에 다음 사항을 고려하세요.

다음 표는 Kubernetes Operator가 자동으로 수행하는 구성 작업과 Kubernetes 에 MongoDB Search 및 Vector Search를 성공적으로 배포 하고 Kubernetes 의 MongoDB 복제본 세트 또는 외부 MongoDB 복제본 세트 에 연결하기 위해 수행해야 하는 조치를 보여줍니다.

작업
(Inside Kubernetes)
Performed by
(External MongoDB)
Performed by

Kubernetes 내에 MongoDB Ops Manager 배포

쿠버네티스 오퍼레이터

쿠버네티스 오퍼레이터

Kubernetes 외부에 Cloud Manager 또는 MongoDB Ops Manager 배포

you

you

MongoDB 복제본 세트 배포

쿠버네티스 오퍼레이터

you

MongoDBSearch 사용자 지정 리소스 만들기

you

you

MongoDB 복제본 세트 에 연결 문자열 제공

쿠버네티스 오퍼레이터

you

mongot 구성 YAML만들기

쿠버네티스 오퍼레이터

쿠버네티스 오퍼레이터

mongod 프로세스 에서 필요한 복제본 세트 매개변수를 설정합니다.

쿠버네티스 오퍼레이터

you

searchCoordinator 역할 로 mongot 에 대한 사용자 만들기

MongoDBUser 리소스 적용하여 Kubernetes Operator와 사용자

you

검색 쿼리 데 필요한 권한이 있는 사용자로 MongoDB 복제본 세트 구성합니다.

you

you

MongoDB Search 및 Vector Search 인덱스 생성

you

you

mongod 노드 에서 연결할 수 있도록 검색 파드를 외부에 노출합니다.

필요하지 않음

you

mongot 노드에서 연결할 수 있도록 mongod pod를 외부에 노출합니다.

필요하지 않음

you

다음 이미지는 mongot 프로세스 에 대한 보안 구성을 보여줍니다. MongoDB 서버 Kubernetes 클러스터 내부에 있는 경우, Kubernetes Operator는 MongoDB Search 및 Vector Search에 대한 키 파일 인증 자동으로 설정합니다. MongoDB 서버 외부 서버인 경우, 복제본 세트의 키 파일 자격 증명이 포함된 쿠버네티스 시크릿을 생성하고 이를 MongoDBSearch CR에서 참조해야 합니다.

검색 위한 키 파일 인증 및 TLS 구성을 보여주는 다이어그램입니다.
클릭하여 확대

mongot 프로세스 mTLS를 사용하여 mongod 연결을 인증합니다. TLS를 활성화 mongot 프로세스 MongoDB 서버의 TLS 인증서를 인증 위한 클라이언트 인증서로 사용합니다. 이 인증서는 mongot 이(가) 구성된 CA 인증서와 비교하여 확인됩니다. 인증 제대로 작동하려면 TLS를 활성화한 상태에서 mongotmongod 를 모두 구성해야 합니다.

동일한 Kubernetes 클러스터 내에서 MongoDB 리소스 인덱스 하도록 구성된 경우, Kubernetes 연산자는 mongod CA 인증서를 mongot 에 자동으로 전파하고 MongoDB 및 MongoDBSearch 리소스가 모두 TLS에 대해 구성된 경우 검색 쿼리 연결에 mTLS를 활성화합니다. MongoDB 복제본 세트 Kubernetes 외부에 배포된 경우 복제본 세트의 CA 인증서가 포함된 Kubernetes 시크릿을 생성하고 이를 MongoDBSearch.spec.source.external.tls.ca 필드 에서 참조하여 검색 쿼리 요청에 대해 mTLS 인증 활성화 해야 합니다.

MongoDBSearch는 TLS를 사용하여 전송 중인 데이터와 자격 증명 보호할 수 있습니다. 인덱스 관리 명령 및 검색 쿼리의{} spec.security.tls 경우 (빈 객체) 필드 지정하고 spec.security.tls.certificateKeySecretRef 필드 의 쿠버네티스 시크릿에 TLS 인증서를 제공합니다. 이 TLS 인증서는 MongoDB 복제본 세트 사용하는 CA 인증서를 발급한 동일한 CA에서 발급하고 서명해야 합니다.

MongoDBSearch와 MongoDB 가 모두 Kubernetes 연산자에 의해 배포된 경우, 기본 mongotmongod 구성은 대부분 Kubernetes 연산자 자체에서 처리됩니다. MongoDB 복제본 세트 Kubernetes 외부에 배포되는 경우 .spec.source.external.tls 필드 mongod 와 동일한 CA 인증서가 포함된 Kubernetes 시크릿으로 채워져야 하며, mongod 구성 자체에 searchTLSMode 매개 변수가 다음으로 설정하다 있어야 합니다. requireTLS.

이 페이지의 내용