Skip to main content
Advanced Search
Search Terms
Content Type

Exact Matches
Tag Searches
Date Options
Updated after
Updated before
Created after
Created before

Search Results

228 total results found

Assignment 1: Install an app from a public chart

Module 10 — Helm Charts

Goal: install, configure, upgrade, and roll back a real application on the lab cluster using a community Helm chart — exercising the full release lifecycle. Where: from the Jumpbox (where helm and the cluster kubeconfig are ready), targeting the live Kubernete...

Assignment 2: Package your app as a chart

Module 10 — Helm Charts

Goal: turn the app you deployed in Module 7 into your own reusable Helm chart — templated, linted, installed, and upgradeable. Where: author the chart on the Jumpbox; install it to your own namespace on the live cluster. Use the image you pushed to the lab reg...

HA Services Tutorials

Step-by-step guides for building highly-available, self-healing infrastructure services.

PostgreSQL High Availability with Patroni, etcd & HAProxy

Build a 3-node PostgreSQL cluster with automatic failover using Patroni, etcd and HAProxy.

Overview & Architecture

PostgreSQL High Availability with Patro...

PostgreSQL is famously reliable, but out of the box it has no built-in automatic failover. If the primary server dies, nothing promotes a standby for you. High availability is therefore assembled from a few well-defined layers: Streaming replication — one pri...

Environment & Prerequisites

PostgreSQL High Availability with Patro...

Servers You need four Linux servers (Ubuntu 24.04 LTS or 26.04 — this guide uses the PGDG repository, which supports both). Each needs a sudo-capable user and outbound internet access for package installation. Hostname Role Example IP vCPU RAM Disk pg-s...

etcd — the Distributed Configuration Store

PostgreSQL High Availability with Patro...

etcd is the distributed configuration store (DCS) that Patroni uses to elect a leader and hold cluster state. Run all the commands in this page on pg-sv01, pg-sv02 and pg-sv03. Install sudo apt-get update sudo apt-get install -y etcd-server etcd-client sudo sy...

PostgreSQL 18 & Patroni — Install & Configure

PostgreSQL High Availability with Patro...

Run everything on this page on the three database nodes — pg-sv01, pg-sv02, pg-sv03. Install PostgreSQL 18 and Patroni Add the official PostgreSQL (PGDG) repository, then install PostgreSQL 18 and Patroni: sudo install -d -m 0755 /etc/apt/keyrings curl -fsSL h...

Bootstrapping the Cluster

PostgreSQL High Availability with Patro...

With Patroni configured on all three nodes, we bring the cluster up. The order matters: the first node to start acquires the leader lock in etcd, runs initdb, creates the users, and becomes the primary. The others then clone from it. Start the first node (the ...

HAProxy — Connection Routing

PostgreSQL High Availability with Patro...

Clients shouldn't connect to a specific database node — that node might be a replica today and gone tomorrow. HAProxy gives them one stable address and always routes to the right place, using Patroni's REST API as the health check. Run this page on pg-haproxy....

Failover & Recovery Testing

PostgreSQL High Availability with Patro...

Now the payoff: we kill the primary and watch the cluster heal itself with no human intervention. Before: note the current primary PGPASSWORD=ChangeMe_Postgres psql -h pg-haproxy -p 5432 -U postgres \ -c "SELECT inet_server_addr();" # -> 10.100.100.104 (pg...

Production Hardening & Troubleshooting

PostgreSQL High Availability with Patro...

The cluster we built is complete and self-healing, but a few choices were made to keep the lab to four machines. Here's what to change before relying on it in production. Harden the topology Separate the etcd cluster. We co-located etcd on the database nodes....