Skip to content

Commit

Permalink
docs(kuma-cp): add short explanation of high availability
Browse files Browse the repository at this point in the history
Signed-off-by: Mike Beaumont <[email protected]>
  • Loading branch information
michaelbeaumont committed Dec 13, 2024
1 parent 95aff94 commit d689b8a
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions app/_src/production/cp-deployment/high-availability.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
title: High availability
content_type: explanation
---

In order to ensure high availability (HA) of a control plane, both global and zone,
you can deploy more than one replica.

Each replica should be behind a load balancer such that requests to the control
plane API are distributed across the replicas.

On Kubernetes this is handled using a Deployment and a Service.
When your control plane isn't deployed on Kubernetes, it's up to you to handle
this within your infrastructure.

## Leader

Control planes also perform tasks independent of API requests. To avoid
conflicts, each of these tasks needs to be performed by only one instance at a
time, by the _leader_.

For each logical control plane, the instances work together to ensure there's only one
leader at a time. When the control planes are running in universal mode, this is
handled by the leader maintaining a lock on the database. In Kubernetes mode, it's
handled similarly but uses the built-in coordination API resources.

An example of a leader task is that a zone control plane leader
maintains a connection to the global control plane and both sends relevant
changes in the zone to the global control plane and receives relevant updates
about the global state.

0 comments on commit d689b8a

Please sign in to comment.