AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

MongoDB Community Edition 과 함께 설치 및 사용

Kubernetes Operator를 사용하고 mongot 프로세스 리소스를 배포 Kubernetes 클러스터 에서 MongoDB Community Edition v8.2.0 이상으로 실행 수 있습니다. mongot 프로세스 MongoDB Search 검색 Vector Search를 모두 지원합니다. 다음 절차는 Kubernetes 클러스터 의 신규 또는 기존 복제본 세트 와 함께 실행 되도록 MongoDB Search 및 Vector Search를 배포 하고 구성하는 방법을 보여줍니다.

MongoDB Search 및 Vector Search를 배포 하려면 다음이 필요합니다.

  • 실행 중인 Kubernetes 클러스터.

  • Kubernetes 명령줄 도구인 kubectl이(가) 클러스터 와 통신하도록 구성되었습니다.

  • 이 튜토리얼의 명령을 실행 하려면 Bash v5.1 이상을 사용해야 합니다.

1

이 절차의 후속 단계에서 사용할 환경 변수를 설정하다 하려면 다음을 복사하고 환경 변수의 값을 설정하다 다음 환경 변수를 로드합니다.

1# set it to the context name of the k8s cluster
2export K8S_CTX="<local cluster context>"
3
4# the following namespace will be created if not exists
5export MDB_NS="mongodb"
6
7# minimum required MongoDB version for running MongoDB Search is 8.2.0
8export MDB_VERSION="8.2.0"
9
10# root admin user for convenience, not used here at all in this guide
11export MDB_ADMIN_USER_PASSWORD="admin-user-password-CHANGE-ME"
12# regular user performing restore and search queries on sample mflix database
13export MDB_USER_PASSWORD="mdb-user-password-CHANGE-ME"
14# user for MongoDB Search to connect to the replica set to synchronise data from
15export MDB_SEARCH_SYNC_USER_PASSWORD="search-sync-user-password-CHANGE-ME"
16
17export OPERATOR_HELM_CHART="mongodb/mongodb-kubernetes"
18# comma-separated key=value pairs for additional parameters passed to the helm-chart installing the operator
19export OPERATOR_ADDITIONAL_HELM_VALUES=""
20
21export MDB_CONNECTION_STRING="mongodb://mdb-user:${MDB_USER_PASSWORD}@mdbc-rs-0.mdbc-rs-svc.${MDB_NS}.svc.cluster.local:27017/?replicaSet=mdbc-rs"
2

Helm 은 Kubernetes 에서 MongoDB 인스턴스의 배포서버 및 관리 자동화합니다. Kubernetes 연산자 연산자 설치를 위한 Helm 차트 포함된 Helm 리포지토리 이미 있는 경우 이 단계를 건너뛰세요. 그렇지 않으면 Helm 리포지토리 추가합니다.

Helm 리포지토리 추가하려면 다음을 복사하여 붙여넣고 실행 .

1helm repo add mongodb https://mongodb.github.io/helm-charts
2helm repo update mongodb
3helm search repo mongodb/mongodb-kubernetes
3

Kubernetes Operator는 MongoDBCommunity 및 MongoDBSearch 사용자 지정 리소스를 감시하고 MongoDB deployment의 수명 주기를 관리합니다. Kubernetes 연산자용 MongoDB 컨트롤러를 이미 설치한 경우 이 단계를 건너뛰세요. 그렇지 않으면 이전 단계에서 추가한 Helm 리포지토리 에서 Kubernetes Operator용 MongoDB 컨트롤러를 설치합니다.

mongodb 네임스페이스 에 Kubernetes Operator용 MongoDB 컨트롤러를 설치하려면 다음 명령을 복사하여 붙여넣고 실행 .

1helm upgrade --install --debug --kube-context "${K8S_CTX}" \
2 --create-namespace \
3 --namespace="${MDB_NS}" \
4 mongodb-kubernetes \
5 ${OPERATOR_ADDITIONAL_HELM_VALUES:+--set ${OPERATOR_ADDITIONAL_HELM_VALUES}} \
6 "${OPERATOR_HELM_CHART}"
4

MongoDB 보안 액세스 위해 인증 필요합니다. 이 단계에서는 세 개의 Kubernetes 시크릿을 생성합니다.

  • mdb-admin-user-password: MongoDB 관리자의 자격 증명입니다.

  • mdb-user-password: 검색 쿼리를 수행할 수 있는 권한이 있는 사용자의 자격 증명입니다.

  • mdbc-rs-search-sync-source-password: mongot 프로세스 에서 데이터를 동기화하고 인덱스를 관리 위해 내부적으로 사용하는 검색 전용 사용자에 대한 자격 증명입니다.

