Fleet Management Tools in Kubernetes

Fleet Management Tools in Kubernetes

A plain-English guide to running many clusters as one: what a fleet is, how tools create, configure, roll out, govern, connect and observe clusters, and how to choose and adopt them step by step.

Imagine a delivery company with one van. The owner knows every scratch on it, fills the tank personally and remembers when the oil was last changed. Now the company grows to five hundred vans across twelve cities. Memory no longer works. Without a system for naming, servicing, updating and watching every vehicle, some will break down unnoticed, some will run old parts and nobody will know which is which. A fleet of Kubernetes clusters is that growing company, and fleet management tools are the system that keeps every van on the road.

This guide teaches fleet management from the ground up. You need no experience with multiple clusters. Every new word is explained when it first appears and every big idea comes with an everyday comparison. We walk through why organizations end up with many clusters, what becomes hard, the main families of tools, how rollouts, policy, access, secrets, networking, traffic, observability, cost and recovery work across a fleet, and how to choose, adopt and operate these tools safely. Tool names and features change quickly, so check current documentation before you commit.

1What Is a Fleet of Clusters?

A fleet is simply a group of Kubernetes clusters that you want to manage together, as one thing instead of many separate things.

A Kubernetes cluster is a group of machines that run your applications under the control of Kubernetes. When a company is young, it usually has one cluster, and the team knows every corner of it. As the company grows, one cluster becomes two, then five, then fifty. There might be one for testing and one for production, clusters in different countries, clusters for different business units and clusters at far away shops or factories. Each new cluster seems reasonable on the day it is created. Together they become a fleet, and a fleet behaves very differently from a single cluster.

The trouble is that every cluster needs the same chores. Each one must be created, upgraded, secured, monitored, backed up and eventually retired. Each one needs the same company rules and the same shared tools installed. Doing these chores by hand for one cluster is fine. Doing them by hand for fifty clusters is slow, error-prone and impossible to keep consistent. Fleet management tools exist to turn those chores into something automatic and repeatable.

Simple Analogy

A taxi company with one car can have the owner fill the tank, change the oil and check the tires personally. A company with five hundred cars needs a depot with schedules, mechanics, a fuel system and a dashboard showing every vehicle. Fleet management tools are the depot for your clusters.

Idea 1

One view

See every cluster, its version, its health and what runs on it from a single place.

Idea 2

One source of truth

Describe the desired setup once and have it applied everywhere it belongs.

Idea 3

One set of rules

Apply security and compliance rules to all clusters consistently and prove they are applied.

Idea 4

One way to change

Upgrade, roll out and recover using the same repeatable process on every cluster.

i
Key Idea

Fleet management is about replacing individual care with a system. The goal is that adding the fiftieth cluster costs almost no more effort than adding the second.

2Why Organizations End Up with Many Clusters

Nobody plans to manage fifty clusters. They arrive one sensible decision at a time.

Understanding why fleets form helps you design for them. Each reason below is valid on its own, and most organizations have several of them at once. Once you accept that many clusters are normal, the question changes from “how do we avoid this?” to “how do we manage this well?”

ReasonWhat Drives ItTypical Result
Environment separationKeep development, testing and production apartAt least three clusters per product or team
Geography and latencyServe users near where they liveClusters in several regions or countries
Data residency and regulationLaws that say data must stay in a countryOne cluster per regulated region
Blast radiusLimit how many applications one failure can hurtMany smaller clusters instead of one giant one
Team and business unit boundariesIndependent ownership, budgets and schedulesClusters per department or customer
Scale limitsA single cluster has practical size limitsWorkloads split across several clusters
Edge and branch locationsRun software in shops, factories, vehicles or cell towersHundreds or thousands of tiny clusters
Multi-cloud and hybridAvoid dependence on one provider, or use on-premises machinesClusters in different environments with different tools
Disaster recoveryBe able to run elsewhere if a region failsPaired clusters in separate failure domains
Simple Analogy

A restaurant chain opens a new branch for each neighborhood because customers do not want to travel across the city for lunch. Nobody calls this a mistake. But the head office now needs menus, suppliers, training and inspections that work across every branch. Clusters multiply for similar sensible reasons, and so does the need for a head office.

!
Cluster Sprawl

Clusters created casually, with no owner and no plan, become sprawl. Old clusters nobody remembers keep running, keep costing money and keep falling out of date. A fleet plan includes how clusters are retired, not only how they are created.

3What Gets Hard When You Have Many Clusters

Problems that were invisible with one cluster become daily pain with many.

With a single cluster, a skilled team knows its history and its quirks. With many clusters, quirks multiply. One cluster has an older version. Another has a tool installed by hand last year. A third was changed during an emergency and nobody wrote down how. The clusters slowly drift apart until no two are the same, and nobody can say with confidence what is running where.

Pain 1

Configuration drift

Clusters that began identical slowly differ because of manual changes, forgotten fixes and one-off experiments.

Pain 2

Version sprawl

Kubernetes releases come often. Staying on supported versions across dozens of clusters needs a disciplined, repeatable upgrade process.

Pain 3

Inconsistent security

A rule applied to nine clusters and forgotten on the tenth is exactly where an attacker will look.

Pain 4

Poor visibility

Without a shared view, simple questions such as which clusters run a vulnerable version take days to answer.

Pain 5

Duplicated effort

Every team solves the same problems again, in slightly different ways, wasting skilled time.

Pain 6

Hidden cost

Idle clusters, over-sized machines and forgotten test environments quietly drain budgets.

Simple Analogy

Imagine a school district where every school sets its own safety rules, buys its own books and writes its own timetable. Each school might do well, but the district cannot answer basic questions such as how many fire extinguishers were inspected this year. A district office with shared standards fixes that.

i
The Core Test

A good fleet setup lets you answer, within minutes, three questions: what exactly is running on every cluster, is it what we intended, and can we change it safely everywhere?

4Vocabulary of Fleet Management

A handful of words appear in every tool’s documentation. Learn them once and the tools become easier to compare.

Term 1

Fleet

The set of clusters managed together, often grouped by labels such as region, environment or owner.

Term 2

Management cluster or hub

The central cluster that hosts the fleet tools, stores the desired state and coordinates the other clusters.

Term 3

Member, spoke or workload cluster

A cluster managed by the hub, where the real applications run.

Term 4

Desired state

A written description of how things should be, stored somewhere reliable, usually in version control.

Term 5

Drift

The difference between the desired state and what is actually running.

Term 6

Propagation

Spreading a resource or application from the hub to chosen member clusters.

Term 7

Placement

The rules that decide which clusters should receive which workloads.

Term 8

Override

A small per-cluster change applied on top of a shared definition, such as a different replica count in one region.

Term 9

Reconciliation

The constant process of comparing desired and actual state and fixing differences.

Term 10

Rollout wave

A group of clusters updated together, so risky changes reach the least important clusters first.

Simple Analogy

Think of a head office that mails the same rulebook to every branch. The rulebook is the desired state. A branch that has crossed out a page has drifted. The sorting rules for which branches get which book are placement, and a sticky note added for one branch only is an override.

i
Different Words, Same Ideas

Every tool uses its own names. One calls the hub a management cluster, another calls it a hub, another a control plane. When reading documentation, translate each name into the ideas above and the tools quickly look similar.

5The Layers of Fleet Management

No single tool does everything. Fleet management is a stack of layers, and each layer has its own family of tools.

Beginners often search for the one tool that manages a fleet. In practice, the work divides into layers. Some tools create and upgrade the clusters themselves. Others deliver applications and configuration to them. Others enforce rules, connect their networks, collect their metrics and watch their cost. Understanding the layers lets you pick the right tool for each job and avoid expecting one tool to do the work of five.

flowchart TD
  A["Fleet inventory and identity: which clusters exist, who owns them"]
  B["Cluster lifecycle: create, upgrade, scale, retire"]
  C["Delivery: applications and configuration to every cluster"]
  D["Policy and security: rules applied and proven everywhere"]
  E["Networking: services and traffic across clusters"]
  F["Observability and cost: one view of health and spending"]
  G["Backup and recovery: restore and fail over between clusters"]
  A --> B
  B --> C
  C --> D
  D --> E
  E --> F
  F --> G
        
FIG 1 — The layers of fleet management
LayerQuestion It AnswersTypical Tool Families
Inventory and identityWhat clusters do we have and who owns them?Cluster registries, labels, management consoles
Cluster lifecycleHow are clusters built and upgraded consistently?Declarative cluster provisioning, cloud provider fleet services
DeliveryHow does the same application reach many clusters?GitOps controllers, multi-cluster workload propagation
Policy and securityHow do we enforce rules everywhere?Policy engines, identity and access tools, secret managers
NetworkingHow do services in different clusters talk?Cluster mesh tools, service meshes, global load balancers
Observability and costIs everything healthy and what does it cost?Metrics, logs and traces platforms, cost tools
Backup and recoveryCan we restore or fail over?Backup tools, replicated storage, traffic failover
Simple Analogy

