RSSAmplifier

Blog

Unleashing the Power of Postgres in Kubernetes

Recent content on Unleashing the Power of Postgres in Kubernetes

gabrielebartolini.itRSS feed ↗47 posts

Latest posts

CNPG Recipe 26 - Extension image catalogs

CloudNativePG lets the ClusterImageCatalog carry extension images alongside the operand, a capability every currently supported release already has, so a Cluster manifest only needs to name an extension and nothing else. This recipe deploys the community’s extension catalog and shows the operator resolving pgvector’s image, paths and dependencies from a single, versioned source of…

CNPG Recipe 25 - Declarative Roles and Passwordless TLS in CloudNativePG 1.30

CloudNativePG 1.30 introduces the DatabaseRole CRD and built-in TLS client certificate issuance, letting application teams own their PostgreSQL credentials declaratively and connect without ever handling a password.

CloudNativePG and Crunchy PGO: an honest, opinionated comparison

This article compares CloudNativePG and Crunchy PGO, two of the most adopted open-source operators for running PostgreSQL on Kubernetes. It covers architecture, image design, backup strategy, major version upgrades, observability, licensing and community health. As a co-founder and maintainer of CloudNativePG, I make no claim to neutrality, and I say so upfront. What I can offer is informed bias,…

CNPG Recipe 24 - Migrating from Crunchy PGO to PostgreSQL 18 with CloudNativePG

A step-by-step guide to migrating a PostgreSQL 17 cluster managed by Crunchy PGO v6 to PostgreSQL 18 under CloudNativePG. Two paths are covered: a fully declarative offline migration using CloudNativePG’s built-in pg_dump import, and an online migration using native PostgreSQL logical replication for a near-zero-downtime cutover.

Why the cycle of open-source sustainability needs to be virtuous

Yesterday, David Steele announced the end of life of pgBackRest — a PostgreSQL backup tool he maintained for thirteen years. The reasons are structural, not personal, and they are a reminder of a pattern we see too often in open-source infrastructure. This article reflects on what that means, on the architectural rivalry between pgBackRest and Barman, and on why CloudNativePG users can take…

Owning the pipe: physical replication, cloud neutrality, and the escape from DBaaS lock-in

This article examines how managed database services deliberately suppress access to the physical replication stream, turning operational convenience into permanent lock-in. It makes the case for a cloud-neutral stack — PostgreSQL, Kubernetes, and CloudNativePG — as the only architecture that returns full operational sovereignty to the organisation that owns the data.

From proposal to PR: how to contribute to the new CloudNativePG extensions project

In this article I walk you through the journey of adding the pg_crash extension to the new CloudNativePG extensions project. It explores the transition from legacy standalone repositories to a unified, Dagger-powered build system designed for PostgreSQL 18 and beyond. By focusing on the Image Volume feature and minimal operand images, the post provides a step-by-step guide for community members to…

CloudNativePG in 2025: CNCF Sandbox, PostgreSQL 18, and a new era for extensions

2025 marked a historic turning point for CloudNativePG, headlined by its acceptance into the CNCF sandbox and a subsequent application for incubation. Throughout the year, the project transitioned from a high-performance operator to a strategic architectural partner within the cloud-native ecosystem, collaborating with projects like Cilium and Keycloak. Key milestones included the co-development…

CNPG Recipe 23 - Managing extensions with ImageVolume in CloudNativePG

Say goodbye to the old way of distributing Postgres extensions as part of the main pre-built operand image. Leveraging the Kubernetes ImageVolume feature, CloudNativePG now allows you to mount extensions like pgvector and PostGIS from separate, dedicated images. This new declarative method completely decouples the PostgreSQL core from the extension binaries, enabling dynamic addition, easier…

KubeCon NA Atlanta 2025: a recap and CloudNativePG’s path to CNCF Incubation

