Kubernetes Operator용 MongoDB 컨트롤러를 사용하여 MongoDB v8.0 이상과 함께 MongoDB Search 및 Vector Search를 배포 할 수 있습니다.
리소스 사양 예시
다음 예시 spec
MongoDB Search 및 Vector Search 배포서버 위한 객체 내부의 설정을 보여줍니다. 이러한 설정에 대해 자세히 학습 필수 설정 및 선택적 설정을 참조하세요.
예시
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
필수 설정
이 섹션에서는 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
또는MongoDBCommunity
CRD 와 함께 Kubernetes Operator를 사용하여 복제본 세트 배포하고 이 비어spec.source
있는 경우, Kubernetes Operator는 에 따라 다음을 사용하여metadata.name
Kubernetes 에서 데이터베이스 찾습니다.동일한 네임스페이스 에서
MongoDBSearch
의metadata.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
유형: 문자열
mongod
를mongot
에 인증하는 데 사용되는 키 파일의 이름입니다. 지정된 시크릿 이름에는 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 설정입니다. 생략하면 는
mongot
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
문자열
마운트해야 하는 영구 볼륨 의 최소 크기입니다. 이 값은 정수 뒤에 JEDEC 표기법으로 저장 단위를 붙여 표현합니다.
기본값은 16Gi입니다.
storageClass
문자열
영구 볼륨 클레임에 지정된 저장 유형입니다. 이 저장 유형을 StorageClass 객체로 생성한 후 이 객체 사양에서 사용할 수 있습니다.
StorageClass
reclaimPolicy
를 Retain 으로 설정하다 해야 합니다. 이렇게 하면 영구 볼륨 클레임 이 제거될 때 데이터가 유지됩니다.MongoDBSearch
single
지속성 필드 만 지원합니다. 생략하면 Kubernetes Operator가spec.persistence.single.storage
을10GB
로 설정합니다.
spec.version
유형: 문자열
mongodb-search
Docker 이미지의 버전입니다. 생략하면 Kubernetes Operator가 자동으로MongoDBSearch
의 최신 버전을 선택합니다. Kubernetes Operator 버전 업그레이드 시 자동 업그레이드를 방지하도록 명시적으로 설정하다 수 있습니다.
spec.statefulSet
파드 배포를 위해 생성된 StatefulSet 에
mongot
대한 사양으로, Kubernetes 연산자가 적용하는 설정을 덮어씁니다. 재정의는 항상 마지막에 적용됩니다.spec.statefulSet.spec
및spec.statefulSet.metadata
필드를 모두 지원합니다.참고
spec.statefulSet
을(를) 사용하여 리소스 요구 사항 또는 지속성 설정을 설정하다 하지 마세요. 대신spec.resourceRequirements
및spec.persistence
필드를 각각 사용합니다.