A hospital needs doctors, nurses, pharmacists, cleaners and administrators. No single person does every job. Fleet management is similar: each layer has specialists, and the art lies in making them work together.

!
Beware the Everything Platform

Products that claim to do every layer often do some layers well and others poorly. Evaluate each layer separately and be willing to mix tools where one is clearly stronger.

6Cluster Lifecycle: Creating and Upgrading Clusters Consistently

Before anything can be managed, clusters must be created, and created the same way every time.

The first layer of fleet management is the lifecycle of the clusters themselves. Building a cluster by clicking through a cloud console or running a long sequence of commands produces a unique snowflake that nobody can reproduce. Fleet teams instead describe clusters as data: how many machines, which Kubernetes version, which network, which add-ons. A tool reads that description and builds the cluster to match. If a cluster is damaged, the same description can build a replacement.

1

Describe the cluster

Write down size, version, region, network and required add-ons in a standard template.

2

Build it automatically

A tool reads the description and creates machines, networks and the Kubernetes control components.

3

Install the baseline

The standard bundle of add-ons, policies and monitoring agents is applied before any team uses the cluster.

4

Register it in the fleet

The new cluster receives labels and joins the inventory so the delivery and policy layers can find it.

5

Upgrade by changing the description

To move to a newer version, change the version in the description, and the tool performs a controlled rolling upgrade.

6

Retire cleanly

When a cluster is no longer needed, the tool removes it along with its machines and records, so nothing lingers.

Simple Analogy

A bakery that bakes each loaf from memory produces slightly different bread every day. A bakery that follows a written recipe and uses a standard oven produces the same loaf in every branch. Describing clusters as data is the written recipe.

i
Treat Clusters as Replaceable

The healthiest attitude is that any cluster can be rebuilt from its description in a short time. Clusters you are afraid to rebuild are clusters you do not truly control.

7Cluster API: Kubernetes Managing Kubernetes

Cluster API uses the same declarative style as Kubernetes itself, but the things it manages are other clusters.

Cluster API is a project from the Kubernetes community, developed by a special interest group that focuses on cluster lifecycle. Its big idea is elegant. Instead of inventing a separate system for building clusters, it reuses Kubernetes. A small cluster, called the management cluster, runs controllers that understand new resource types such as Cluster, Machine and control plane definitions. You write a resource that says “I want a cluster with three control machines and five worker machines at this version”, and the controllers create the real thing in a cloud or a data center.

flowchart LR
  A["Engineer or pipeline writes cluster description"] --> B["Management cluster with Cluster API controllers"]
  B --> C["Infrastructure provider for a cloud or data center"]
  C --> D["Workload cluster 1"]
  C --> E["Workload cluster 2"]
  C --> F["Workload cluster 3"]
        
FIG 2 — A management cluster creating and maintaining workload clusters
Piece 1

Management cluster

The cluster that runs the controllers. Everything about the fleet’s clusters is stored here as resources.

Piece 2

Infrastructure providers

Plug-ins that know how to create machines and networks in a particular environment, such as a public cloud or a virtualization platform.

Piece 3

Machine groups

Descriptions of sets of worker machines that behave a bit like Deployments, so scaling and rolling replacement work the same way.

Piece 4

Cluster templates

Reusable cluster definitions so that many clusters can be stamped from one approved pattern.

Simple Analogy

A construction company keeps standard house plans in the head office. When a customer orders a house, the site team reads the plan and builds it. If the plan changes, newly built houses follow the new plan. The management cluster holds the plans, and the providers are the site teams.

Strengths and cautions

Advantages

  • Same declarative style and tooling you already use for applications
  • Works across many environments through providers
  • Upgrades and scaling are controlled, rolling operations
  • Cluster definitions can live in version control

Disadvantages / Trade-offs

  • The management cluster becomes critical and must be protected
  • Learning curve for the several resource types involved
  • Provider maturity varies between environments
  • Does not by itself deliver applications or policies
!
Protect the Management Cluster

If the management cluster is lost without a backup, you lose the record of how your clusters were meant to look. Keep it small, tightly secured, backed up and rebuildable from version control.

8Cloud Provider Fleet Services and Managed Options

Cloud providers and platform vendors package fleet features into managed products, which can save a lot of work.

If most of your clusters run in a single public cloud, the provider’s own fleet features may be the shortest path. Major providers offer ways to group clusters, orchestrate upgrades across them, share configuration and see them in one console. There are also vendor platforms that manage clusters across many clouds and on-premises environments, and products that attach clusters running anywhere to a central management service. The exact names and features change often, so always check the provider’s current documentation before deciding.

Option TypeWhat It Usually OffersGood WhenWatch Out For
Provider fleet features for managed clustersGrouping, update sequencing, shared configuration and policy, central dashboardsMost clusters are in one providerLock-in and uneven support for clusters elsewhere
Services that attach outside clustersA central view and some policy and delivery for clusters running anywhereHybrid environments with on-premises clustersFeature gaps compared with native clusters
Vendor management platformsCluster creation, access control, catalogs and delivery across many environmentsTeams that want an integrated product with supportLicense cost and product-specific ways of working
Open source building blocksFlexible lifecycle, delivery and placement tools you assemble yourselfYou want control and avoid lock-inYou operate the pieces yourself
Simple Analogy

You can cook dinner from raw ingredients, buy a meal kit or order from a restaurant. The kit and the restaurant save time but give you less control over the final dish. Managed fleet services are the kit and the restaurant. Open source tools are the raw ingredients.

i
Check the Exit Path

Before adopting a managed service, ask how hard it would be to leave. Keeping your definitions in open formats and version control makes switching tools a smaller project.

9Push Versus Pull: Two Ways to Reach Many Clusters

Every delivery tool must choose between pushing changes out from the center and letting each cluster pull them in.

There are two basic shapes for delivering configuration to a fleet. In the push model, the central hub holds credentials to every member cluster and applies changes to them directly. In the pull model, each member cluster runs a small agent that reaches out to a trusted source, such as a Git repository or the hub, and applies what it finds. Both work, and each has strengths and weaknesses that matter a great deal at scale and in sensitive networks.

flowchart LR
  subgraph PUSH["Push model"]
    H1["Hub with credentials"] --> M1["Member cluster A"]
    H1 --> M2["Member cluster B"]
  end
  subgraph PULL["Pull model"]
    G["Git or hub source"] --> A1["Agent in cluster C"]
    G --> A2["Agent in cluster D"]
  end
        
FIG 3 — Push from the center or pull from the edge
QuestionPush ModelPull Model
Where do credentials live?The hub holds access to every clusterEach cluster holds only a read credential for the source
Network directionHub must reach every clusterClusters only need outbound access
Behind firewalls or at the edgeHarderEasier
ScalingThe hub does the work for all clustersWork is spread across clusters
Immediate feedbackSimple to see results at the centerNeeds status to be reported back
Blast radius of hub compromiseLarge, since the hub can touch everythingSmaller, since clusters choose what to apply
Simple Analogy

A head office can phone every branch and read out the new instructions, which is push. Or it can post the instructions on a notice board that each branch checks every morning, which is pull. The phone approach is fast but needs a line to every branch. The notice board works even for branches in remote places.

i
Hybrid Is Common

Many fleets use pull for edge and sensitive clusters, and push or hub-managed delivery for clusters inside a trusted network. Choose per group of clusters, not once for everything.

10GitOps for Fleets: The Foundation of Delivery

Most fleet delivery tools are built on one idea: Git holds the truth, and software makes reality match it.

GitOps means that the desired state of your systems is stored in a version control repository. Software running in or near the cluster continuously compares the repository with the cluster and corrects any difference. Every change is a reviewed commit, every commit has an author and a time, and rolling back means reverting a commit. For one cluster this is neat. For a fleet it is transformative, because one repository can describe every cluster, and the same review process protects them all.

1

Change is proposed in Git

An engineer edits the desired state and opens a review, instead of touching clusters directly.

2

Review and automated checks

Teammates and automated checks examine the change, including policy checks and tests.

3

Merge records the decision

The merged commit becomes the new desired state, with a permanent history.

4

Controllers reconcile

Delivery controllers notice the change and apply it to the matching clusters in the order you defined.

5

Drift is corrected

If anyone changes a cluster by hand, the controller notices and either reports or restores the declared state.

Simple Analogy

Think of a shared recipe book that every branch kitchen must follow. A cook who wants to change the recipe proposes the edit, the head chef reviews it, and after approval every kitchen updates. If a branch cook secretly adds extra salt, the weekly inspector notices and corrects it.

