La Solución Definitiva para PostgreSQL en Kubernetes
CloudNativePG es un operador de código abierto creado por EnterpriseDB para administrar PostgreSQL en entornos de Kubernetes. Cubre el ciclo de vida completo de un clúster de base de datos PostgreSQL de alta disponibilidad. Con una arquitectura principal o en espera, utilizando replicación de transmisión nativa.
La primera versión(1.15) pública de CloudNativePG fue creada originalmente por EDB, luego se lanzó como código abierto bajo la licencia Apache 2.0 y se envió a Cloud Native Computing Foundation en abril de 2022. Antes de eso, el producto era propiedad exclusiva de EnterpriseDB. Se distribuía con el nombre de «Cloud Native PostgreSQL» del cual puedes consultar información en nuestro nuestro post “Base de datos como Servicio: Para el caso de PostgreSQL sobre Kubernetes”
Algunas de las características clave disponibles incluyen:
- Integración de API de Kubernetes para alta disponibilidad
- Autocuración mediante conmutación por error y recreación automatizada de réplicas
- Gestión de capacidad con posibilidades de ampliación o reducción
- Cambios planificados para mantenimiento programado
- Definiciones de servicios de Kubernetes de solo lectura, lectura y escritura
- Actualizaciones continuas para versiones menores de Postgres y actualizaciones de operadores
- Copia de seguridad continua y recuperación en un momento determinado
La última versión CloudNativePG 1.24 presenta servicios administrados y plantillas de servicios. Esto facilita más que nunca la creación de servicios adicionales, como por ejemplo Load Balancer, para exponer PostgreSQL fuera de su clúster de Kubernetes. Esta nueva característica es un cambio radical para simplificar las implementaciones de base de datos como servicio.
Esta importante actualización presenta nuevas y potentes funciones y mejoras, entre las que se incluyen:
- Topologías distribuidas de PostgreSQL : cree topologías de bases de datos distribuidas en varios clústeres de Kubernetes, lo que permite implementaciones híbridas y multicloud. Disfrute de un control primario declarativo y una conmutación sin inconvenientes entre clústeres, lo que garantiza una alta disponibilidad y resiliencia.
- Servicios administrados : La nueva funcionalidad managed.services permite una gestión avanzada de servicios. Incluida la capacidad de deshabilitar servicios de solo lectura y de lectura a través de la configuración, y el uso de plantillas de servicio para crear recursos de servicio personalizados. Como balanceadores de carga, para acceder a PostgreSQL fuera de Kubernetes, ideal para escenarios de base de datos como servicio.
- API de replicación sincrónica mejorada. Obtenga control total sobre la configuración de replicación sincrónica de PostgreSQL con una API más flexible, compatible con estrategias basadas en quórum y listas de prioridades. Personalice la opción synchronous_standby_names para adaptarla a sus necesidades.
- Protección contra el agotamiento del espacio en disco de WAL. Una medida de seguridad fundamental garantiza que, si se agota el espacio en disco para los archivos WAL, el clúster se detendrá de manera segura en lugar de desencadenar una cadena de conmutaciones por error. Esto evita que el clúster entre en un estado irrecuperable y simplifica la recuperación al permitir la expansión manual del volumen.
Estas mejoras hacen que la versión 1.24 sea ideal para implementaciones avanzadas de PostgreSQL como servicio, multicloud, facilitando una mayor resiliencia, control y seguridad en entornos Kubernetes.
CloudNativePG también proporciona un complemento para administrar un clúster en Kubernetes. El plugin cnpg facilita la gestión de clústeres de PostgreSQL, permitiendo realizar tareas como la instalación, monitoreo, respaldo, promoción, mantenimientos y restauración de manera simplificada. A través de comandos específicos, se optimiza el control y mantenimiento de los recursos de CloudNativePG directamente desde kubectl.
Conclusión
CloudNativePG se ha consolidado como una solución poderosa y flexible para la administración de PostgreSQL en Kubernetes. Simplificando operaciones complejas y garantizando alta disponibilidad en entornos híbridos y multicloud, además de contar con un plugin potente que ayuda con la administración de los clústers desplegados con el operador.
Con su última versión, las mejoras en topologías distribuidas, servicios administrados, replicación sincrónica y protección contra el agotamiento de disco reflejan su compromiso con la resiliencia y adaptabilidad. Para empresas que buscan escalar PostgreSQL en entornos de contenedores, CloudNativePG ofrece un conjunto robusto de herramientas para maximizar el rendimiento y asegurar la continuidad del negocio en la nube.