Descripción general de la arquitectura de los controladores de MongoDB para operadores de Kubernetes
El operador de controladores de MongoDB para Kubernetes es un controlador de Kubernetes que extiende la API de Kubernetes con definiciones de recursos personalizados (CRD) para implementaciones de bases de datos MongoDB y Ops Manager. Es fundamental comprender cómo se asignan estos recursos personalizados a las primitivas de Kubernetes, cómo el operador de Kubernetes concilia los cambios y cómo se conectan los componentes entre sí antes de planificar su primera implementación.
Esta sección abarca la arquitectura de cada recurso que gestiona el Operador de Kubernetes, desde una implementación independiente de un solo clúster hasta una topología de Ops Manager de varios clústeres con infraestructura de respaldo.
Descripción general del operador
El operador de Kubernetes se ejecuta como un despliegue en un espacio de nombres dedicado. Supervisa los recursos personalizados de tipo MongoDB, MongoDBOpsManager, MongoDBUser y MongoDBMultiCluster. Cuando crea o actualiza uno de estos recursos, el operador de Kubernetes lee la especificación, la valida y concilia los objetos de Kubernetes (StatefulSets, Services, Secrets, ConfigMaps) necesarios para que el estado real coincida con el estado declarado.
El operador de Kubernetes proporciona una imagen de contenedor para el agente de MongoDB en Ops Manager, lo que permite administrar e implementar clústeres de bases de datos MongoDB con supervisión completa, copias de seguridad y automatización. El contenedor de Kubernetes actúa como host donde Ops Manager orquesta la instalación de los procesos mongod e implementa la configuración del clúster.
Como parte del despliegue, el operador de Kubernetes crea PersistentVolumes para los StatefulSets. Los contenedores utilizan estos PersistentVolumes para mantener el estado del clúster entre reinicios.
El siguiente diagrama ilustra el flujo de configuración de una instancia de Kubernetes mediante el operador de Kubernetes:
La arquitectura del operador de Kubernetes consta de dos familias de recursos principales:
La
MongoDBOpsManagerRecurso personalizado, mediante el cual el operador de Kubernetes implementa los componentes de Ops Manager: la base de datos de la aplicación, la aplicación Ops Manager y el demonio de copia de seguridad. Una vez que la implementación está operativa, los componentes de Ops Manager concilian las actualizaciones que realice en la configuración del clúster de MongoDB. Para obtener más información, consulte la arquitectura de recursos de Ops Manager.La
MongoDBRecurso personalizado, mediante el cual el operador de Kubernetes implementa instancias de base de datos (independientes, conjuntos de réplicas o clústeres fragmentados) y losMongoDBUserrecursos. Tras la implementación, estos recursos concilian las actualizaciones que realice en la configuración del usuario o del clúster de MongoDB. Para obtener más información, consulte la Arquitectura de recursos de la base de datos de MongoDB.
Guías de arquitectura
- Arquitectura de recursos de bases de datos MongoDB
- Tipos de despliegue (Standalone, ReplicaSet, ShardedCluster), composición de StatefulSet, flujos de trabajo de conciliación de MongoDB y MongoDBUser con diagramas.
- Arquitectura de recursos de Ops Manager
- Base de datos de la aplicación, aplicación de gestión de operaciones, arquitectura de los componentes del demonio de copia de seguridad, consideraciones topológicas y flujo de trabajo de conciliación de MongoDBOpsManager.
- Arquitectura multi-clúster
- Modos de clúster único frente a clúster múltiple, limitaciones, diferencias de capacidad, diagramas de despliegue (con y sin malla de servicios), diagrama de clúster múltiple de Ops Manager, redes, equilibrio de carga, requisitos de la malla de servicios y consideraciones de rendimiento.
Tip
Especificación de recursos deOps Manager — Especificación de recursos de Ops Manager
Especificación de recursos paraclústeres múltiples de Kubernetes — Especificación para clústeres múltiples
Requisitos previos para la implementación en clústeres múltiples — Requisitos previos para clústeres múltiples
Implementar recursos de Ops Manager en varios clústeres de Kubernetes — Implementar Ops Manager en varios clústeres
Recuperación ante desastres para Ops Manager y recursos de AppDB: procedimientos de recuperación ante desastres
Arquitecturas de referencia — Arquitecturas de referencia