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

Conectar a um recurso de banco de dados MongoDB de fora do Kubernetes

O procedimento a seguir descreve como se conectar a um recurso do MongoDB distribuído em Kubernetes a partir de fora do cluster de Kubernetes.

Para que seus bancos de dados sejam acessados fora do Kubernetes, eles devem executar o MongoDB 4.2.3 ou posterior.

Se você criar serviços personalizados que exijam acesso externo aos recursos personalizados do MongoDB implantados pelo Kubernetes Operator, e usar testes de prontidão no Kubernetes, defina a configuração publishNotReadyAddresses no Kubernetes como true.

A configuração publishNotReadyAddresses indica que um agente que interage com endpoints para este serviço deve desconsiderar o estado pronto do serviço. A definição de publishNotReadyAddresses como true substitui o comportamento do teste de preparação configurado para o Pod que hospeda seu serviço.

Por padrão, a configuração publishNotReadyAddresses é definida como false. Nesse caso, quando os Pods que hospedam os recursos personalizados do MongoDB no Operador de Kubernetes perdem a conectividade com o Cloud Manager ou o Ops Manager, os testes de preparação configurados para esses Pods falham. No entanto, quando você define a configuração publishNotReadyAddresses como true:

  • O Kubernetes não desliga o serviço cuja análise de prontidão falha.

  • O Kubernetes considera todos os endpoints como prontos, mesmo que os testes dos Pods que hospedam os serviços desses endpoints indiquem que eles não estão prontos.

  • Os recursos personalizados do MongoDB ainda estão disponíveis para operações de leitura e gravação.

O procedimento a seguir orienta você pelo processo de configuração da conectividade externa para sua implementação usando as opções de configuração internas no Operador Kubernetes.

A forma como você se conecta a um recurso do MongoDB que o Operador de Kubernetes distribuiu de fora do cluster do Kubernetes depende do recurso.

Para conectar-se ao standalone do MongoDB implantado pelo operador Kubernetes de fora do cluster do Kubernetes:

1

Se você não tiver implantado um recurso autônomo, siga as instruções para implantar um.

Este procedimento usa o seguinte exemplo:

20---
21apiVersion: mongodb.com/v1
22kind: MongoDB
23metadata:
24 name: <my-standalone>
25spec:
26 version: "8.0.0"
27 opsManager:
28 configMapRef:
29 name: <configMap.metadata.name>
30 # Must match metadata.name in ConfigMap file
31 credentials: <mycredentials>
32 type: Standalone
33...
2

Para se conectar ao standalone a partir de um recurso externo, configure o spec.externalAccess contexto:

externalAccess: {}

Essa configuração instrui o Kubernetes Operator a criar um serviço externo do LoadBalancer para o pod do MongoDB em seu recurso autônomo . O serviço externo fornece um ponto de entrada para conexões externas. Adicionar esta configuração sem valores cria um serviço externo com os seguintes valores-padrão:

Campo
Valor
Descrição

Name

<pod-name>-svc-external

Nome do serviço externo. Não é possível alterar este valor.

Type

LoadBalancer

Cria um LoadBalancer externo serviço.

Port

<Port Number>

Uma porta para mongod.

publishNotReadyAddress

true

Especifica que registros DNS são criados mesmo que o Pod não esteja pronto. Não defina como false para nenhum pod de banco de dados .

Como opção, para adicionar valores ao serviço ou substituir os valores padrão, especifique:

Por exemplo, as seguintes configurações substituem os valores padrão do serviço externo para configurar seu standalone para criar serviços NodePort que expõem o pod MongoDB:

externalAccess:
externalService:
annotations:
# cloud-specific annotations for the service
spec:
type: NodePort # default is LoadBalancer
port: 27017
# you can specify other spec overrides if necessary

Dica

Para saber mais,consulte anotações e ServiceSpec na documentação do Kubernetes.

3

Em seu recurso independente, execute o seguinte comando para verificar se o Kubernetes Operator criou o serviço externo para sua implantação.

$ kubectl get services

O comando retorna uma lista de serviços semelhantes à seguinte saída. Para cada Pod de banco de dados no cluster, o Operador Kubernetes cria um serviço externo chamado <pod-name>-0-svc-external. Esse serviço é configurado de acordo com os valores e substituições fornecidos na especificação de serviço externo.

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
<my-standalone>-0-svc-external LoadBalancer 10.102.27.116 <lb-ip-or-fqdn> 27017:27017/TCP 8m30s

Dependendo da configuração do cluster ou do provedor de serviços em nuvem, o endereço IP do serviço LoadBalancer é um endereço IP ou FQDN externamente acessível. Você pode usar o endereço IP ou FQDN para rotear o tráfego do seu domínio externo.

4

Para se conectar à sua implantação de fora do cluster do Kubernetes, use o MongoDB Shell (mongosh) e especifique o endereço do MongoDB Pod que você expôs através do domínio externo.

Exemplo

Se você tiver um FQDN externo de <my-standalone>.<external-domain>, poderá se conectar a essa instância de cluster fragmentado de fora do cluster Kubernetes usando o seguinte comando:

mongosh "mongodb://<my-standalone>.<external-domain>"