Kubernetes Operator는 해당 시크릿의 비밀번호를 사용하여 MongoDB database 에 사용자를 자동으로 생성합니다.

시크릿을 생성하려면 다음 명령을 복사하여 붙여넣고 실행 .

1kubectl --context "${K8S_CTX}" --namespace "${MDB_NS}" \
2 create secret generic mdb-admin-user-password \
3 --from-literal=password="${MDB_ADMIN_USER_PASSWORD}"
4
5kubectl --context "${K8S_CTX}" --namespace "${MDB_NS}" \
6 create secret generic mdbc-rs-search-sync-source-password \
7 --from-literal=password="${MDB_SEARCH_SYNC_USER_PASSWORD}"
8
9kubectl --context "${K8S_CTX}" --namespace "${MDB_NS}" \
10 create secret generic mdb-user-password \
11 --from-literal=password="${MDB_USER_PASSWORD}"
5

이미 MongoDB Community Edition 배포한 경우 이 단계를 건너뛰세요. 그렇지 않으면 MongoDB Community Edition 배포 .

MongoDB Community Edition 배포 하려면 다음 단계를 완료하세요.

  1. mdb-rs(이)라는 MongoDBCommunity 사용자 지정 리소스 만듭니다.

    리소스 mongod 및 mongodb-agent 컨테이너에 대한 CPU 및 메모리 리소스를 정의하고 다음 세 사용자를 설정합니다.

    mdb-user

    데이터베이스 복원 하고 검색 쿼리를 실행 수 있는 사용자입니다. 이 사용자는 mdb-user-password 시크릿을 사용하여 이러한 작업을 수행합니다.

    search-sync-source

    MongoDB Search가 인덱스를 관리 하고 빌드 위해 MongoDB database 에 연결하는 데 사용하는 사용자입니다. 이 사용자는 Kubernetes 연산자 생성하는 searchCoordinator 역할 사용합니다. 이는 mdbc-rs-search-sync-source-password 시크릿을 사용하여 mongot 를 mongod에 연결합니다.

    admin-user

    데이터베이스 관리자 사용자입니다.

    Kubernetes Operator는 이 리소스 사용하여 3 멤버로 MongoDB 복제본 세트 구성합니다.

    시크릿을 생성하려면 다음 명령을 복사하여 붙여넣고 실행 .

    1kubectl apply --context "${K8S_CTX}" -n "${MDB_NS}" -f - <<EOF
    2apiVersion: mongodbcommunity.mongodb.com/v1
    3kind: MongoDBCommunity
    4metadata:
    5 name: mdbc-rs
    6spec:
    7 version: ${MDB_VERSION}
    8 type: ReplicaSet
    9 members: 3
    10 security:
    11 authentication:
    12 ignoreUnknownUsers: true
    13 modes:
    14 - SCRAM
    15 agent:
    16 logLevel: DEBUG
    17 statefulSet:
    18 spec:
    19 template:
    20 spec:
    21 containers:
    22 - name: mongod
    23 resources:
    24 limits:
    25 cpu: "2"
    26 memory: 2Gi
    27 requests:
    28 cpu: "1"
    29 memory: 1Gi
    30 - name: mongodb-agent
    31 resources:
    32 limits:
    33 cpu: "1"
    34 memory: 2Gi
    35 requests:
    36 cpu: "0.5"
    37 memory: 1Gi
    38 users:
    39 # admin user with root role
    40 - name: mdb-admin
    41 db: admin
    42 # a reference to the secret containing user password
    43 passwordSecretRef:
    44 name: mdb-admin-user-password
    45 scramCredentialsSecretName: mdb-admin-user
    46 roles:
    47 - name: root
    48 db: admin
    49 # user performing search queries
    50 - name: mdb-user
    51 db: admin
    52 # a reference to the secret containing user password
    53 passwordSecretRef:
    54 name: mdb-user-password
    55 scramCredentialsSecretName: mdb-user-scram
    56 roles:
    57 - name: restore
    58 db: sample_mflix
    59 - name: readWrite
    60 db: sample_mflix
    61 # user used by MongoDB Search to connect to MongoDB database to
    62 # synchronize data from.
    63 # For MongoDB <8.2, the operator will be creating the
    64 # searchCoordinator custom role automatically.
    65 # From MongoDB 8.2, searchCoordinator role will be a
    66 # built-in role.
    67 - name: search-sync-source
    68 db: admin
    69 # a reference to the secret that will be used to generate the user's password
    70 passwordSecretRef:
    71 name: mdbc-rs-search-sync-source-password
    72 scramCredentialsSecretName: mdbc-rs-search-sync-source
    73 roles:
    74 - name: searchCoordinator
    75 db: admin
    76EOF
  2. MongoDBCommunity 리소스 배포서버 완료될 때까지 기다립니다.

    MongoDBCommunity 사용자 지정 리소스 적용 Kubernetes 연산자 MongoDB 노드(포드) 배포를 시작합니다. 이 단계에서는 mdbc-rs 리소스의 상태 단계가 Running가 되어 MongoDB Community 복제본 세트 작동 가능함을 나타낼 때까지 실행을 일시 중지합니다.

    1echo "Waiting for MongoDBCommunity resource to reach Running phase..."
    2kubectl --context "${K8S_CTX}" -n "${MDB_NS}" wait \
    3 --for=jsonpath='{.status.phase}'=Running mdbc/mdbc-rs --timeout=400s
    4echo; echo "MongoDBCommunity resource"
    5kubectl --context "${K8S_CTX}" -n "${MDB_NS}" get mdbc/mdbc-rs
    6echo; echo "Pods running in cluster ${K8S_CTX}"
    7kubectl --context "${K8S_CTX}" -n "${MDB_NS}" get pods
