Limitaciones
Las siguientes limitaciones existen para las implementaciones de MongoDB en clúster multi-Kubernetes:
Utilice versiones de Ops Manager posteriores a 5.0.7.
Utilice únicamente Kubernetes secretos para tu herramienta de almacenamiento secreto. La herramienta de almacenamiento secreto HashiCorp Vault no es compatible.
Para las implementaciones en las que la misma instancia de operador de Kubernetes no administra ambas MongoDBOpsManager y MongoDB recursos personalizados, debes 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 agregue un ServiceMonitor a su
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.
Administrar la seguridad de los usuarios de la base de datos
Configura respaldos consultables para recursos de Ops Manager de un solo clúster
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.
Administrar la seguridad de 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 únicamente a conjuntos de réplicas. Las implementaciones de MongoDB en clústeres multi-Kubernetes no admiten la creación de clústeres fragmentados.
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 podría alojar Ops Manager. En este caso, puede configurar copias de seguridad consultables para los recursos de Ops Manager. Las copias de seguridad consultables no se admiten en implementaciones de recursos de Ops Manager en varios 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, los controladores MongoDB para el operador de Kubernetes realizan estas acciones:
Monitorea la creación de la especificación del recurso
MongoDBMultiClusteren el clúster del operador.Utiliza el archivo
kubeconfigmontado para comunicarse con los clústeres miembros.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 multi-Kubernetes clúster MongoDB que utiliza los Controladores MongoDB para el operador Kubernetes consiste en un clúster operador y uno o más nodos clúster en Kubernetes:
El clúster de operadores tiene la siguiente función:
Aloja los controladores MongoDB para el operador Kubernetes
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 central también se conoce como el clúster del operador. Es posible que en futuras versiones, las referencias al clúster central sean renombradas 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:
Administra el descubrimiento de nodos 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.
Puede alojar su aplicación en cualquiera de los clústeres miembros.