How repositories are organized for fleets

Layout 1

Shared base plus per-cluster folders

A common base holds what every cluster needs. Small folders per cluster or per group add differences.

Layout 2

Per-environment branches or folders

Development, staging and production each have their own area, so promotion is an explicit act.

Layout 3

Separate repositories by ownership

The platform team owns a repository of shared add-ons. Application teams own their own repositories.

Layout 4

Generated definitions

Templates and generators build per-cluster definitions from a short list of cluster properties.

!
Avoid One Folder Per Cluster Copies

Copying the full definition into a separate folder for every cluster brings drift back into Git itself. Keep one shared base and make cluster folders small.

11Argo CD and ApplicationSets

Argo CD is one of the most widely used GitOps tools, and its generator feature turns one template into many cluster deployments.

Argo CD is a GitOps delivery tool and a graduated project of the Cloud Native Computing Foundation. It watches Git repositories and applies what it finds to clusters. A single Argo CD installation can be told about many clusters by registering them, which makes it a natural hub in a push-style fleet design. Its friendly web interface shows every application, its health and whether it matches Git, which is a big help for people who are new to GitOps.

For fleets, the key feature is the ApplicationSet. Instead of writing one application definition for every cluster, you write a single template and a generator. The generator produces a list of targets, and the template is filled in once for each target. When a new cluster is registered and carries the right labels, the generator notices, and the applications appear on the new cluster automatically.

flowchart LR
  A["One ApplicationSet template"] --> B["Generator finds clusters by label"]
  B --> C["Application for cluster 1"]
  B --> D["Application for cluster 2"]
  B --> E["Application for cluster 3"]
  C --> F["Cluster 1 matches Git"]
  D --> G["Cluster 2 matches Git"]
  E --> H["Cluster 3 matches Git"]
        
FIG 4 — One template producing an application per cluster
Generator 1

Cluster generator

Creates an application for every registered cluster that matches a label selector, such as all production clusters in a region.

Generator 2

List generator

Uses an explicit list of targets and values, useful for small, hand-picked sets.

Generator 3

Git generator

Reads folders or files in a repository and makes one application per folder or per file entry.

Generator 4

Matrix and merge combinations

Combine generators, for example every application folder multiplied by every matching cluster.

Simple Analogy

A printing press does not need a separate plate for every copy of a newspaper. One plate makes thousands of copies, and the delivery list decides which neighborhood gets each bundle. The template is the plate, and the generator is the delivery list.

Things to plan for

Advantages

  • Excellent visibility through a rich interface
  • Flexible generators for many fleet layouts
  • Strong community and wide ecosystem
  • Clear health and sync status per application

Disadvantages / Trade-offs

  • A central hub with credentials for many clusters is a sensitive target
  • A single hub must be sized and made highly available for large fleets
  • Network access from the hub to each cluster is required in the classic design
  • Agent-based and sharded designs exist but add moving parts, so check current options
!
Generated Applications Can Surprise You

A generator that matches too many clusters can roll a change out much more widely than intended. Use careful selectors, review changes to generators as seriously as changes to applications, and use progressive rollout features where available.

12Flux: Pull-Based GitOps in Every Cluster

Flux takes the pull approach: every cluster runs its own small set of controllers that read from Git.

Flux is another graduated Cloud Native Computing Foundation project for GitOps. Its design is a set of focused controllers that run inside each cluster. One controller fetches sources such as Git repositories or container registries that hold configuration. Others apply plain configuration, render package-style templates and watch for new image versions. Because each cluster reaches out for its own configuration, the central point does not need credentials to every cluster, and clusters behind firewalls or at the edge are easy to include.

Building Block 1

Source controller

Fetches repositories and artifacts and makes them available inside the cluster.

Building Block 2

Configuration controller

Applies the configuration found in a source and keeps the cluster matching it, including removing things deleted from Git.

Building Block 3

Package controller

Installs and upgrades packaged applications in the common chart format.

Building Block 4

Notification and image controllers

Send alerts to chat tools and optionally update Git when new image versions appear.

Simple Analogy

Instead of a head office phoning every branch, each branch manager checks the shared notice board every few minutes and updates their own shop. No phone line to every branch is needed, and a branch with poor connections catches up whenever it can.

Fleet layouts with Flux

For fleets, the common pattern is a repository with a shared base for add-ons and applications, and a small set of folders describing each cluster or group of clusters. Each cluster is bootstrapped once to point at its own folder. Flux also has a feature for managing remote clusters from one place, using stored access, for teams that prefer a hub-style design, so the choice of push or pull is flexible.

QuestionArgo CD StyleFlux Style
Where do controllers run?Usually in a central hubUsually in every cluster
Main interfaceRich web interfaceCommand line and resources, with optional dashboards from other projects
Fan-out to many clustersApplicationSet generatorsRepository structure and per-cluster bootstrap
Credential modelHub stores access to clustersEach cluster holds only a read credential for sources
Good fitTeams that want visibility and central controlTeams that want decentralization, edge and strong isolation
i
Both Are Valid

Choosing between these two is rarely a mistake. The more important decisions are your repository layout, your promotion process and your rollout order. Pick one, learn it deeply and invest in the layout.

13Rancher Fleet: GitOps Built for Very Large Numbers

Some tools are designed from the start for thousands of clusters, and Fleet from the Rancher ecosystem is one of them.

Fleet is a GitOps engine that comes from the Rancher project, now stewarded by SUSE. It is designed for managing very large numbers of clusters, including small ones at the edge. A central manager reads Git repositories and turns their contents into bundles. A small agent in each downstream cluster pulls the bundles meant for it and applies them. Clusters are organized into groups using labels, and bundles are targeted at groups, so adding a cluster with the right label is enough to give it the standard setup.

1

Register repositories

Tell the central manager which Git repositories and folders hold configuration.

2

Group the clusters

Labels or cluster groups describe which clusters belong together, for example all store clusters in one country.

3

Target the bundles

Each folder is turned into a bundle with rules about which groups should receive it and what to customize per group.

4

Agents apply and report

Agents in each cluster apply the bundles and report status back, so the manager shows an overall picture.

Simple Analogy

A retail chain with thousands of tiny kiosks cannot send an engineer to each one. Instead, each kiosk has a small receiver that fetches the latest menu from head office on its own. Fleet is that receiver and the head office catalog.

Where it shines

Retail stores, factories, vehicles and branch offices where there are many small clusters, unreliable connections and a need for the same baseline everywhere, with small differences per site.

i
Works With or Without the Rancher Console

Fleet can be used inside the Rancher management product or as a separate component. Check the current documentation for supported deployment modes before planning.

14Workload Propagation: Karmada and Open Cluster Management

GitOps tools copy files to clusters. Propagation tools go further and treat the whole fleet as one place to run workloads.

There is a second family of fleet tools that thinks differently. Instead of syncing a repository to each cluster, they let you create an ordinary Kubernetes resource once in a central control plane and then use policies to spread it to member clusters. The tool takes care of where it runs, can adjust it for each cluster, can collect status from all of them and can move work between clusters when one fails. This feels like using one big virtual cluster made out of many real ones.

Karmada is a well-known example. According to news reports in September 2026, it reached graduated status in the Cloud Native Computing Foundation, the highest maturity level. It keeps ordinary Kubernetes manifests unchanged and adds two main policy resources: a propagation policy that decides which clusters get a workload, and an override policy that adjusts the workload per cluster, region or provider. Open Cluster Management is another community project built around a hub and spokes. It uses an agent in each managed cluster, work resources that carry manifests to a cluster and placement resources that choose which clusters should receive them.

flowchart TD
  A["User creates a normal workload on the control plane"] --> B["Propagation policy chooses clusters"]
  B --> C["Override policy adjusts per cluster"]
  C --> D["Workload runs in cluster in region A"]
  C --> E["Workload runs in cluster in region B"]
  C --> F["Workload runs in cluster at the edge"]
  D --> G["Status collected back to control plane"]
  E --> G
  F --> G
        
FIG 5 — A propagation-style tool spreading one workload across clusters
IdeaGitOps Delivery ToolsPropagation Tools
Starting pointFiles in GitResources created on a central control plane
Main strengthAudit trail, review process, drift correctionPlacement, failover and fleet-wide scheduling
Status viewPer application sync statusAggregated status across clusters
Failover between clustersUsually not built inOften a built-in capability
Can be combinedYes. Many teams store propagation policies in Git and apply them with a GitOps tool.
Simple Analogy

GitOps is like mailing the same instruction sheet to every branch. Propagation is like a dispatcher who says “put three delivery vans in the north, two in the south, and if the southern depot closes, move its vans north”. The dispatcher thinks about where to place work, not only what to say.