6

로드 밸런싱 없이 검색 노드 의 인스턴스 하나를 배포 할 수 있습니다. 배포 하려면 다음 단계를 완료하세요.

  1. mdbc-rs(이)라는 MongoDBSearch 사용자 지정 리소스 만듭니다.

    이 리소스 검색 노드에 대한 CPU 및 메모리 리소스 요구 사항을 지정합니다. 이 사용자 지정 리소스 의 설정에 대해 자세히 학습하려면 MongoDB 검색 및 벡터 검색 설정을 참조하세요.

    1kubectl apply --context "${K8S_CTX}" -n "${MDB_NS}" -f - <<EOF
    2apiVersion: mongodb.com/v1
    3kind: MongoDBSearch
    4metadata:
    5 name: mdbc-rs
    6spec:
    7 resourceRequirements:
    8 limits:
    9 cpu: "3"
    10 memory: 5Gi
    11 requests:
    12 cpu: "2"
    13 memory: 3Gi
    14EOF
  2. MongoDBSearch 리소스 배포서버 완료될 때까지 기다립니다.

    MongoDBSearch 사용자 지정 리소스 적용 하면 Kubernetes 연산자 검색 노드(pod) 배포를 시작합니다. 이 단계에서는 mdbc-rs MongoDBSearch 리소스의 상태 단계가 Running가 되어 MongoDB Search가 작동 가능함을 나타낼 때까지 실행을 일시 중지합니다.

    1echo "Waiting for MongoDBSearch resource to reach Running phase..."
    2kubectl --context "${K8S_CTX}" -n "${MDB_NS}" wait \
    3 --for=jsonpath='{.status.phase}'=Running mdbs/mdbc-rs --timeout=300s
7

MongoDBSearch 을 사용한 MongoDBCommunity 리소스 배포서버 성공적인 했는지 확인합니다.

1echo "Waiting for MongoDBCommunity resource to reach Running phase..."
2kubectl --context "${K8S_CTX}" -n "${MDB_NS}" wait \
3 --for=jsonpath='{.status.phase}'=Running mdbc/mdbc-rs --timeout=400s
8

네임스페이스 파드에서 MongoDB 복제본 세트 멤버, Kubernetes Operator용 MongoDB 컨트롤러 및 검색 노드에 대해 실행 모든 파드를 확인합니다.

1echo; echo "MongoDBCommunity resource"
2kubectl --context "${K8S_CTX}" -n "${MDB_NS}" get mdbc/mdbc-rs
3echo; echo "MongoDBSearch resource"
4kubectl --context "${K8S_CTX}" -n "${MDB_NS}" get mdbs/mdbc-rs
5echo; echo "Pods running in cluster ${K8S_CTX}"
6kubectl --context "${K8S_CTX}" -n "${MDB_NS}" get pods

이제 MongoDB Community Edition 과 함께 사용할 MongoDB Search 및 Vector Search를 성공적으로 배포했으므로, MongoDB cluster 에 데이터를 추가하고, MongoDB Search 및 Vector Search 인덱스를 생성하고, 데이터에 대해 쿼리를 실행 . 자세히 학습하려면 MongoDB 검색 및 벡터 검색 사용을 참조하세요.

이 페이지 평가하기

이 페이지의 내용