This blog post recaps my eventful participation in KubeCon + CloudNativeCon North America 2025 in Atlanta, highlighting the key decision by maintainers to formally apply for CNCF Incubation for the CloudNativePG operator. I had the pleasure of delivering three presentations: a CNPG Lightning Talk focused on community contribution; a deep-dive with Yoshiyuki Tabata on implementing modern PostgreSQL…

Postgres in Kubernetes: the commands every DBA should know

For many Postgres DBAs, Kubernetes feels like a new, complex world. But what if your existing skills were the key to unlocking it? This article demystifies cloud-native Postgres by revealing a first handful of kubectl and kubectl cnpg commands that act as your direct translator. I’ll move past the intimidating YAML to focus on the practical, imperative commands you’ll actually use to…

CNPG Recipe 22 - Leveraging the New Supply Chain and Image Catalogs

This CNPG Recipe explores the latest enhancements to CloudNativePG’s software supply chain and image management. Learn how our new, fully controlled build process—complete with Snyk scanning, image signing, and SBOMs—delivers smaller, more secure PostgreSQL images. We also detail how to leverage the newly streamlined image catalogs for simplified, declarative cluster management and safer…

Run PostgreSQL 18 on Kubernetes Today with CloudNativePG

PostgreSQL 18 is officially released, packed with improvements for performance, authentication, operations, and security. In this article, I’ll show you how to run it on Kubernetes from day one with CloudNativePG. I will summarise key new features like asynchronous I/O and OAuth 2.0, as well as the extension_control_path parameter. This is a simple but critical feature for operational…

CNPG Recipe 21 – Finer Control of Postgres Clusters with Liveness Probes

In this article, I explore how CloudNativePG 1.27 enhances PostgreSQL liveness probes, including primary isolation checks that mitigate split-brain scenarios and integrate seamlessly with Kubernetes. We also discuss how these improvements lay the groundwork for advanced features like quorum-based failover while maintaining stability, safety, and community-driven decision-making.

CNPG Recipe 20 – Finer Control of Postgres Clusters with Readiness Probes

Explore the new readiness probe introduced in CloudNativePG 1.26, which advances Kubernetes-native lifecycle management for PostgreSQL. Building on the improved probing infrastructure discussed in my previous article, this piece focuses on how readiness probes ensure that only fully synchronised and healthy instances—particularly replicas—are eligible to serve traffic or be promoted to primary.…

CNPG Recipe 19 – Finer Control Over Postgres Startup with Probes

CloudNativePG 1.26 introduces enhanced support for Kubernetes startup probes, giving users finer control over how and when PostgreSQL instances are marked as “started.” This article explores the new capabilities, including both basic and advanced configuration modes, and explains the different probe strategies—such as pg_isready , SQL query , and streaming for replicas. It provides…

CNPG Recipe 18 - Getting Started with pgvector on Kubernetes Using CloudNativePG

Learn how to set up a PostgreSQL cluster with the pgvector extension on Kubernetes using CloudNativePG—all in a fully declarative way. This article walks you through the process in just a few minutes, from cluster creation to extension installation.

CNPG Recipe 17 - PostgreSQL In-Place Major Upgrades

CloudNativePG 1.26 introduces one of its most anticipated features: declarative in-place major upgrades for PostgreSQL using pg_upgrade . This new approach allows you to upgrade PostgreSQL clusters by simply modifying the imageName in their configuration—just like a minor version update. While it requires brief downtime, it significantly reduces operational overhead, making it ideal for managing…

The Immutable Future of PostgreSQL Extensions in Kubernetes with CloudNativePG

Managing extensions is one of the biggest challenges in running PostgreSQL on Kubernetes. In this article, I explain why I believe CloudNativePG —now a CNCF Sandbox project—is on the verge of a breakthrough. Two important new features for both PostgreSQL and Kubernetes—the extension_control_path option and image volumes—will guarantee immutability to extension container images.