!
Not Every Workload Moves Easily

Stateless services are easy to spread. Workloads that depend on local storage, special hardware or specific network addresses need extra thought before they are placed or failed over automatically.

i
History Lesson

Earlier community efforts at federating Kubernetes were retired. Today’s tools are more modest and flexible, preferring to keep standard resources unchanged. Always check a project’s current maturity and activity before adopting it.

15Placement: Deciding Which Clusters Get Which Workloads

With many clusters, the question of where a workload should run becomes a design decision of its own.

Placement is the set of rules that decide which clusters receive a workload. The simplest rule is “all clusters”. More useful rules look at labels such as environment, region, provider or capability. A workload that needs a graphics processor should only be placed on clusters labeled as having one. A service that must stay in a country should only be placed on clusters in that country. Good placement rules are readable, based on labels and safe by default.

Rule 1

By label

Choose clusters whose labels match, such as environment production and region in Europe.

Rule 2

By capability

Choose clusters that have required hardware or add-ons, such as accelerators or a particular storage type.

Rule 3

By capacity

Prefer clusters with spare resources, using reported available capacity.

Rule 4

By spread

Require that replicas land in several regions or providers to avoid a single point of failure.

Rule 5

By priority

Give important workloads first choice when capacity is short. Some tools support priority-based scheduling for this.

Rule 6

By cost

Prefer cheaper clusters or providers for work that is flexible about where it runs.

Simple Analogy

A logistics company decides which warehouse should ship each order. It considers where the goods are stored, how close the customer is, which warehouse is busy and which is cheapest. Placement rules are the dispatcher’s checklist.

i
Labels Are Your Control Panel

Nearly every placement decision depends on cluster labels. Agree on a small, documented set of label names and values early, and enforce them when clusters are registered.

ANTI-PATTERN-01 Avoid
Problem

Cluster labels invented ad hoc by each team, with different names and meanings.

Why It’s Harmful

Placement rules become unreliable. A rule meant for production clusters may miss some or hit others, and nobody can trust the fleet inventory.

Correct Approach

Define a label standard, validate labels when a cluster is registered and review changes to labels as carefully as code.

16Overrides: Small Differences on a Shared Base

Clusters are never completely identical. Overrides let you keep one shared definition and describe only the differences.

A production cluster in Europe may need more replicas than one in a small region. A cluster in one cloud may need a different storage class than a cluster in another. A cluster in a regulated country may need different logging settings. Writing a complete separate definition for each cluster invites mistakes. A better approach is one shared base definition plus small overrides that change only what must differ.

flowchart LR
  A["Shared base definition"] --> B["Override for region A"]
  A --> C["Override for region B"]
  A --> D["Override for edge sites"]
  B --> E["Final definition cluster A"]
  C --> F["Final definition cluster B"]
  D --> G["Final definition edge sites"]
        
FIG 6 — A shared base with small per-group overrides
1

Keep the base boring

The base contains everything that should be the same everywhere and nothing that is clearly local.

2

Group by real differences

Create overrides per region, provider, tier or size class rather than per individual cluster wherever possible.

3

Keep overrides small and explicit

Each override changes a few named settings and explains why in a comment or description.

4

Review the final result

Use tooling that shows the final rendered definition for a cluster, so people can see the combined effect.

Simple Analogy

A franchise uses one standard menu and allows each country to change a few items, such as a local sauce. If every country rewrote the whole menu, it would no longer be the same brand. Overrides keep the brand consistent while allowing local taste.

!
Override Creep

Overrides tend to multiply. When a cluster has dozens of unique overrides, it is no longer part of the fleet in any meaningful way. Track the number of overrides per cluster and treat a growing count as a warning.

17Rolling Out Changes in Waves

The power to change fifty clusters at once is also the power to break fifty clusters at once. Waves make it safe.

The most important fleet safety habit is to never change every cluster at the same moment. Instead, changes move through the fleet in rings. The first ring is a small group of low-risk clusters, such as development or internal ones. If the change behaves well there for some time, it moves to the next ring, and so on until production clusters are updated last. If a problem appears early, the rollout stops while only a few clusters are affected.

flowchart LR
  A["Ring 0: lab and test clusters"] --> B["Wait and verify"]
  B --> C["Ring 1: internal and low-risk clusters"]
  C --> D["Wait and verify"]
  D --> E["Ring 2: small share of production"]
  E --> F["Wait and verify"]
  F --> G["Ring 3: remaining production"]
        
FIG 7 — A ring-based rollout across the fleet
Use 1

Kubernetes version upgrades

Move clusters to a new version ring by ring, checking workloads and add-ons at each stage.

Use 2

Add-on and controller updates

Roll out new versions of shared tools such as ingress, policy engines and monitoring agents carefully.

Use 3

Application releases

Release a new application version to a few clusters first, then expand.

Use 4

Policy changes

Introduce a new rule in audit mode on a few clusters before enforcing it everywhere.

Simple Analogy

A restaurant chain tests a new recipe in one branch for a week before changing all branches. If customers dislike it, only one branch suffers. Rings are that test branch, repeated in stages.

What to check between waves

Signals That Say Continue

  • Error rates and latency match the baseline
  • No new alerts or restart loops
  • Add-ons and nodes report healthy
  • The agreed waiting time has passed

Signals That Say Stop

  • Rising errors or slower responses
  • Failed or stuck rollouts on any cluster
  • Unexpected resource pressure after the change
  • Support reports from users of the changed clusters
i
Automate the Pause

Where tools allow, make the system pause automatically between waves and continue only when health checks pass. People are slow and tired at the worst moments. Automation is not.

18Detecting and Handling Drift

Even with the best tools, someone will eventually change a cluster by hand. A good fleet notices.

Drift is any difference between the desired state in Git and the live state in a cluster. It usually begins innocently. An engineer fixes an urgent problem directly in a cluster, intending to update Git later, and forgets. Over time, the clusters differ from the plan, and the next automated change may fail or silently undo the fix. Fleet tools can detect drift continuously and respond in different ways.

ResponseWhat HappensBest For
Report onlyThe tool marks the difference and alerts people but changes nothingEarly adoption and sensitive clusters
Auto-correctThe tool restores the declared state automaticallyMature setups with confidence in Git as truth
Block changesPolicy prevents manual edits to managed resourcesHigh security or regulated clusters
Adopt the changePeople review the difference and copy it into GitCases where the manual fix was actually correct
Simple Analogy

A museum has a written plan for where each painting hangs. A guard who finds a painting moved can report it, put it back, lock the room or decide the new position is better and update the plan. Which response is right depends on the museum and the painting.

Emergency access without chaos

Banning all manual changes is unrealistic, because real emergencies demand speed. A sensible approach is a documented break-glass process. Engineers may change a cluster directly in an emergency, the access is logged and time-limited, and the fix must be copied into Git within an agreed time, after which drift detection is clean again. This keeps both speed and discipline.

!
Silent Auto-Correct Can Hide Problems

If a tool quietly reverts changes, a recurring manual fix may be undone every few minutes while someone wonders why the problem keeps returning. Alert on drift events even when they are corrected automatically.

19Policy at Fleet Scale

Rules written once should protect every cluster, and you should be able to prove it.

Security and compliance rules are only as strong as their weakest cluster. Policy engines for Kubernetes, such as Kyverno and Gatekeeper, let you write rules such as “no privileged containers” or “all images must come from approved registries”. In a fleet, those policies are delivered like any other configuration: stored in Git, distributed by your delivery tools and installed on each cluster. Reports from each cluster flow back, so the center can see which clusters comply.

1

Write policies once in a central repository

The security team owns the shared rules, with reviews and tests.

2

Distribute by group

Delivery tools install the engine and the policies on every cluster that matches, with stricter sets for production.

3

Start in audit mode

New rules report violations first, giving teams time to fix them before enforcement.

4

Collect results centrally

Policy reports from every cluster feed a fleet dashboard showing which clusters and teams are compliant.

5

Enforce in waves

Move rules from audit to enforce ring by ring, with announcements and a clear exception process.

Simple Analogy

A national food safety law is only meaningful if every restaurant is inspected and the results are collected. Writing the law is the policy. Visiting every restaurant and recording results is the fleet-wide reporting.

i
Policy Engines Are Also Fleet Components

A policy engine on every cluster must itself be upgraded, monitored and kept consistent. Include it in your baseline bundle and your ring-based rollouts.

20Identity, Access and Security Across the Fleet

Who may do what, on which cluster, is much harder to answer when there are fifty clusters.

Every cluster has its own access rules, called role-based access control. Maintaining them by hand across many clusters leads to people with leftover access, inconsistent roles and slow removal when someone leaves. Fleet security therefore starts with connecting every cluster to one identity system, so that a person logs in with their company account and receives roles based on group membership. Removing someone from a group removes access everywhere.

