Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En esta guía, implementará un clúster de PostgreSQL de alta disponibilidad que abarca varias zonas de disponibilidad de Azure en AKS con la CLI de Azure.
En este artículo se describen los requisitos previos para configurar un clúster de PostgreSQL en Azure Kubernetes Service (AKS) y se proporciona información general sobre el proceso de implementación completo y la arquitectura.
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.
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 más información, consulte Administración de vulnerabilidades para AKS y Cobertura de soporte técnico de AKS.
Requisitos previos
- En esta guía se presupone un conocimiento básico de los conceptos fundamentales de Kubernetes y PostgreSQL.
- Necesita los roles integrados de AzurePropietario o Administrador de acceso de usuario y el de Colaborador en una suscripción en la cuenta de Azure.
Use el entorno de Bash en Azure Cloud Shell. Para más información, consulte Introducción a Azure Cloud Shell.
Si prefiere ejecutar comandos de referencia de la CLI localmente, instale la CLI de Azure. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para obtener más información, consulte Ejecución de la CLI de Azure en un contenedor de Docker.
Si usa una instalación local, inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Autenticación en Azure mediante la CLI de Azure.
En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para obtener más información sobre las extensiones, consulte Uso y administración de extensiones con la CLI de Azure.
Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.
También necesita los siguientes recursos instalados:
- CLI de Azure, versión 2.56 o posterior.
- jq versión 1.5 o posterior.
- kubectl versión 1.21.0 o posterior.
- Helm versión 3.0.0 o posterior.
- openssl versión 3.3.0 o posterior.
- Visual Studio Code o equivalente.
- Krew versión 0.4.4 o posterior.
- El plugin kubectl CloudNativePG (CNPG).
Proceso de implementación
En esta guía, aprenderá a:
- Use la CLI de Azure para crear un clúster de AKS de varias zonas.
- Implemente un clúster y una base de datos de PostgreSQL de alta disponibilidad mediante el operador CNPG.
- Configure la supervisión de PostgreSQL mediante Prometheus y Grafana.
- Implemente un conjunto de datos de ejemplo en una base de datos PostgreSQL.
- Realice actualizaciones de clúster de PostgreSQL y AKS.
- Simulación de una interrupción del clúster y conmutación por error de réplica de PostgreSQL.
- Realice la copia de seguridad y restauración de una base de datos PostgreSQL.
Arquitectura de implementación
En este diagrama se muestra una configuración de clúster de PostgreSQL con una réplica principal y dos réplicas de lectura administradas por el operador CloudNativePG (CNPG). La arquitectura proporciona una instancia de PostgreSQL de alta disponibilidad que se ejecuta en un clúster de AKS que puede resistir una interrupción de zona mediante la conmutación por error entre réplicas.
Las copias de seguridad se almacenan en Azure Blob Storage, lo que proporciona otra manera de restaurar la base de datos en caso de un problema con la replicación de streaming desde la réplica principal.
Puede optar por hospedar PostgreSQL en AKS cuando necesite un control total sobre la configuración de la base de datos, las extensiones y la arquitectura de implementación. Es ideal para integrarse estrechamente con herramientas nativas de Kubernetes, optimizar los costos a escala y ajustar el rendimiento mediante la asignación de recursos personalizada, las estrategias de almacenamiento en caché y las configuraciones de almacenamiento adaptadas a la carga de trabajo.
Nota:
En el caso de las aplicaciones que requieren separación de datos en el nivel de base de datos, puede agregar más bases de datos con comandos postInitSQL y similares. Actualmente no es posible agregar más bases de datos de forma declarativa con el operador CNPG. Más información sobre el operador CNPG.
Consideraciones sobre el almacenamiento
El tipo de almacenamiento que use puede tener efectos grandes en el rendimiento de PostgreSQL. Más adelante en esta guía, seleccionará la opción más adecuada para sus objetivos y necesidades de rendimiento.
| Tipo de almacenamiento | Controlador compatible | Descripción |
|---|---|---|
| SSD Premium | Controlador CSI para discos de Azure | Resistencia máxima de los datos. SSD Premium de Azure ofrece almacenamiento de alto rendimiento y funciona sin problemas con el almacenamiento con redundancia de zona (ZRS) de Azure Premium. Ssd Premium se aprovisiona en función de tamaños específicos, que cada uno ofrece determinados niveles de IOPS y rendimiento. |
| SSD prémium v2 | Controlador CSI para discos de Azure | Mejor precio-rendimiento. SSD Prémium de Azure v2 ofrece un mayor rendimiento que los SSD Premium de Azure, mientras que, por lo general, son menos costosos. A diferencia de los SSD prémium, SSD prémium v2 no tiene tamaños dedicados. Puede establecer un SSD prémium v2 en cualquier tamaño admitido que prefiera y realizar ajustes pormenorizados en el rendimiento sin tiempo de inactividad. Los discos SSD Prémium v2 de Azure tienen ciertas limitaciones que debe tener en cuenta. Para obtener una lista completa, consulte Limitaciones de SSD prémium v2. |
| NVMe local o SSD temporal (discos efímeros) | Solo almacenamiento de contenedores de Azure | Rendimiento máximo. Los discos efímeros son almacenamiento NVMe local y SSD temporal disponible en ciertas familias de máquinas virtuales. Ofrecen el mayor IOPS posible, el mayor rendimiento y latencia de submilisegundos para su clúster de AKS. También puede aprovechar el alto rendimiento de discos efímeros mediante Azure Container Storage, una solución de almacenamiento de Kubernetes administrada que aprovisiona dinámicamente volúmenes persistentes para cargas de trabajo con estado como PostgreSQL. Sin embargo, dado que estos discos residen en las máquinas virtuales locales que hospedan el clúster, los datos no se conservan en un servicio de almacenamiento de Azure. Como resultado, cualquier dato almacenado en estos discos se perderá si el clúster se detiene o se desasigna. Para solucionar esta limitación, en las secciones posteriores de esta guía se muestra cómo configurar copias de seguridad periódicas de los datos de PostgreSQL en Azure Blob Storage. |
Pasos siguientes
Colaboradores
Microsoft se encarga del mantenimiento de este artículo. Los siguientes colaboradores lo escribieron originalmente:
- Ken Kilty | TPM de entidad de seguridad
- Russell de Pina | TPM de entidad de seguridad
- Adrian Joian | Ingeniero de clientes sénior
- Jenny Hayes | Desarrollador de contenido sénior
- Carol Smith | Desarrollador de contenido sénior
- Erin Schaffer | Desarrollador de contenido 2
- Adam Fabric | Ingeniero de clientes 2
Reconocimiento
Esta documentación se desarrolló conjuntamente con EnterpriseDB, los mantenedores del operador CloudNativePG. Agradecemos a Gabriele Bartolini por revisar los borradores anteriores de este documento y ofrecer mejoras técnicas.