Celebrating 5,000 GitHub Stars for CloudNativePG

CloudNativePG has surpassed 5,000 stars on GitHub! More than just a number, this achievement reflects the trust, enthusiasm, and collaboration of the Postgres and Kubernetes open-source community. I look back at the journey, acknowledge the incredible contributions from users and maintainers, and invite everyone to join us in shaping the future of cloud-native PostgreSQL.

CloudNativePG in 2024: Milestones, Innovations, and Reflections

2024 was a transformative year for CloudNativePG, marked by significant contributions to the Kubernetes ecosystem, increased adoption, and a growing community. This article reflects on key milestones, including the integration of advanced Kubernetes features, conference highlights, and personal insights, while looking ahead to the opportunities awaiting PostgreSQL in the cloud-native era.

CNPG Recipe 16 - Balancing Data Durability and Self-Healing with Synchronous Replication

CloudNativePG 1.25 enhances control of PostgreSQL synchronous replication with a new dataDurability option, allowing you to choose between prioritising data consistency or self-healing capabilities. This article explains the feature, contrasts it with previous approaches, and provides guidance on migrating to the new API format.

CNPG Recipe 15 - PostgreSQL major online upgrades with logical replication

This recipe shows how to perform an online major PostgreSQL upgrade using the new declarative approach to logical replication introduced in CloudNativePG 1.25. By leveraging the Publication and Subscription CRDs, users can set up logical replication between PostgreSQL clusters with ease. I will walk you through configuring a PostgreSQL 15 publisher, importing schemas into a PostgreSQL 17…

CNPG Recipe 14 - Useful Command-Line Tools

In this CNPG recipe, we explore three essential command-line tools that simplify working with CloudNativePG in Kubernetes: view-secret , view-cert , and stern . These tools enhance tasks such as inspecting secrets, verifying certificates, and tailing logs across multiple pods, streamlining your PostgreSQL management experience in a cloud-native environment. Whether you’re troubleshooting or…

CNPG Playground: A New Learning Environment for Postgres in Kubernetes

Welcome CNPG Playground , a local learning environment for exploring CloudNativePG and PostgreSQL in Kubernetes. Using Docker and Kind, it simulates real-world scenarios, enabling developers and DBAs to experiment with PostgreSQL replication across two clusters. Designed for hands-on learning, CNPG Playground provides an accessible entry point for testing configurations and features, with plans…

CNPG Recipe 13 - Configuring PostgreSQL Synchronous Replication

CloudNativePG 1.24 introduces a highly customisable approach to managing PostgreSQL synchronous replication through the new .spec.postgresql.synchronous stanza. In this article, I’ll guide you through configuring synchronous replication within a single Kubernetes cluster and across multiple clusters. I’ll explore quorum-based and priority-based replication methods, highlighting their benefits and…

How to test a PostgreSQL Commitfest patch in Kubernetes

In this article, I’ll explore how Kubernetes and CloudNativePG can be leveraged to streamline the testing of PostgreSQL patches, especially during a Commitfest. By automating the creation of PostgreSQL container images from any public Git repository, developers and reviewers can quickly and efficiently test patches within a Kubernetes environment. This approach not only saves time but also…

CNPG Recipe 12 - Exposing Postgres outside Kubernetes with Service Templates

In this article, I’ll introduce you to the service template feature in CloudNativePG, which greatly simplifies the creation of services such as LoadBalancer to expose PostgreSQL outside of your Kubernetes cluster - particularly useful for streamlining Database-as-a-Service (DBaaS) deployments. I’ll walk you through setting up this feature on your laptop using kind and cloud-provider-kind ,…

CloudNativePG Recipe 11 - Isolating PostgreSQL Workloads in Kubernetes with Kind

In modern Kubernetes environments, isolating PostgreSQL workloads is crucial for ensuring stability, security, and performance. This article, building on the previous CNPG Recipe #10 , explores advanced techniques for isolating PostgreSQL instances using Kubernetes with Kind. By applying taints, labels, and anti-affinity rules, you can ensure that PostgreSQL nodes are dedicated exclusively to…