Control 1

Single sign-on

Use the company identity provider for all clusters so accounts and groups are managed in one place.

Control 2

Standard roles

Define a small set of roles, such as viewer, developer and administrator, and deliver them to every cluster as configuration.

Control 3

Short-lived access

Grant elevated permissions for limited time windows with approvals and logs.

Control 4

Hub protection

Treat the management cluster and any fleet credentials as the most sensitive assets, with strict access and monitoring.

Simple Analogy

An office building with fifty doors is safer when every employee has one badge that is switched on or off centrally, instead of fifty separate keys that must be collected when someone resigns.

ANTI-PATTERN-02 Avoid
Problem

Shared administrator credentials, passed around by chat, used on every cluster.

Why It’s Harmful

Nobody knows who did what, access cannot be removed for one person and a single leak exposes the whole fleet.

Correct Approach

Use individual identities through single sign-on, short-lived elevated access and audit logs shipped to a central place.

!
The Hub Is a Master Key

In push-style designs, whoever controls the hub controls every member cluster. Lock it down, separate who may change fleet configuration from who may log in to it and monitor every action.

21Secrets Across Many Clusters

GitOps wants everything in Git, but passwords and keys must never sit in Git as plain text.

A fleet needs secrets such as database passwords, access tokens and certificates, and every cluster may need a different set. The tension is clear: the whole fleet idea is to keep desired state in Git, yet secrets cannot be stored openly there. Several patterns solve this, and choosing among them is one of the most important fleet design decisions.

Pattern 1

Encrypted secrets in Git

Secrets are encrypted before being committed. Only a key held by the cluster or a trusted system can decrypt them.

Pattern 2

External secret store

Secrets live in a dedicated vault. A controller in each cluster fetches the ones that cluster is allowed to see and creates Kubernetes secrets from them.

Pattern 3

Workload identity

Applications prove who they are with short-lived identity and fetch secrets directly, so no long-lived password is stored in the cluster at all.

Pattern 4

Hub-distributed secrets

A central tool distributes secrets to member clusters. Simple, but it concentrates risk at the hub.

Simple Analogy

A hotel does not write guest room codes on the public notice board. It keeps them in a safe at the front desk and gives each guest only their own code. An external secret store is that safe, and each cluster is a guest who receives only what it needs.

Rotation matters more than storage

Where secrets are stored is only half the question. The other half is how quickly you can change them. When a secret leaks, you must replace it everywhere it is used, fast. Fleets that fetch secrets from a central store can rotate them in one place. Fleets with secrets baked into each cluster face a slow, manual scramble.

!
Never Commit Plain Secrets

A secret committed in clear text stays in Git history forever, even after deletion. Use automated scanning in your repositories to catch accidents early, and treat any exposed secret as compromised.

22Multi-Cluster Networking and Service Discovery

By default, clusters are islands. Fleet networking builds bridges when services in different clusters must talk.

Inside one cluster, pods find each other easily. Between clusters, there is no such automatic discovery. If a service in one cluster needs to call a service in another, you must decide how. Some fleets keep clusters fully independent and expose shared services through ordinary public or private addresses. Others connect cluster networks so that pods can reach each other directly and a service can be discovered across clusters as if it were local.

flowchart LR
  subgraph C1["Cluster 1"]
    A["Client pod"]
    S1["Service backends"]
  end
  subgraph C2["Cluster 2"]
    S2["Service backends"]
  end
  A --> S1
  A -- "cross-cluster link" --> S2
        
FIG 8 — A client reaching service backends in its own and in another cluster
ApproachHow It WorksGood ForWatch Out For
Independent clusters with public or private endpointsServices are exposed through normal load balancers and DNS namesSimple, loosely coupled setupsManual discovery, more public exposure
Standard multi-cluster service APIA community standard lets a service be exported from one cluster and imported by othersPortable discovery across tools that support itDepends on a compatible network layer
Cluster mesh in the network pluginThe network plugin connects clusters and shares services directlyHigh performance, low overheadRequires compatible networking in every cluster
Service mesh across clustersA service mesh links proxies in several clusters with shared identity and routing rulesRich traffic control and security between clustersMore complexity and operational cost
Tunnel-style connectorsSecure tunnels link otherwise separate cluster networksConnecting different environmentsAddress overlaps, throughput limits
Simple Analogy

Villages on separate islands can trade by ship, by bridge or by a shared telephone exchange. Each approach has a cost and a speed. Cross-cluster networking is the choice between ships, bridges and telephones.

!
Plan Address Ranges Early

Connecting clusters whose internal address ranges overlap is painful. Allocate unique address ranges for every cluster from the start, even if you do not plan to connect them yet.

i
Prefer Loose Coupling

The more deeply clusters depend on each other’s networks, the more a failure in one can spread to others. Connect clusters only for services that truly need it.

23Global Traffic and Failover

When the same application runs in several clusters, something must decide where each user’s request goes.

If an application runs in clusters in three regions, users need to be sent to the best one. That decision happens above the clusters, using global load balancing, geographic DNS or an edge network. The system checks the health of each region and sends users to the nearest healthy one. If a whole region fails, traffic shifts to the others. This is the user-facing half of multi-cluster resilience, and it needs to be tested as carefully as the cluster half.

flowchart TD
  U["Users"] --> G["Global traffic layer with health checks"]
  G --> R1["Cluster in region 1"]
  G --> R2["Cluster in region 2"]
  G --> R3["Cluster in region 3"]
  R2 -. "region fails" .-> X["Marked unhealthy, traffic moves to others"]
        
FIG 9 — Global traffic steering around a failed region
Mode 1

Active-active

All regions serve users at the same time. Best use of capacity and fastest failover, but data must be shared or replicated carefully.

Mode 2

Active-passive

One region serves and another waits ready. Simpler for data, but the standby costs money and must be proven to work.

Mode 3

Regional pinning

Users of each country are always served from one region for legal or latency reasons.

Mode 4

Weighted and gradual shifts

Send a controlled share of traffic to a cluster, useful for new clusters and safe migrations.

Simple Analogy

A taxi dispatcher sends each customer to the nearest available car. If a depot floods, the dispatcher stops sending cars from it. The traffic layer is the dispatcher, and health checks are the radio calls reporting which depots are open.

!
Data Is the Hard Part

Moving traffic is easy. Moving data is not. Before relying on multi-region failover, be clear about where state lives, how fast it replicates and how much loss you can accept.

24Fleet-Wide Observability

You need to see every cluster at once, without jumping between fifty separate dashboards.

Each cluster produces metrics, logs and traces. If each cluster keeps its own data in its own tools, understanding the fleet means opening dozens of screens. Fleet observability gathers data into shared places. A common design keeps a small collector in each cluster that forwards data to a central platform, or keeps data locally and lets a central query layer search across all clusters. Both approaches aim at the same result: one dashboard where you can compare clusters side by side.

flowchart LR
  A["Cluster 1 collectors"] --> D["Central metrics store"]
  B["Cluster 2 collectors"] --> D
  C["Cluster 3 collectors"] --> D
  A --> E["Central log store"]
  B --> E
  C --> E
  D --> F["Fleet dashboards and alerts"]
  E --> F
        
FIG 10 — Collectors in every cluster feeding shared stores and dashboards
DesignHow It WorksStrengthTrade-off
Forward everything to a central storeCollectors in each cluster send data to one platformOne place to query and alertNetwork cost and a central system that must scale
Keep data local, query globallyEach cluster stores its own data and a query layer fans out searchesLess data movementSlower queries and dependence on every cluster being reachable
Hybrid with summariesDetailed data stays local and key summaries go to the centerGood balance of cost and visibilityDetail needs a second step to reach
Simple Analogy

A chain of shops can send every receipt to head office, or keep receipts in each shop and send daily totals. Sending everything gives complete answers at high cost. Sending totals is cheap but needs a trip to the shop for detail.

Labels make fleet data useful

Every metric and log line should carry the name of the cluster, its region, its environment and its owner. Without these labels, data from many clusters becomes a muddle. With them, you can ask fleet questions such as which clusters in Europe have the highest error rate, or which clusters have restarted pods in the last hour.

i
Monitor the Fleet Tools Too

The management cluster, delivery controllers and cluster provisioning components are critical. Give them their own alerts, such as sync failures, stuck cluster upgrades and unreachable member clusters.

25Cost Visibility and Fleet Efficiency

A fleet can hide a lot of waste. Seeing cost by cluster, team and workload is the first step to reducing it.

