
PostgreSQL has unequivocally become a frontrunner among database solutions tailored for cloud-native, containerized environments, with adoption rapidly accelerating in the Kubernetes ecosystem. A recent Kubernetes in the Wild 2025 report reveals that PostgreSQL now powers 36% of all database workloads operating on Kubernetes clusters—a substantial 6-point increase over the past three years. This statistic reflects more than just a trend: it highlights a broader trust in PostgreSQL's maturity, extensibility, and its fit for the demands of modern infrastructure.
The Promise and Complexity of PostgreSQL on Kubernetes
As organizations modernize their data layers and scale applications, Kubernetes has emerged as the platform of choice for orchestrating not only stateless microservices but increasingly, critical stateful workloads. PostgreSQL, with its robust feature set and active open-source community, now figures prominently in this transition. The appeal lies in PostgreSQL’s reliability, performance optimizations, and the active ecosystem of operators and tooling built around it.However, operating data-intensive PostgreSQL workloads within Kubernetes presents distinct architectural and operational challenges. Unlike stateless applications, databases are sensitive to latency, data loss, network partitions, and the nuances of persistent storage. Achieving optimal PostgreSQL performance on Kubernetes demands careful management of primitives like StatefulSets, persistent volumes, database configurations, and replication architectures. These technical complexities have, historically, acted as barriers for enterprises considering Kubernetes-native databases for mission-critical workloads.
Innovative Options: Azure’s Dual Approach to PostgreSQL Storage
Microsoft Azure is at the forefront of addressing these challenges, offering enterprise customers two highly differentiated storage strategies for running PostgreSQL in Azure Kubernetes Service (AKS):- High-Performance Local NVMe Backed by Azure Container Storage
- Optimized Price-Performance with Premium SSD v2
1. Local NVMe for Ultra-Low Latency and High Throughput
Some PostgreSQL deployments, such as those found in payment processing, gaming backends, or real-time analytics, demand not only transactional integrity but also ultra-low latency and massive parallel IOPS. Azure responds to this need with local NVMe attached directly to Azure VM SKUs, orchestrated via a managed Azure Container Storage solution.Historically, harnessing local NVMe with Kubernetes required manual RAID configurations and static volume management. Azure Container Storage simplifies this, allowing dynamic provisioning of high-performance block storage, seamlessly integrated into the Kubernetes environment. Developers can now request persistent volumes through Kubernetes APIs, with Azure dynamically assigning available local NVMe capacity behind the scenes.
Benchmark Insights
Real-world benchmarks underscore the performance advantage of this approach. On Standard_L16s_v3 VMs, PostgreSQL achieved nearly 15,000 transactions per second (TPS) at single-digit millisecond latency. When scaled upward to Standard_L64s_v3, TPS figures exceeded 26,000, still maintaining impressively low latency. These results position Azure’s local NVMe solution as a category leader for write-intensive, latency-sensitive PostgreSQL workloads.Equally important, Azure Container Storage adds versatility, supporting not just local NVMe but also Azure Disk and Elastic SAN (currently in preview). This enables organizations to blend storage durability, scale, and cost controls—all under a common Kubernetes-native management plane.
2. Premium SSD v2 for Flexible, Cost-Efficient Scaling
Most production workloads require a delicately balanced compromise between performance and operational cost. Azure Premium SSD v2 is designed squarely to satisfy this reality, boasting flexible scaling where IOPS, throughput, and size can be configured independently of each other. This modularity is invaluable for multi-tenant SaaS environments, platforms with unpredictable traffic, or rapidly scaling business applications.Premium SSD v2 delivers up to 80,000 IOPS and 1,200 MB/s per volume, making it well-suited for demanding PostgreSQL deployments. Unlike local NVMe, which is directly tied to specific VM capacity and incurs higher costs at large scale, Premium SSD v2 allows granular cost control by matching persistent volumes to current database demands—minimizing overprovisioned resources and optimizing infrastructure spend.
Benchmark Insights
In benchmark head-to-head testing, Premium SSD v2 with 32 GiB disks (configured at 3000 IOPS and 125 MB/s throughput on Standard_D16d_v5 VM SKUs), delivered 8,600 TPS with 7.417 ms average latency. While not as blisteringly fast as the local NVMe solution, Premium SSD v2's performance is more than sufficient for a broad range of mission-critical production workloads where elastic cost controls and scale take precedence.Comparative Table: NVMe vs. Premium SSD v2 for PostgreSQL on AKS
Storage Option | VM SKU | TPS (Benchmark) | Latency (ms) | Max IOPS | Max Throughput | Scalability | Redundancy | Price/Value |
---|---|---|---|---|---|---|---|---|
Local NVMe (Azure Container Storage) | Standard_L16s_v3 | 14,812 | 4.321 | Up to VM specs | Up to VM specs | Tied to VM SKU, fixed | Replica-based HA, operator managed | Highest performance, higher cost |
Premium SSD v2 | Standard_D16d_v5 | 8,600 | 7.417 | 80,000 | 1,200 MB/s | Flexible, disk-based | Local redundant, default | Balanced, flexible scaling |
Data Durability and High Availability: Choosing with Confidence
The decisive factor for many organizations—especially those migrating critical relational workloads to the cloud—is not just raw performance, but a seamless blend of durability, redundancy, and operational continuity.Local NVMe: Replica-Driven Resilience
While local NVMe storage offers peerless speed, its "local" nature means there is an inherent risk of data loss if a node or VM fails unexpectedly. To mitigate this, Azure strongly recommends a replica-based architecture using open-source tools like the CloudNativePG operator, complemented by off-node backups—ideally to Azure Blob Storage. CloudNativePG brings automated failover and replication, so applications experience near-zero downtime in the event of an underlying node failure.Premium SSD v2: Built-in Redundancy
Conversely, Premium SSD v2 provides local redundancy by design, reducing the operational burden of configuring high availability through external operators. The risk of data loss due to isolated hardware incidents is lower, and organizations can still layer on replica-based strategies for even more robust disaster recovery.CloudNativePG Operator: The Heart of PostgreSQL’s Cloud-Native HA
At the core of Azure’s PostgreSQL approach on AKS lies the CloudNativePG operator, a mature, open-source Kubernetes operator that brings enterprise-class high availability to PostgreSQL clusters.Key features of CloudNativePG on AKS include:
- Built-in Replication and Automated Failover: Ensures that new primary nodes are rapidly promoted in case of a failure, minimizing database downtime.
- Application-Consistent Backups: Deep integration with Azure Blob Storage, allowing teams to execute uniform backup strategies natively.
- Flexible Storage Backend: Works seamlessly with both Premium SSD v2 and Azure Container Storage (local NVMe), so deployments can target the optimal price-performance tier by workload.
Use Case Scenarios
Ideal Workloads for Local NVMe
- High-frequency transaction processing systems such as payment gateways, trading platforms, and gaming engines.
- Real-time personalization and analytics workloads where query response times are business-critical.
- AI inference pipelines that require rapid aggregation and transformation of large datasets close to compute.
Workloads Best Served by Premium SSD v2
- Multi-tenant SaaS platforms with unpredictable or cyclical traffic patterns.
- Enterprise production systems operating at scale, where budget predictability and long-term capacity planning are vital.
- Applications requiring flexible growth, where storage can expand or contract dynamically based on actual usage.
Critical Assessment: Notable Strengths and Emerging Risks
Notable Strengths
- Seamless Kubernetes-native Management: Both storage options are tightly integrated with Kubernetes APIs and Azure’s managed control plane, lowering the operational friction for platform teams.
- Benchmark-verified Performance: Transparent publication of TPS and latency metrics arms architects with actionable data for decision-making.
- Options Align with Real-World Scenarios: The dual storage approach targets both high-performance and cost-sensitive workloads, eschewing a one-size-fits-all mindset.
- CloudNativePG Operator: Native HA and backup features dramatically simplify enterprise PostgreSQL deployments, accelerating adoption.
- Future-ready Platform: Azure’s investment in expanding stateful support—including Elastic SAN and evolving storage patterns—signals a sustained commitment to serving data-heavy applications.
Potential Risks and Considerations
- Local NVMe Data Loss Potential: While high-performance is compelling, local NVMe’s susceptibility to node failure means strict adherence to replica-based HA and frequent off-host backups are not just best practices but necessities. Any deviation can significantly elevate data loss risks.
- Cost Management Complexity: Performance comes at a premium with local NVMe, and cost modeling can become complicated as scale and redundancy requirements increase. Accurate cost forecasting is essential.
- Operator Learning Curve: Adopting CloudNativePG or similar Kubernetes operators introduces operational workflows that may differ significantly from traditional DBA practices. Investing in training and robust automation scripts is advised.
- Cloud Lock-in: Azure’s managed features confer operational advantages, but also bind enterprises more tightly to the Azure ecosystem in terms of storage, backup, and support contracts. Migrating away may be costly or disruptive.
Azure AKS and the Future of Stateful Workloads
Azure’s architectural choices reflect a broader trend: the increasing maturity and mainstream acceptance of running stateful, highly available application tiers on Kubernetes. The platform is already being used to orchestrate not just PostgreSQL, but Redis, MongoDB, Kafka, and even cutting-edge AI/ML serving pipelines—all with GPU-backed nodes when required.Azure Kubernetes Service’s support for advanced storage patterns (local NVMe, Premium SSD v2, Elastic SAN) and proven cloud-native operators provides teams with the flexibility to select, optimize, and scale stateful workloads based on the exact business and technical requirements—without having to resort to custom or fragile workarounds.
Conclusion: Why the AKS + PostgreSQL Pairing Matters
Running PostgreSQL on Azure Kubernetes Service doesn't just make technical sense—it empowers enterprises to modernize core data services, making them more scalable, resilient, and cost effective. Azure’s commitment to supporting both blazing-fast NVMe and flexible, price-efficient Premium SSD v2 means organizations don’t have to compromise. Meanwhile, the deep integration with open-source CloudNativePG ensures that industry-standard best practices for high availability and backup are not merely possible, but practical at scale.For IT architects, DBAs, and platform engineers seeking to break out of the rigidity of legacy infrastructure, Azure’s AKS, crowned by its PostgreSQL innovations, offers a compelling launchpad for the future of cloud-native, data-driven application development.
Now more than ever, the choice isn’t whether to run mission-critical databases like PostgreSQL on Kubernetes; it’s about picking the right blend of performance, durability, and operational simplicity to power the next wave of digital transformation. With proven guidance, transparent benchmarking, and an ever-growing ecosystem, Azure Kubernetes Service stands ready to deliver on this promise—today and into the future.
Source: Microsoft Azure Running high-performance PostgreSQL on Azure Kubernetes Service | Microsoft Azure Blog