PostgreSQL on Kubernetes

CloudNativePG is the best way I know to run PostgreSQL on Kubernetes, and most of what follows is about it, how we can integrate better on Kubernetes, on different platforms, with different needs / perspectives / …

What I run:

  • Large and shared, with the operator installed cluster-wide.
  • Shared clusters with really tight fencing: tenants confined to their namespace, no access to cluster wide resources (Nodes API, ClusterImageCatalog, …).
  • Public clouds and private clouds, each with its own storage, network and egress rules, outbound proxies included.
  • Custom billing, so labels and annotations are enforced by the platform, not a matter of taste.
  • Mandatory monitoring stacks, chosen by the platform, not by me.

My rule: PostgreSQL has to install and run even in the most restricted of these, at the cost of some features if need be, and which features to give up is the administrator’s choice, not something imposed.

A GitHub issue or pull request has room for the patch, not for the reasoning behind it. Hence you’ll find here the full reflexion behind every problem in full: what breaks, how others deal with it, the options, what I chose and why, and where it stands.

The first write-ups are being edited. Subscribe to the RSS feed to get them as they land.