Every cluster has a baseline cost before any application runs: control plane fees, base machines, load balancers, monitoring and storage. Multiply that by fifty clusters and the baseline is substantial. On top of that, over-sized machines, idle test clusters and forgotten experiments quietly add up. Fleet cost management starts with allocation: tagging every resource so you know which team or product owns each cluster, then measuring how much of the paid capacity is actually used.

Lever 1

Consolidate

Merge small, underused clusters where isolation requirements allow, since each cluster has fixed overhead.

Lever 2

Right-size

Match machine sizes and counts to real usage rather than guesses.

Lever 3

Schedule non-production

Turn development and test clusters down at night and on weekends.

Lever 4

Expire temporary clusters

Give short-lived clusters an owner and an end date, and remove them automatically.

Lever 5

Use discounted capacity wisely

Run flexible workloads on cheaper interruptible machines and keep critical ones on stable capacity.

Lever 6

Show cost to owners

People manage what they can see. Send each team a regular cost report for their clusters.

Simple Analogy

A company with many small offices pays rent, electricity and internet for each one, even if only three people work in some of them. Combining offices and switching off empty rooms cuts cost without reducing anyone’s work.

i
Fewer, Larger Clusters Cost Less but Risk More

Consolidation lowers overhead but enlarges the blast radius of a failure. The right balance depends on your isolation, compliance and reliability needs, so cost is one input to the decision, not the only one.

26Backup and Disaster Recovery for a Fleet

A fleet gives you more places to run, which only helps if you can actually recover into them.

Disaster recovery in a fleet has several layers. First, you must be able to rebuild a cluster from its description, which declarative lifecycle tools provide. Second, you must be able to restore its applications and configuration, which GitOps provides. Third, you must be able to restore its data, which needs backups and replication. Many teams have the first two and forget the third, which is where the real loss occurs.

1

Rebuild the cluster

Create a replacement cluster from its stored definition in a healthy region.

2

Reapply configuration

Let the delivery tools install the baseline add-ons, policies and applications from Git.

3

Restore data

Restore volumes and databases from backups or promote replicas, according to the recovery plan.

4

Shift traffic

Gradually send users to the recovered cluster and watch health closely.

5

Review and improve

Record how long each step took and fix whatever was slow or missing.

Simple Analogy

If a shop burns down, you need the building plan to rebuild, the shelf layout to restock and the sales ledger to know who owes what. A fleet’s cluster definitions, Git configuration and data backups are the plan, the layout and the ledger.

!
Practice the Recovery

A recovery plan that has never been rehearsed is only a hope. Schedule regular drills where you actually rebuild a non-critical cluster from scratch and measure how long it takes.

i
Back Up the Hub

Remember to protect the management cluster and the secrets that unlock the rest of the fleet. They are the starting point for every recovery.

27Fleet Topologies: How to Arrange Hubs and Members

The way you connect management clusters to member clusters shapes your reliability, security and scale.

flowchart TD
  subgraph T1["Single hub"]
    H1["Hub"] --> A1["Members"]
  end
  subgraph T2["Regional hubs"]
    H2["Global control"] --> R1["Regional hub 1"]
    H2 --> R2["Regional hub 2"]
    R1 --> A2["Members in region 1"]
    R2 --> A3["Members in region 2"]
  end
  subgraph T3["Peer clusters with no hub"]
    P1["Cluster"] --- P2["Cluster"]
    P2 --- P3["Cluster"]
  end
        
FIG 11 — Single hub, regional hubs and hub-less topologies
TopologyStrengthsWeaknessesGood For
Single hubSimple, one place to lookSingle point of failure and large blast radiusSmall and medium fleets
Regional hubsBetter scale and fault isolation, closer to membersMore hubs to operate and keep consistentLarge, geographically spread fleets
Hub per environmentStrict separation of production from non-productionChanges must be promoted between hubsRegulated organizations
Hub-less, pull-based clustersNo central dependency, each cluster is self-reliantHarder to get a single view and to coordinate wavesEdge fleets, highly sensitive clusters
Simple Analogy

A company can have one head office, regional offices that report to a head office, separate offices for different business lines, or fully independent branches that follow the same rulebook. Each structure trades simplicity for resilience and independence.

i
Start Simple

Begin with one hub and add regional or environment hubs when scale or isolation demands it. Moving from one hub to several is easier if your desired state is already in Git and your clusters are labeled consistently.

28Protecting the Management Plane

The hub is the most powerful and most dangerous part of a fleet. Treat it that way.

The management plane holds the desired state, credentials or agents for every cluster, and the power to change them all. Losing it means losing control. Compromising it means an attacker controls everything. Yet teams often treat the management cluster casually, running it with the same care as a test cluster. A mature fleet protects it more carefully than any other cluster.

Safeguard 1

Highly available

Run several replicas across failure zones, with backups and tested restore, so a single failure cannot halt fleet operations.

Safeguard 2

Minimal workload

Run only fleet tools on the hub. Application workloads on the same cluster expand the attack surface.

Safeguard 3

Strict access

Limit who can log in, require strong authentication and keep detailed audit logs.

Safeguard 4

Graceful degradation

Design members so they keep serving users, with their last known configuration, even if the hub is unreachable.

Simple Analogy

The control tower of an airport is guarded, duplicated and supported by backup power. If the tower fails, planes in the air must still be able to land safely using fallback procedures. The hub deserves the same treatment, and members need their own fallback.

ANTI-PATTERN-03 Avoid
Problem

Running the fleet hub and ordinary applications together on one general-purpose cluster.

Why It’s Harmful

An application incident can take down fleet management, and a compromised application becomes a path to every member cluster.

Correct Approach

Keep the hub dedicated, small and tightly controlled, separate from application clusters.

!
Test Hub Loss

Deliberately make the hub unavailable in a test environment and confirm that members keep running, that you can still recover and that alerts fire. Many fleets discover hidden hub dependencies only during real outages.

29Edge and Disconnected Fleets

Clusters in shops, factories and vehicles live in conditions that cloud data centers never face.

An edge fleet may contain hundreds or thousands of small clusters, sometimes a single machine each, in places with weak or intermittent connectivity. Nobody is there to fix them physically. Power cuts happen. Connections drop for hours. The management design must assume that a cluster is often unreachable and must still behave sensibly, and that every operation must be safe to repeat.

1

Pull, never push

Edge clusters reach out to fetch their configuration, because inbound connections to remote sites are often blocked.

2

Work offline

Local applications keep working with their last known configuration when the connection to the center is lost.

3

Update safely

Updates must be able to roll back automatically if the new version fails, because no engineer is on site.

4

Report in small messages

Status travels in compact form, and the center tolerates stale information from sites that are temporarily offline.

5

Provision without touching

New devices should find their configuration on first power-on, so installers need little technical skill.

Simple Analogy

A ship at sea cannot call a mechanic. It carries spare parts, manuals and a captain who can keep going alone, then reports to the port when it arrives. Edge clusters must be built like ships.

Example: A national retail chain

A retailer runs a small cluster in each of two thousand stores. Each cluster pulls its baseline from Git, runs checkout helpers locally and reports health in short messages. A new store opens, its cluster boots, joins the right group by label and installs everything automatically within minutes.

i
Small Footprint Matters

At the edge, every extra component costs memory and attention on thousands of devices. Choose lightweight Kubernetes distributions and keep the agent set minimal.

30Multi-Tenancy: Clusters, Namespaces or Virtual Clusters?

Many fleets exist only because of isolation. There are cheaper ways to isolate than a new cluster.

When teams need to be kept apart, the instinctive answer is one cluster per team. That gives strong isolation but costs overhead and adds to the fleet. There are two lighter options. Namespaces divide one cluster into logical sections with quotas and access rules. Virtual clusters create a lightweight, separate Kubernetes control plane for each tenant inside a shared host cluster, which feels like a private cluster at much lower cost. Choosing among the three is a trade between isolation strength and cost.

OptionIsolationCost and OverheadBest For
Namespace per tenantLogical, shared control plane and nodesLowestTrusted teams in one organization
Virtual cluster per tenantSeparate control plane, shared nodesLow to moderateTeams that need admin-like freedom, short-lived environments, test clusters
Dedicated node poolsSeparate machines with shared control planeModerateNoisy or sensitive workloads in a trusted setting
Cluster per tenantStrongest, fully separateHighestRegulated data, hostile tenants, different versions or regions
Simple Analogy

Housing choices range from a shared dormitory room, to a private room in a shared house, to a separate apartment in the same building, to a detached house. Each gives more privacy at more cost. Pick the lightest option that meets the privacy you truly need.

i
Do Not Multiply Clusters by Reflex

Ask for each new cluster request: what isolation does this need that a namespace or virtual cluster cannot provide? Often the honest answer saves thousands of dollars and hours of operations.

!
Hostile Tenants Need Hard Walls

