From cc5325bf3fbc517478429026bb7a413c15a1eedf Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Mon, 31 Mar 2025 17:09:09 +0200 Subject: [PATCH] docs(day-1): Added multicluster pdb talk --- content/day-1/06_scaling-pdbs.md | 51 ++++++++++++++++++++++++++++++++ content/day-1/_index.md | 2 ++ 2 files changed, 53 insertions(+) create mode 100644 content/day-1/06_scaling-pdbs.md diff --git a/content/day-1/06_scaling-pdbs.md b/content/day-1/06_scaling-pdbs.md new file mode 100644 index 0000000..f4cd3c7 --- /dev/null +++ b/content/day-1/06_scaling-pdbs.md @@ -0,0 +1,51 @@ +--- +title: "Scaling PDBs: Introducing Multi-Cluster Resilience with x-pdb" +weight: 6 +tags: + - rejekts + - multicluster +--- + + + +## Baseline Infra + +- Multiple Clusters across cloud providers +- Cilium with Clustermesh +- Stretched CockroachDB and NATS + +TODO: Steal overview from slides + +## PDBs and limits + +- PDB: Classic core component that requires a number of pods with successfull readyness probes per deployment +- Eviction: Can be stopped by a PDB what has not reached the minimum available +- Interruptions: Voluntary (New image, updated specs, ...) vs involuntary (Eviction, deletion, node pressule, NoExecute, Node deletion) + +## Stateful across multiple clusters + +- Baseline: PDBs only know about one cluster +- Problem: If the master pod fails (or get's evicted) on 2/3 clusters +- Factors: Movement, Maintainance, Chaos-Experiments, Secret rotation +- Workaround: Just manually check all systems before doing anything +- Idea: Multi-Cluster PDB +- Solution: A new hook on the eviciton api that interacts with a new Cluster-Aware CRD + +## How it actually works + +1. Drain API get's called +2. Check replicas accross cluster +3. Anwer based on current state + +Actually: There is a lease-mechanism to prevent race conditions across clusters + +TODO: Steal diagram from slides + +## What works + +- Voluntary: 100% supported +- Involuntary: Yes they hooked into most of the deletion api calls (eviction, pressure, kubectl delete, admissions, node deletion) + +## Demo + +Pretty interesting, watch the video to find out \ No newline at end of file diff --git a/content/day-1/_index.md b/content/day-1/_index.md index d7c7352..c3078c4 100644 --- a/content/day-1/_index.md +++ b/content/day-1/_index.md @@ -5,11 +5,13 @@ weight: 3 --- The second and last day of cloud native rejekts and (some might say most importantly) time for my talk. +This was another very interesting day and I can only recommend attending cloud native rejekts (and will always try to atend in the future if possible). ## Talk recommendations - My Talk: [Evaluating Global Load Balancing Options for Kubernetes in Practice](todo:) - Service Mesh Intro + Comparison: [The service mesh wars - a new hope for kubernetes](../03_service-mesh) +- How to handle evection and statefulness across clusters: [Scaling PDBs: Introducing Multi-Cluster Resilience with x-pdb](../06_scaling-pdbs) - Intro to operators: [The Hidden Brains of Kubernetes: Meet Controllers Powering the Cloud](../02_controllers) ## Other stuff I learned or people i talk to