CloudNativePG Recipe 10 - Simulating Production PostgreSQL on Kubernetes with Kind

This article provides a step-by-step guide to deploying PostgreSQL in Kubernetes using the kind tool (Kubernetes IN Docker) on a local machine, simulating a production-like environment. It explains how to create multi-node clusters and use node labels, specifically proposing the node-role.kubernetes.io/postgres label to designate PostgreSQL nodes. The article also demonstrates how to schedule…

The urge of “T-shaped” profiles to smooth the challenges of running Postgres in Kubernetes

As Kubernetes celebrates its tenth anniversary, the integration of PostgreSQL within this ecosystem is gaining momentum, offering challenges and opportunities, rather than threats, for database administrators (DBAs). This article explores the evolution of running PostgreSQL in Kubernetes, emphasising the importance of transitioning from traditional deployment methods to a cloud-native approach. It…

Master PostgreSQL in Kubernetes with CloudNativePG at the PostgreSQL European Conference

Join me and PostgreSQL/Kubernetes expert Leonardo Cecchi in Athens on October 22 for the first-ever public training session on CloudNativePG at the 2024 PostgreSQL European Conference, where you’ll master essential day-2 operations for PostgreSQL in Kubernetes. Learn from the founders and maintainers of CloudNativePG through hands-on sessions covering monitoring, scaling, automated failover,…

CloudNativePG Recipe 9 - Inspecting the network and the storage in a CloudNativePG cluster

In this blog post, I delve into the crucial aspects of networking and storage within a CloudNativePG cluster deployed on Kubernetes. I explore how Kubernetes services manage external and internal communications for PostgreSQL clusters, ensuring high availability and seamless failover. Additionally, I examine the role of PersistentVolumeClaims in handling PostgreSQL data storage, offering insights…

Making the world my single point of failure with PostgreSQL

The upcoming CloudNativePG 1.24 introduces a game-changing feature: the ability to declaratively manage PostgreSQL cluster switchover across cloud regions or different Kubernetes clusters. This advancement enables the seamless demotion of a primary cluster and the promotion of a replica cluster in another region without the need to re-clone the former primary. This innovation significantly…

Kubernetes Just Turned Ten: Where Does PostgreSQL Stand?

As Kubernetes marks its tenth anniversary, its influence on infrastructure management continues to grow. This article examines the increasing adoption of PostgreSQL within Kubernetes, fueled by its extensibility and AI applications. It highlights the journey of integrating PostgreSQL with Kubernetes, focusing on the CloudNativePG operator. A comparison between Kubernetes and traditional VM…

CloudNativePG Recipe 8: Participating in PostgreSQL 17 Testing Program in Kubernetes

Join the PostgreSQL 17 testing program using Kubernetes and CloudNativePG! With the recent release of PostgreSQL 17 Beta, our community has made operand container images available for testing. This article guides you through deploying a PostgreSQL 17 cluster, selecting specific Debian versions, and verifying installations. Perfect for developers in early stages, your participation will help…

16 Years After The Launch of 2ndQuadrant Italy: Remembering Simon Riggs

Sixteen years ago, on May 21, 2008, we proudly announced the opening of the Italian branch of 2ndQuadrant, marking a milestone in PostgreSQL consulting and training in Europe. Simon Riggs, the visionary founder of 2ndQuadrant, placed immense trust in our small team from Prato, Tuscany. Tragically, Simon passed away on March 26, 2024, leaving a profound void. This article is my small tribute to…

CloudNativePG Recipe 7: Postgres Vertical Scaling with Storage in Kubernetes - part 2