Where tenants do not trust each other, such as customers running their own code, shared nodes are risky. Use dedicated machines or separate clusters for those cases.

31Comparing the Tools Side by Side

Each fleet tool grew from a different need, so each one is strongest at a different job.

No single product covers every fleet task. Some tools are excellent at delivering applications, some at creating and upgrading clusters, some at spreading one object to many clusters, and some at enforcing rules. The table below compares the families discussed in this guide. Treat it as a map of strengths, not a ranking, because the best choice depends on your size, your team and your existing habits.

Tool FamilyMain JobDelivery StyleBest ForWatch Out For
Argo CD with ApplicationSetsDeliver applications from Git to many clustersHub watches Git and applies to membersTeams wanting a visual interface and flexible generatorsHub holds credentials to every member; hub sizing at large scale
FluxDeliver applications and configuration from GitControllers inside each member pull from GitTeams preferring pull, composable controllers and no central credentialsLess central visibility unless you add reporting
Rancher FleetDeliver bundles to very large or edge fleetsAgents in members pull bundles from the hubThousands of clusters, edge sites, mixed environmentsFewer community add-ons than the two above
KarmadaPropagate native objects and spread workloads across clustersHub control plane pushes to membersTeams wanting one API that feels like a single big clusterAnother control plane to run and protect
Open Cluster ManagementHub and spoke management with placement decisionsAgents in members pull work from the hubOrganizations needing strong placement and governanceConcepts take time to learn
Cluster APICreate, upgrade and delete clusters as objectsManagement cluster reconciles infrastructureTeams that build many clusters themselvesProvider differences; management cluster is critical
Cloud provider fleet servicesGroup managed clusters with shared featuresProvider-hostedTeams already committed to one cloudLock-in and differing feature sets
Policy enginesEnforce and audit rules in every clusterAdmission checks in each memberEvery fleet, regardless of other choicesRolling out strict rules too fast
Simple Analogy

A construction site needs a surveyor, a crane operator, a delivery driver and a safety inspector. Nobody asks which of them is best, because they do different jobs. Fleet tools are the same: cluster builders, application deliverers, propagators and inspectors work together.

i
Overlap Is Normal

Many tools overlap at the edges. Both Argo CD and Flux can deliver applications, and both Karmada and Open Cluster Management can spread objects. Pick one per job and avoid running two tools that fight over the same objects.

32How to Choose: A Decision Guide

Choose by answering a few honest questions about your size, your people and your risks.

Picking a tool because it is popular is a common way to end up with a platform nobody wants to run. A better way is to start from your own situation. The questions below lead you toward a sensible starting point, and you can always change later because the desired state lives in Git rather than inside the tool.

Question 1

How many clusters do you have?

A handful can be served by any GitOps tool. Hundreds favor pull-based designs. Thousands, especially at the edge, favor tools built for that scale.

Question 2

Who builds the clusters?

If you build them yourself, look at Cluster API. If a cloud provider builds them, use that provider’s fleet features for the cluster layer.

Question 3

Do you need workloads to move between clusters?

If a workload must be spread, failed over or scheduled by capacity, look at propagation tools. If you only need the same thing installed everywhere, GitOps is enough.

Question 4

How strict is your network?

If members cannot accept inbound connections, choose pull. If the hub can reach every member safely, push is acceptable.

Question 5

How much do people need to see?

If many teams want a friendly dashboard, favor tools with a strong interface. If your platform team prefers plain objects and alerts, composable controllers fit well.

Question 6

What skills do you already have?

A tool your team already understands will be safer in its first year than a better tool nobody knows.

Simple Analogy

Choosing a vehicle depends on whether you carry two people or twenty, drive in a city or on mountain tracks, and whether you have a mechanic nearby. Choosing a fleet tool depends on the same kind of honest questions about your own roads.

Example: A mid-sized company decides

A company with twenty clusters across two clouds builds them with a managed service, wants one visual dashboard for application teams, and does not need to move workloads between clusters. They choose a GitOps tool with generators for delivery, a policy engine for rules, and the cloud services for cluster creation. They skip propagation tools entirely, and nobody misses them.

33The Migration Path: From One Cluster to a Fleet

Nobody builds a fleet in a day. A staged path keeps risk low and lets the team learn as the fleet grows.

Most fleets begin as a single cluster that gradually became several. The goal is to add structure step by step, proving each step before taking the next. The path below works for most organizations, whether they are starting fresh or tidying an untidy collection of clusters.

1

Take inventory

List every cluster, who owns it, which version it runs, what lives on it and how it was built. Many teams discover clusters they had forgotten.

2

Name and label

Give every cluster a consistent name and labels for environment, region, owner and purpose. Labels are what every later tool will use to choose targets.

3

Put the shared baseline in Git

Capture the things every cluster should have, such as policies, monitoring agents and access rules, in a repository. Start by describing what already exists.

4

Adopt a delivery tool on a low-risk cluster

Pick a development cluster, let the tool take over the baseline, and watch for surprises. Fix the repository until the tool reports no drift.

5

Expand in rings

Move through development, then testing, then a small production ring, then the rest. Each ring waits until the previous one is healthy.

6

Automate cluster creation

Once delivery is trusted, make new clusters come from templates. A new cluster should join the fleet and receive the baseline without manual steps.

7

Add policy, observability and cost views

Layer the fleet-wide rules, the combined dashboards and the cost reports on top of the stable base. These are easier once everything is labeled and consistent.

8

Practice failure

Rehearse losing a member, losing the hub and rebuilding a cluster from nothing. Update the runbooks with what you learn.

Simple Analogy

A village becomes a town first by naming its streets, then by laying shared water pipes, and only later by building a town hall. Doing it in that order means nobody has to dig up a road twice.

!
Do Not Skip the Inventory

Teams that jump straight to tools often find unlabeled, unowned clusters that cannot be managed safely. The inventory step feels dull but prevents the worst surprises.

34Day-Two Operations and Runbooks

Setting up a fleet is the easy part. Living with it every day is where the real work lives.

Once the fleet exists, the platform team’s life is made of repeating tasks: upgrading versions, rotating certificates, onboarding new teams, retiring old clusters and answering alerts. Good fleets turn each of these into a written, rehearsed routine called a runbook. A runbook is simply a clear list of steps that anyone on the team can follow, even at three in the morning.

RoutineHow OftenWhat a Good Runbook Covers
Kubernetes version upgradeSeveral times a yearWhich ring goes first, what to check between rings, how long to wait and how to roll back
Certificate and credential rotationOn a scheduleWho triggers it, how success is verified and what to do when a member misses it
Onboarding a new teamAs neededNamespace creation, access rules, quotas, policies and a first deployment
Adding a clusterAs neededTemplate use, labels, joining the hub and confirming the baseline arrived
Retiring a clusterAs neededDraining workloads, moving data, removing from the hub, deleting cloud resources and cost checks
Responding to a drift alertWhen it firesHow to find who changed what, whether to revert or adopt and how to prevent repeats
Hub recoveryRare, but rehearsedRestoring from backup, reconnecting members and confirming that nothing was lost
Simple Analogy

An airline flies thousands of planes safely not because pilots are heroes but because every routine, from pre-flight checks to engine servicing, is written down and practiced. Runbooks are the checklists of a fleet.

Keep the runbooks alive

A runbook that is never used goes stale. Schedule regular rehearsals where a person who did not write the runbook follows it exactly. Every confusing line gets fixed. Store runbooks next to the fleet configuration so that changes to one prompt changes to the other.

i
Automate the Boring Parts

When a runbook step is always the same, turn it into automation. Keep the human for decisions and judgment, and give the routine to the machine.

35Compliance and Audit Evidence

Regulated organizations must prove that every cluster follows the rules. A fleet can produce that proof almost automatically.

Auditors ask simple questions: who can access production, which versions are running, were changes approved, and are the rules enforced everywhere? In a hand-built collection of clusters, answering takes weeks of screenshots. In a well-run fleet, the answers are already recorded, because the desired state is in Git, every change is a reviewed commit and the policy engine keeps reports.

Evidence 1

Change history

Git shows who proposed each change, who approved it and when it reached each ring.

Evidence 2

Policy reports

Policy engines list every object that passes or fails each rule, in every cluster.

Evidence 3

Access records

Identity systems show who held which role, and for how long, in every cluster.

Evidence 4

Version inventory

A combined view proves that no cluster is running an unsupported version.

Simple Analogy

A restaurant that logs every fridge temperature automatically passes health inspections easily. A restaurant relying on memory scrambles for days. Fleet evidence is the automatic temperature log.

!
Protect the Evidence

Audit records are only useful if they cannot be quietly changed. Send logs and reports to storage that the cluster administrators cannot edit.

36Useful Design Patterns

A few proven shapes appear again and again in healthy fleets. Learning them saves you from reinventing them.

