Leer en inglés

Compartir a través de


Implementación de un clúster de MongoDB en Azure Kubernetes Service (AKS)

En este artículo se explica la información de requisitos previos para implementar un clúster de MongoDB en Azure Kubernetes Service (AKS). También proporciona información general sobre la estrategia de implementación.

Importante

El software de código abierto se menciona en toda la documentación y ejemplos de AKS. El software que implemente se excluye de los contratos de nivel de servicio de AKS, la garantía limitada y el soporte técnico de Azure. A medida que usa la tecnología de código abierto junto con AKS, consulte las opciones de soporte técnico disponibles en las comunidades y los mantenedores de proyectos respectivos para desarrollar un plan.

Por ejemplo, el Repositorio Ray de GitHub describe varias plataformas que varían en el tiempo de respuesta, el propósito y el nivel de soporte técnico.

Microsoft asume la responsabilidad de crear los paquetes de código abierto que implementamos en AKS. Esa responsabilidad incluye tener la propiedad completa del proceso de compilación, examen, firma, validación y revisión, junto con el control sobre los archivos binarios en imágenes de contenedor. Para obtener más información, consulte Administración de vulnerabilidades para AKS y cobertura de soporte técnico de AKS.

¿Qué es MongoDB?

MongoDB es un popular sistema de administración de bases de datos NoSQL diseñado para controlar grandes volúmenes de datos no estructurados. A diferencia de las bases de datos relacionales tradicionales que usan tablas y filas, MongoDB usa un enfoque flexible orientado a documentos.

Nota

MongoDB Community Edition no es software de código abierto. Tiene licencia en la Licencia pública del lado servidor con "origen disponible".

Clúster particionado de MongoDB

Un clúster particionado de MongoDB controla grandes conjuntos de datos y un alto rendimiento mediante la distribución de datos entre varios servidores o particiones. Esta arquitectura permite el escalado horizontal, que es esencial para las aplicaciones que tienen crecientes necesidades de datos y rendimiento.

Este es un desglose de sus componentes clave y cómo funciona:

  • Particiones: Instancias individuales de MongoDB llamadas particiones contienen subconjuntos de los datos. Cada partición es un conjunto de réplicas o un grupo de instancias de MongoDB que replican datos entre sí. Los conjuntos de réplicas ayudan a garantizar la alta disponibilidad y la tolerancia a errores.
  • Servidores de configuración: Los servidores que almacenan los metadatos y las opciones de configuración del clúster particionado se denominan servidores de configuración. Realizan un seguimiento de la información de distribución y enrutamiento de datos del clúster. Normalmente, un clúster tiene tres servidores de configuración para proporcionar redundancia.
  • Instancias de Mongos: Mongos es un servicio de enrutamiento que dirige las solicitudes de cliente a la partición adecuada. Actúa como intermediario entre el cliente y las particiones. Una instancia de Mongos administra el enrutamiento de consultas y agrega los resultados de las particiones.
  • Clave de partición: cuando los datos se distribuyen entre particiones, se basan en una clave de partición, que es un único campo indexado o varios campos de los documentos. La clave de partición determina cómo se particionan los datos entre las particiones. Una clave de partición bien elegida ayuda a garantizar la distribución de datos e incluso la consulta eficaz.
  • Distribución de datos: los datos se distribuyen entre particiones en función de la clave de partición. Esta distribución ayuda a equilibrar la carga y administrar grandes conjuntos de datos de forma eficaz. MongoDB usa una estrategia de fragmentación basada en rangos o en basada en hash dependiendo de la clave de fragmentación.
  • Alta disponibilidad: Cada partición es un conjunto de réplicas, lo que significa que replica sus datos en varios nodos. Esta configuración garantiza que los datos sigan estando disponibles aunque fallen uno o varios nodos.

Operador Percona para MongoDB

El operador Percona para MongoDB es una herramienta de código abierto desarrollada por Percona. Automatiza la implementación, administración y escalado de clústeres de MongoDB en entornos de Kubernetes. Simplifica las operaciones mediante el control de tareas como el aprovisionamiento, el escalado, la copia de seguridad y la recuperación. Su control de todas esas tareas ayuda a garantizar la alta disponibilidad y el rendimiento de los clústeres de MongoDB.

El operador usa definiciones de recursos personalizados (CRD) de Kubernetes para administrar las configuraciones de MongoDB mediante declaración y para controlar las conmutaciones por error, la supervisión y las alertas. El resultado se reduce la sobrecarga administrativa y las prácticas de administración coherentes. El operador Percona mejora la eficiencia y confiabilidad de las implementaciones de MongoDB, especialmente en las aplicaciones nativas de la nube. Es ideal para escenarios de desarrollo, pruebas y producción.

Diagrama que muestra cómo se relaciona el operador de Percona con un clúster de MongoDB.

Introducción a la solución de MongoDB

El objetivo de la solución propuesta es:

  • Asegúrese de que el clúster de MongoDB pueda controlar eficazmente grandes conjuntos de datos y operaciones de alto rendimiento.
  • Mantener alta disponibilidad y tolerancia a errores.

La solución logrará este objetivo mediante el uso de conjuntos de réplicas, reglas de antiafinidad y asignación de recursos adecuada.

Estrategia de implementación

La estrategia de implementación de MongoDB consta de los siguientes componentes:

  • Un clúster particionado para habilitar la distribución de datos entre varias particiones, lo que mejora la escalabilidad y el rendimiento.
  • Servidores de configuración administrados por un conjunto de réplicas de tres miembros para ayudar a garantizar la tolerancia a errores y la alta disponibilidad. Las reglas de antiafinidad distribuyen estos servidores entre dominios de error.
  • Tres instancias de Mongos distribuidas entre zonas de disponibilidad y expuestas internamente dentro del clúster. Proporcionan equilibrio de carga y resistencia para enrutar las solicitudes de cliente.

Colaboradores

Microsoft se encarga del mantenimiento de este artículo. Originalmente lo escribieron los siguientes colaboradores:

  • Nelly Kiboi | Ingeniera de servicios
  • Saverio Proto | Ingeniero principal de Experiencia del cliente
  • Don High | Ingeniero principal de clientes
  • LaBrina Loving | Ingeniera principal de servicio
  • Ken Kilty | TPM de entidad de seguridad
  • Russell de Pina | TPM de entidad de seguridad
  • Colin Mixon | Administrador de productos
  • Ketan Chawda | Ingeniero sénior de clientes
  • Naveed Kharadi | Ingeniero de Experiencia del cliente
  • Erin Schaffer | Desarrollador de contenido 2
  • Carol Smith | Desarrollador de contenido sénior

Paso siguiente