This is the second article in a series that explores advanced strategies for scaling PostgreSQL databases in Kubernetes with the help of CloudNativePG. This article focuses on horizontal table partitioning and tablespaces and how they can be used to manage large datasets. By partitioning tables based on specific criteria and optimising storage with tablespaces, PostgreSQL users can achieve better…

CloudNativePG Recipe 6: Postgres Vertical Scaling with Storage - part 1

Are you worried that PostgreSQL cannot scale writes within a single node, or do you think that scaling PostgreSQL can only be done horizontally, across different Kubernetes nodes? Discover the surprising truth behind PostgreSQL’s vertical scalability in this first article of a two-part series. Explore the potential of optimizing CPU, RAM, and storage resources through meticulous measurement…

CloudNativePG Recipe 5 - How to migrate your PostgreSQL database in Kubernetes with ~0 downtime from anywhere

Are you considering migrating your PostgreSQL database from a service provider into Kubernetes, but you cannot afford downtime? Recipe #5 details step-by-step instructions, leveraging CloudNativePG and logical replication, to seamlessly transition from PostgreSQL 10+ to 16 using an imperative method. Learn how to set up initial configurations, execute migrations, and handle various use cases, such…

CloudNativePG Recipe 4 - Connecting to Your PostgreSQL Cluster with pgAdmin4

The article explores the deployment of pgAdmin4, a popular graphical user interface for PostgreSQL, within a CloudNativePG environment, primarily for evaluation and educational purposes. The process involves deploying pgAdmin4 to connect to a PostgreSQL cluster, navigating its interface, and utilizing SQL functionality. The article provides detailed deployment instructions and highlights the use…

CloudNativePG Recipe 3 - What!?! No superuser access?

Explore the secure defaults of a PostgreSQL cluster in this CloudNativePG recipe, aligning with the principle of least authority (PoLA). Our commitment to security and operational simplicity shines through default configurations, balancing robust protection with user-friendly settings. Advanced users can customize as needed. The article navigates default intricacies, PostgreSQL Host-Based…

CloudNativePG Recipe 2 - Inspecting Default Resources in a CloudNativePG Cluster

Dive into the nitty-gritty of how CloudNativePG works its magic with PostgreSQL cluster stuff, zooming in on configmaps and secrets. Peek behind the curtain of the default Private Key Infrastructure – the secret sauce for stress-free mutual TLS authentication. Get to know the default user and database setups, all decked out for maximum security. This article is your go-to roadmap, cruising through…

CloudNativePG Recipe 1 - Setting up your local playground in minutes

Dive into the world of running PostgreSQL in Kubernetes with CloudNativePG in this inaugural guide. Follow along as we walk you through the process of setting up a disposable local cluster using kind . Gain insights into creating PostgreSQL clusters, installing CloudNativePG, and leveraging the cnpg plugin for kubectl . Wrap up your journey by tidying up your local cluster. Whether you’re a…

Maximizing Microservice Databases with Kubernetes, Postgres, and CloudNativePG

Explore the synergy between PostgreSQL and Kubernetes through CloudNativePG — a transformative operator discussed in this article. Discover how this powerful open source stack empowers organizations to free themselves from vendor lock-in and to create a seamless microservice database environment, enhancing innovation, operational efficiency and velocity. This article provides a refreshed…

About Gabriele Bartolini

Ciao! I’m Gabriele, an open-source programmer and entrepreneur boasting a Statistics degree from the University of Florence, specializing in data mining and data warehousing. My journey in the tech realm has been marked by significant contributions to the PostgreSQL ecosystem since the early 2000s. Over the years, I’ve played a pivotal role in shaping lean and DevOps culture at…

Recommended architectures for PostgreSQL in Kubernetes

This blog article, first published on the CNCF blog , navigates through various Kubernetes architectures, suggesting the use of PostgreSQL replication and advocating for strategic planning, especially in on-premise settings. It underscores the advantages of a “shared nothing” architecture for optimal control and automation synergy. The conclusion invites you to join the CloudNativePG…