Pattern 1

Base plus overlay

Keep one shared base and describe each environment or region as a small set of differences. Most files are written once.

Pattern 2

Ring-based rollout

Send every change to a small canary group, then wider groups, with automatic pauses on failure.

Pattern 3

Cattle, not pets

Treat clusters as replaceable. When one misbehaves, rebuild it from templates rather than nursing it.

Pattern 4

Labels as the control surface

Choose targets by labels rather than names, so adding a cluster with the right labels automatically gives it the right content.

Pattern 5

Separate platform from applications

Keep the things that make clusters work apart from the things that run on top, with different owners and different change speeds.

Pattern 6

Hub as a small, guarded core

Keep the hub lean, backed up and locked down. It does coordination only, never customer workloads.

Simple Analogy

A franchise restaurant chain uses one master menu, local tweaks for each country, openings in a few test cities before nationwide launches, and a small head office that keeps standards. Every pattern above has a match in that arrangement.

37Anti-Patterns to Avoid

Many fleet failures repeat the same few mistakes. Recognize them early and avoid the pain.

!
ANTI-PATTERN-04 — Snowflake Clusters

Each cluster is slightly different because people changed things by hand. Nothing can be rolled out safely because nobody knows what each cluster really contains. Fix it by describing every cluster in Git and reporting drift.

!
ANTI-PATTERN-05 — Everything at Once

A change goes to every cluster in the same minute. When it is wrong, it is wrong everywhere. Use rings and pauses.

!
ANTI-PATTERN-06 — Tool Collecting

The team installs every attractive tool, and three of them manage the same objects. They fight, and nobody understands the result. Choose one tool per job.

!
ANTI-PATTERN-07 — No Owner

Clusters exist with no named owner. They are never upgraded and become security risks. Require an owner label on every cluster and report those without one.

!
ANTI-PATTERN-08 — Untested Recovery

Backups exist but have never been restored. When the hub fails, the team discovers the backups are incomplete. Rehearse recovery regularly.

Simple Analogy

These mistakes resemble a bus company where every bus has different parts, all buses get new tires on the same morning, three mechanics fight over one engine, some buses have no driver assigned and the spare-parts room has never been checked. It could run for a while, but it would not run well.

38Best Practices Checklist

If you remember only a short list, remember these habits.

Do These

  • Describe all clusters and their contents in Git.
  • Label every cluster with environment, region, owner and purpose.
  • Roll changes out in rings with automatic pauses.
  • Run a policy engine in audit mode first, then enforce.
  • Back up the hub and rehearse restoring it.
  • Give each cluster its own limited credentials.
  • Watch version age and drift on a fleet dashboard.

Avoid These

  • Hand-editing production clusters.
  • Sharing one powerful credential everywhere.
  • Putting customer workloads on the hub.
  • Copying whole files per cluster instead of using overlays.
  • Upgrading every cluster on the same day.
  • Keeping clusters nobody owns.
  • Adding tools without removing old ones.
Simple Analogy

Good habits in a kitchen, such as labeling food, cleaning as you go and checking the fridge, prevent most disasters long before any dramatic emergency. Fleet hygiene works the same way.

39Troubleshooting Common Problems

When something goes wrong in a fleet, the same few causes explain most cases. Check them in order.

SymptomLikely CauseFirst Thing to Check
A change reached some clusters but not othersLabels do not match the selection rule, or a member lost contact with the hubThe labels on the missing clusters and the connection status of the agent
A cluster keeps reverting to its old stateTwo tools are managing the same objectWhich controllers own the object, and whether both are active
The delivery tool shows drift that never clearsAnother controller or person keeps changing a fieldWhich field differs and who last wrote it
New cluster never receives the baselineIt has not been registered, or it lacks the required labelsRegistration status and label set
Hub is slow or runs out of memoryToo many clusters or objects for its sizeResource use of the hub controllers and the number of managed objects
Cross-cluster calls failNetwork paths, certificates or service exports are missingConnectivity between clusters and the export status of the service
A policy blocks a valid deploymentThe rule is too strict or lacks an exceptionThe policy report and the exact message returned
Upgrade stalls on a ringA health check is failing, or a pause rule has firedThe health signal named in the rollout rule
Simple Analogy

When a bus does not arrive at one stop, you first check whether the route lists the stop, then whether the radio still works, and then whether the road is blocked. Fleet troubleshooting follows the same order: selection, connection, then the destination itself.

i
Compare One Good with One Bad

Pick one cluster that works and one that does not, and compare their labels, versions and agent health. The difference is usually obvious.

40Real-World Stories from Industry

The shape of fleets differs by industry, but the lessons are surprisingly similar.

Retail: thousands of stores

A retailer runs a small cluster inside each store for checkout and inventory tools. A pull-based tool lets each store fetch updates when its network allows. Rollouts begin at a few pilot stores, then spread in waves overnight, avoiding busy shopping hours.

Finance: strict separation

A bank keeps separate clusters for each business unit and each regulatory region. A policy engine enforces the same security rules everywhere, and automatic reports give auditors evidence without a scramble.

Software company: a global service

A software company runs the same service in many regions for speed and resilience. Global traffic routing sends users to the nearest healthy region, and a failed region is drained within minutes while engineers investigate.

Telecom and manufacturing: edge sites

Companies with equipment at remote sites run tiny clusters that may lose connectivity for hours. Local agents keep applying the last known state and report back when the link returns.

“Fleets succeed when the boring work of naming, labeling and describing is done early.”
Simple Analogy

Different delivery companies, such as a parcel carrier, a food courier and a freight shipper, face different roads and customers but all rely on route planning, tracking and consistent vehicles. Industries differ in detail but share fleet fundamentals.

41Frequently Asked Questions

Quick answers to questions beginners ask most often.

Q1Do I need a fleet tool if I have only three clusters?

You do not need a heavy platform, but a GitOps tool and consistent labels pay off even at three. They are the habits that make growth painless.

Q2Is one huge cluster simpler than many small ones?

It is simpler to manage but riskier, because one failure or one bad upgrade affects everything. Many organizations choose several clusters for isolation, regions and legal reasons.

Q3Should I use push or pull?

Pull is usually safer and scales better because members need no inbound access and hold their own credentials. Push is simpler to picture and fine when the network is open and the fleet small.

Q4Can I mix several tools?

Yes, if each handles a different job, such as one for creating clusters, one for delivering applications and one for policy. Avoid two tools managing the same objects.

Q5What happens if the hub goes down?

In well-designed fleets, members keep running their workloads with the last known state. You lose the ability to make fleet-wide changes until the hub returns, which is why backups and recovery rehearsals matter.

Q6How do I handle secrets across clusters?

Keep secret values in a dedicated secret store and let each cluster fetch what it needs, or store them encrypted in Git. Never place plain values in repositories.

Q7How are upgrades done safely?

By upgrading one ring at a time, starting with development, checking health between rings and keeping a way back. Never upgrade the whole fleet on one day.

Q8What is the difference between a fleet and multi-cluster networking?

A fleet is about managing clusters: creating, configuring and governing them. Multi-cluster networking is about letting applications in different clusters talk to each other. You can have one without the other.

Q9How do I keep costs under control?

Label everything with owner and purpose, report cost per cluster and team, remove idle clusters and share common services instead of duplicating them.

Q10Do I need Cluster API?

Only if you want to create and upgrade clusters as Kubernetes objects. If your cloud provider’s managed service already does that well, you may not need it.

Q11How do I let teams self-serve without losing control?

Offer templates for clusters and namespaces, enforce rules with policy, and give teams limited access to only what they own.

Q12Where should I start tomorrow?

List your clusters, give each a name, an owner and labels, and start describing the shared baseline in Git. Everything else builds on that.

42Summary and Key Takeaways

Managing many clusters is a discipline of describing, placing, rolling out and watching.

A fleet is a group of clusters managed as one. Its tools fall into layers: creating clusters, delivering content, propagating objects, enforcing rules, connecting networks and observing everything. Choose one tool per job, describe everything in Git, use labels to choose targets, roll out in rings and protect the small hub that coordinates it all. Do these things and the number of clusters stops mattering to the people running them.

Key Takeaways

  • A fleet exists to give many clusters one consistent, reviewable and recoverable way of working.
  • Store desired state in Git, and let tools reconcile each cluster toward it while reporting drift.
  • Prefer pull-based delivery for large, remote or locked-down fleets, and push for small, open ones.
  • Use labels and generators so new clusters receive the right content automatically.
  • Roll out every change in rings with automatic pauses, never to all clusters at once.
  • Enforce fleet-wide rules with a policy engine, starting in audit mode.
  • Protect, back up and rehearse recovery of the management hub, because it is the fleet’s most valuable target.