Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Instalação e uso Com o MongoDB Community Edition

Você pode usar o Kubernetes Operator e implantar os recursos de processo mongot para serem executados com o MongoDB Community Edition v8.2.0 ou superior em um cluster Kubernetes. O processo mongot suporta MongoDB Search e pesquisa vetorial. O procedimento a seguir demonstra como implantar e configurar o MongoDB Search e a pesquisa vetorial para serem executados com um conjunto de réplicas novo ou existente no cluster do Kubernetes.

Para implantar o MongoDB Search e o Vector Search, você deve ter o seguinte:

  • Um cluster Kubernetes em execução.

  • A ferramenta de linha de comando do Kubernetes, kubectl, configurada para se comunicar com seu cluster.

  • Helm, o gerenciador de pacote do Kubernetes, para instalar o Operador Kubernetes.

  • Bash v5.1 ou superior para executar os comandos neste tutorial.

1

Para definir as variáveis de ambiente para uso nas etapas subsequentes deste procedimento, copie o seguinte, defina os valores para as variáveis de ambiente e carregue as variáveis de ambiente:

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

O Helm automatiza a implantação e o gerenciamento de instâncias do MongoDB no Kubernetes. Se você já tiver o repositório Helm que contém o gráfico Helm para instalar o operador Kubernetes, ou pule esta etapa. Caso contrário, adicione o repositório Helm.

Para adicionar o repositório Helm, copie, cole e execute o seguinte:

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

O Operador Kubernetes observa MongoDBCommunity e MongoDBSearch recursos personalizados e gerencia o ciclo de vida de suas implantações do MongoDB . Se você já instalou os Controladores MongoDB para Kubernetes operador, pule esta etapa. Caso contrário, instale os Controladores MongoDB para operador Kubernetes a partir do repositório Helm que você adicionou na etapa anterior.

Para instalar os Controladores MongoDB para o operador Kubernetes no namespace mongodb, copie, cole e execute os seguintes comandos:

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

O MongoDB requer autenticação para acesso seguro. Nesta etapa, você cria três segredos do Kubernetes:

  • mdb-admin-user-password: Credenciais do administrador do MongoDB .

  • mdb-user-password: Credenciais do usuário autorizado a realizar queries de pesquisa.

  • mdbc-rs-search-sync-source-password: Credenciais para um usuário de pesquisa dedicado utilizado internamente pelo processo do mongot para sincronizar dados e gerenciar índices.

O Kubernetes operador usa senhas desses segredos para criar automaticamente os usuários no banco de dados MongoDB.

Para criar os segredos, copie, cole e execute o seguinte comando:

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

Se você já tiver implantado a MongoDB Community Edition, pule esta etapa. Caso contrário, implante o MongoDB Community Edition.

Para implantar a MongoDB Community Edition, complete as seguintes etapas:

  1. Crie um recurso personalizado do MongoDBCommunity denominado mdb-rs.

    O recurso define os recursos de memória e CPU para os contêineres mongod e mongodb-agent e configura os três usuários a seguir:

    mdb-user

    Usuário que pode restaurar banco de dados e executar query de pesquisa. Este usuário utiliza o segredo mdb-user-password para executar estas operações.

    search-sync-source

    Usuário que o MongoDB Pesquisa usa para se conectar ao banco de dados MongoDB para gerenciar e construir índices. Este usuário usa a função searchCoordinator que o operador Kubernetes cria. Isso usa o segredo mdbc-rs-search-sync-source-password para conectar mongot a mongod.

    admin-user

    Usuário administrador do banco de dados.

    O operador Kubernetes utiliza este recurso para configurar um conjunto de réplicas MongoDB com 3 membros.

    Para criar os segredos, copie, cole e execute os seguintes comandos:

    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. Aguarde a conclusão do sistema de recursos MongoDBCommunity.

    Quando você aplica o recurso personalizado do MongoDBCommunity, o operador Kubernetes começa a distribuir os nós MongoDB (Pods). Essa etapa pausa a execução até que a fase de status do recurso mdbc-rs seja Running, o que indica que o conjunto de réplicas da MongoDB Community está operacional.

    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

Você pode implementar uma instância do nó de pesquisa sem nenhum balanceamento de carga. Para implantar, conclua as seguintes etapas:

  1. Crie um recurso personalizado do MongoDBSearch denominado mdbc-rs.

    Este recurso especifica os requisitos de recursos de CPU e memória para os nós de pesquisa. Para saber mais sobre as configurações neste recurso personalizado, consulte Configurações de pesquisa do MongoDB e Vector Search.

    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. Aguarde a conclusão do sistema de recursos MongoDBSearch.

    Quando você aplica o recurso personalizado do MongoDBSearch, o operador do Kubernetes começa a implantar os nós de pesquisa (Pods). Essa etapa pausa a execução até que a fase de status do recurso mdbc-rs MongoDBSearch seja Running, o que indica que a MongoDB pesquisa está operacional.

    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

Certifique-se de que a implantação do recurso MongoDBCommunity com MongoDBSearch tenha sido bem-sucedida.

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

Visualize todos os pods em execução nos pods do seu namespace para os nós do conjunto de réplicas do MongoDB , o operador do MongoDB Controladores for Kubernetes e os nós de pesquisa.

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

Agora que você implantou com sucesso o MongoDB Search e a pesquisa vetorial para usar com o MongoDB Community Edition, adicione dados ao cluster MongoDB, crie índices de pesquisa do MongoDB Search e de pesquisa vetorial e execute queries em seus dados. Para saber mais, consulte Use pesquisa do MongoDB e pesquisa vetorial.