Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Conéctese a un recurso de base de datos MongoDB desde fuera de Kubernetes

El siguiente procedimiento describe cómo conectarse a un recurso MongoDB desplegado en Kubernetes desde fuera del clúster de Kubernetes.

Para que tus bases de datos sean accesibles fuera de Kubernetes, deben ejecutar MongoDB 4.2.3 o una versión posterior.

Si creas servicios personalizados que requieren acceso externo a recursos personalizados de MongoDB implementados por el operador de Kubernetes y usas readiness probes en Kubernetes, configura el ajuste publishNotReadyAddresses en Kubernetes a true.

La configuración publishNotReadyAddresses indica que un agente que interactúa con los puntos finales de este servicio debe ignorar el estado de disponibilidad del servicio. Al establecer publishNotReadyAddresses en true, se anula el comportamiento de la sonda de disponibilidad configurada para el Pod que aloja su servicio.

Por defecto, la configuración publishNotReadyAddresses está establecida en false. En este caso, cuando los Pods que alojan los recursos personalizados de MongoDB en Kubernetes Operator pierden conectividad con Cloud Manager u Ops Manager, las pruebas de disponibilidad configuradas para estos Pods fallan. Sin embargo, cuando se define el ajuste publishNotReadyAddresses a true:

  • Kubernetes no apaga el servicio cuya prueba de preparación falla.

  • Kubernetes considera que todos los puntos finales están listos, incluso si las comprobaciones de los Pods que alojan los servicios para estos puntos finales indican que no lo están.

  • Los recursos personalizados de MongoDB aún están disponibles para operaciones de lectura y escritura.

Tip

El siguiente procedimiento te guía a través del proceso de configuración de la conectividad externa para tu implementación utilizando las opciones de configuración incorporadas en el Operador de Kubernetes.

La forma en que se conecta a un recurso de MongoDB que el operador de Kubernetes implementó fuera del clúster de Kubernetes depende del recurso.

Para conectarse a su recurso MongoDB autónomo implementado por el Operador de Kubernetes desde fuera del clúster de Kubernetes:

1

Si no has implementado un recurso autónomo, sigue las instrucciones para implementar uno.

Este procedimiento utiliza el siguiente ejemplo:

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 conectarse a su recurso autónomo desde un recurso externo, configure el spec.externalAccess entorno:

externalAccess: {}

Esta configuración indica al operador de Kubernetes que cree un servicio LoadBalancer externo para el pod de MongoDB en su recurso independiente. El servicio externo proporciona un punto de entrada para las conexiones externas. Si se agrega esta configuración sin valores, se crea un servicio externo con los siguientes valores predeterminados:

Campo
Valor
Descripción

Name

<pod-name>-svc-external

Nombre del Servicio externo. No puedes cambiar este valor.

Type

LoadBalancer

Crea un servicio LoadBalancer externo.

Port

<Port Number>

Un puerto para mongod.

publishNotReadyAddress

true

Especifica que los registros DNS se crean incluso si el Pod no está listo. No lo configure en false para ningún Pod de base de datos.

Opcionalmente, si necesitas agregar valores al servicio o sobrescribir los valores por defecto, especifica:

Por ejemplo, los siguientes ajustes anulan los valores por defecto para el servicio externo para configurar su recurso autónomo para crear servicios NodePort que exponen el 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

Tip

Para obtener más información, consulte las anotaciones y ServiceSpec en la documentación de Kubernetes.

3

En tu recurso autónomo, ejecuta el siguiente comando para verificar que el Operador de Kubernetes haya creado el servicio externo para tu implementación.

$ kubectl get services

El comando devuelve una lista de servicios similar a la salida siguiente. Para cada pod de base de datos en el clúster, el Operador de Kubernetes crea un servicio externo llamado <pod-name>-0-svc-external. Este servicio está configurado según los valores y sobrescrituras que usted proporcione en la especificación del servicio 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

Dependiendo de la configuración de su clúster o proveedor de nube, la dirección IP del servicio LoadBalancer es una dirección IP accesible externamente o FQDN. Puedes utilizar la dirección IP o FQDN para enrutar el tráfico desde tu dominio externo.

4

Para conectarte a tu implementación desde fuera del clúster de Kubernetes, utiliza MongoDB Shell (mongosh) y especifica la dirección del Pod de MongoDB que has expuesto a través del dominio externo.

Ejemplo

Si tiene un FQDN externo de <my-standalone>.<external-domain>, puede conectarse a esta instancia de clúster fragmentado desde fuera del clúster de Kubernetes utilizando el siguiente comando:

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