Implementación de una base de datos PostgreSQL de alta disponibilidad en AKS con la CLI de Azure
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.
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.
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 Azure Propietario 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 Inicio rápido para Bash en 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 más información, vea 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 Inicio de sesión con 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 más información sobre las extensiones, consulte Uso 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.
- Extensión Azure Kubernetes Service (AKS) versión preliminar.
- 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.
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 con el operador CNPG agregar más bases de datos de forma declarativa. Más información sobre el operador CNPG.
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
Azure Kubernetes Service