Limitaciones
Las siguientes limitaciones existen para las implementaciones de MongoDB en clúster multi-Kubernetes:
Use versiones de Ops Manager posteriores a 5.0.7.
Usa solo secretos de Kubernetes para tu herramienta de almacenamiento de secretos. La herramienta de almacenamiento secreto HashiCorp Vault no es compatible.
Para las implementaciones en las que la misma instancia de Kubernetes operador no gestiona tanto los MongoDBOpsManager como los recursos personalizados de MongoDB, se debe configurar manualmente Configuración del cliente de cifrado de copia de seguridad KMIP en Ops Manager. Para obtener más información, consulta Configurar manualmente el cifrado de copias de seguridad KMIP.
No agregues un ServiceMonitor a tu
MongoDBMultiClusterrecurso. El Operador de Kubernetes no admite la integración con Prometheus.Puedes crear una nueva implementación de MongoDB en un clúster multi-Kubernetes y contactar a Soporte de MongoDB para que te ayuden a migrar datos de tu implementación actual de Kubernetes a una implementación de MongoDB en un clúster multi-Kubernetes. No puedes extender una implementación existente de clúster único de Kubernetes a nuevos clústeres de Kubernetes.
Capacidades de implementación multiclúster
Esta sección describe las capacidades de implementación de MongoDB en varios clústeres de Kubernetes que puedes configurar utilizando los mismos procedimientos que para clústeres individuales de recursos de MongoDB implementados con el Operador de Kubernetes. Otras capacidades de implementación de MongoDB en varios clústeres de Kubernetes tienen su propia documentación en esta guía.
Conéctese con los registros DNS SRV
Para conectarse a la base de datos de implementación de MongoDB de clúster múltiple de Kubernetes como usuario, puedes usar el connectionString.standardSrv: cadena de conexión de lista de nodos iniciales DNS. Esta string se incluye en el secreto que crea el operador de Kubernetes para su implementación de MongoDB de clúster múltiple de Kubernetes. Utiliza el mismo procedimiento para conectarte a la implementación de MongoDB de clúster múltiple de Kubernetes que para los clústeres individuales implementados con el Operador de Kubernetes. Consulta Conectar a un recurso de base de datos de MongoDB desde dentro de Kubernetes y selecciona la pestaña Using the Kubernetes Secret.
Gestione la seguridad para los usuarios de la base de datos
Utilice estos métodos para gestionar la seguridad de los usuarios de la base de datos:
Estos procedimientos son los mismos que los procedimientos para clústeres únicos implementados con el Operador de Kubernetes, con las siguientes excepciones:
Los procedimientos se aplican solo a conjuntos de réplicas. Las implementaciones de MongoDB en clústeres de Kubernetes múltiples no admiten la creación de clústeres con particionamiento horizontal.
En el
mongodbResourceRef, especifica el nombre del set de réplicas de la implementación MongoDB de clústeres múltiples de Kubernetes:name: "<my-multi-cluster-replica-set>".
Configura respaldos consultables para recursos de Ops Manager de un solo clúster
Si implementa una instancia de Ops Manager en un solo clúster de Kubernetes con el Operador de Kubernetes, el clúster que aloja el operador también puede hospedar Ops Manager. En este caso, puedes configurar respaldos consultables para los recursos de Ops Manager. Los respaldos consultables no son compatibles con la implementación de recursos de Ops Manager en múltiples clústeres de Kubernetes.
Arquitectura de implementación y diagramas
Puedes crear implementaciones de MongoDB en clústeres de Kubernetes múltiples con o sin depender de una malla de servicios. Para obtener más información, consulte Plan para la Conectividad Externa: ¿Debería utilizar una malla de control?
En ambos diagramas siguientes, MongoDB Enterprise Kubernetes Operator realiza estas acciones:
Monitorea la creación de la especificación del recurso
MongoDBMultiClusteren el clúster del operador.Usa el archivo
kubeconfigmontado para comunicarse con los nodos de clústeres.Crea los recursos necesarios, tales como ConfigMaps, Secrets, Services y objetos StatefulSet de Kubernetes en cada clúster nodo correspondiente al número de nodos del set de réplicas en el clúster de MongoDB.
Identifica el clúster para implementar cada set de réplicas de MongoDB utilizando la especificación de recursos correspondiente a
MongoDBMultiClustere implementa los set de réplicas de MongoDB.Supervisa los eventos
CentralClusteryMemberCluster.Reconciliar los recursos que creó para confirmar que la implementación multi-Kubernetes de MongoDB se encuentra en el estado deseado.
Una implementación de MongoDB en múltiples clústeres de Kubernetes que utiliza el Operador Empresarial de MongoDB para Kubernetes consta de un clúster de operador y uno o más clústeres nodo en Kubernetes:
El clúster de operadores tiene el siguiente rol:
Aloja el MongoDB Enterprise Kubernetes Operator
Actúa como el plano de control para la implementación multi-Kubernetes de MongoDB
Aloja la especificación de recursos
MongoDBMultiClusterpara el set de réplicas de MongoDB.Hospeda a Ops Manager, si implementas Ops Manager con Kubernetes operador
También puede alojar nodos del set de réplicas de MongoDB
Importante
El clúster de operadores también se conoce como clúster de operadores. Es posible que en futuras versiones se renombren las referencias al clúster del operador para referirse al clúster del operador.
Los nodos clústeres alojan los conjuntos de réplicas de MongoDB.
Tenga en cuenta que si el clúster del operador (también conocido como clúster del operador) falla, no puede utilizar el Operador de Kubernetes para cambiar su implementación hasta que restablezca el acceso a este clúster o hasta que vuelva a implementar el Operador de Kubernetes en otro clúster de Kubernetes disponible. Para obtener más información, consulta Recuperación ante desastres.
Diagrama: Implementación de clústeres múltiples de Kubernetes con un service mesh
El siguiente diagrama muestra la arquitectura de alto nivel de una implementación multi-clúster de MongoDB en múltiples regiones y zonas de disponibilidad. Esta implementación utiliza una malla de servicios, como Istio. La malla de servicios:
Gestiona el descubrimiento de nodos de MongoDB implementados en diferentes clústeres miembros de Kubernetes.
Gestiona la comunicación entre los miembros del conjunto de réplicas.
Puedes alojar tu aplicación en cualquiera de los clústeres miembros dentro del service mesh, tales como:
En clústeres de Kubernetes fuera de los que implementas con el Operador de Kubernetes, o
En los nodos clústeres en una implementación de MongoDB de múltiples clústeres de Kubernetes.
Diagrama: Implementación multiclúster de Kubernetes sin un Service Mesh
El siguiente diagrama muestra la arquitectura de alto nivel de una implementación multi-clúster de MongoDB en múltiples regiones y zonas de disponibilidad. Esta implementación no depende de una "service mesh" para la conectividad entre los clústeres de Kubernetes que alojan Pods con instancias de MongoDB.
Para gestionar la comunicación externa entre los miembros del set de réplicas de MongoDB alojados en Pods en clústeres distintos de Kubernetes, utilice dominios externos y zonas DNS.
Puedes alojar tu aplicación en cualquiera de los clústeres nodos.