
Introduction: Why Centralized Management of AKS Clusters Matters
Kubernetes adoption in enterprises has skyrocketed. What begins as a single proof-of-concept cluster often grows into dozens across various teams, environments, and regions. For organizations using Azure Kubernetes Service (AKS), this growth is even more common: different business units create clusters for their workloads, data residency rules require data to stay in specific locations, and production systems need failover capabilities across regions.
Initially, managing a few clusters might seem straightforward. But as the number increases, complexity multiplies:
- How do we ensure consistent governance?
- How do we enforce security and compliance uniformly?
- How can we manage workload placement without duplicating configurations?
- How do we achieve multi-region availability without relying on fragile, custom scripts?
This is the key part of the multi-cluster challenge, highlighting its complexity and emphasizing the importance of effective management strategies to address various issues.
In today’s cloud-native environment, multi-cluster setups are often built-in, driven by geo-distribution, team separation, and scale. However, without centralized management, this setup can lead to cluster sprawl, policy inconsistencies, duplicated pipelines, and complicated upgrades.
To solve this, Microsoft introduced Azure Kubernetes Fleet Manager (Fleet). It’s a service designed to provide centralized governance, workload management, and lifecycle control across multiple AKS clusters — think of it as a control plane for your multiple control planes, helping coordinate Kubernetes environments at an enterprise level. This is the multi-cluster challenge.
In this blog, we’ll explore:
• The challenges of managing multiple AKS clusters.
• How Fleet Manager helps solve these issues.
• The architecture of Fleet and its role in Azure-native environments.
• A step-by-step guide with validated CLI and YAML samples.
• Managing multi-region AKS deployments for high availability and compliance.
• Integrating monitoring, security, and governance into Fleet.
By the end, you’ll discover how to smoothly shift from cluster sprawl to enterprise-grade multi-cluster management with Azure Fleet. It’s a journey that will empower you to manage your resources more effectively and confidently.
Challenges of Multi-Cluster AKS Management
Running multiple Kubernetes clusters is often a necessity for organizations, but managing them can pose several challenges:
Managing multiple AKS clusters involves various complex tasks, including regular upgrades, patching, RBAC setup, and networking configurations, which, if done manually, can lead to errors and increased effort. Ensuring policy consistency across clusters such as Azure Policy, Pod Security Standards, or custom RBAC is vital to prevent drift and maintain compliance. Workload distribution also plays a critical role, with some workloads requiring regional deployment for compliance, others necessitating multi-cluster setups for high availability, or being cluster-agnostic, which requires sophisticated placement tools. The complexity extends to networking and failover management, involving synchronization of ingress controllers, DNS, TLS certificates, and integration with Azure Front Door or Traffic Manager for cross-region traffic routing. Observability across clusters is challenging due to the dispersed nature of logs and metrics, making centralized monitoring essential for troubleshooting and tracking service levels. Additionally, adhering to regulations such as GDPR, NIS2, and DORA requires maintaining data residency within specific jurisdictions, often necessitating clusters in designated regions (such as the EU or US), while managing a unified control plane.
Introducing Azure Kubernetes Fleet Manager
Azure Kubernetes Fleet Manager (Fleet) offers a comprehensive solution for managing multiple Kubernetes clusters. It features a Centralized Management Hub that allows for easy registration and control of AKS clusters, enabling logical grouping by region, environment, or workload. Additionally, it sets workload placement policies based on location, affinity, or labels for optimal deployment. Additionally, it ensures consistent governance with unified RBAC and Azure Policy enforcement, and facilitates multi-region high availability by distributing workloads across clusters for fault tolerance and active-active deployment.
Think of Fleet as the control plane for multiple control planes.
Fleet Hub-and-Member Model
The architecture follows a hub-and-spoke pattern:
- The Fleet hub acts as the central management point, orchestrating policies and workload deployment.
- Member clusters are existing AKS clusters that join the Fleet for centralized management.
- Workloads are deployed centrally using Fleet placement policies for efficient operation.

Implementing Fleet — Step by Step
Let’s move from theory to practice.
Prerequisites
- Azure CLI ≥ 2.61
- Logged in with az login
- Fleet CLI extension
az extension add --name fleet || az extension update --name fleet
- At least two existing AKS clusters, in this example, we use three.
- All clusters in the same Entra tenant (can be different subs/RGs/regions)
Create a Fleet Hub
To perform workload placement, you must create a Fleet with a hub ( — enable-hub).
RG=rg-fleet
LOCATION=westeurope
FLEET=aks-fleet-hub
az group create -n $RG -l $LOCATION
az fleet create \
--resource-group $RG \
--name $FLEET \
--location $LOCATION \
--enable-hub \
--enable-managed-identity
Get hub kubeconfig so kubectl points at it:
az fleet get-credentials -g $RG -n $FLEET
Add Member Clusters
WESTEU_ID="/subscriptions/<sub-id>/resourcegroups/aks-weu/providers/Microsoft.ContainerService/managedClusters/aks-weu"
NORTHEU_ID="/subscriptions/sub-id/resourcegroups/aks-neu/providers/Microsoft.ContainerService/managedClusters/aks-neu"
EASTUS_ID="/subscriptions/sub-id/resourcegroups/aks-eus/providers/Microsoft.ContainerService/managedClusters/aks-eus"
# West Europe
az fleet member create \
--resource-group $RG \
--fleet-name $FLEET \
--name aks-weu \
--member-cluster-id $WESTEU_ID \
--member-labels env=prod \
--member-labels region=weu
# North Europe
az fleet member create \
--resource-group $RG \
--fleet-name $FLEET \
--name aks-neu \
--member-cluster-id $NORTHEU_ID \
--member-labels env=prod \
--member-labels region=neu
# East US
az fleet member create \
--resource-group $RG \
--fleet-name $FLEET \
--name aks-eus \
--member-cluster-id $EASTUS_ID \
--member-labels env=prod \
--member-labels region=eus

Label members for placement
# From the hub cluster context
kubectl get memberclusters
kubectl label membercluster aks-weu tier=gold --overwrite
kubectl label membercluster aks-neu tier=silver --overwrite
kubectl label membercluster aks-eus tier=silver --overwrite
Fleet auto-labels fleet.azure.com/location with the cluster’s Azure region, which is very useful for region-based placement.

Authorisation & RBAC Troubleshooting for Fleet Hubs
When you run kubectl get memberclusters against a Fleet hub, you might see errors like:
Error from server (Forbidden): memberclusters.cluster.kubernetes-fleet.io is forbidden:
User “<guid>” cannot list resource “memberclusters” in API group “cluster.kubernetes-fleet.io”
This means you’ve authenticated (AAD works via kubelogin), but your user doesn’t have RBAC permissions on the hub.
Make sure kubelogin is installed (for instance, with Homebrew)
brew tap Azure/kubelogin
brew install kubeloginconvert kubeconfig for AAD auth
kubelogin convert-kubeconfig -l azurecli
Choose how to grant permissions
Option 1: Azure RBAC for Kubernetes (preferred)
Assign an Azure RBAC role to your AAD user at the hub AKS scope:
Get hub AKS resource ID
az resource list \
–resource-type Microsoft.ContainerService/managedClusters \
–query “[].{name:name,id:id}” -o tableAssign RBAC Reader (or RBAC Admin/Cluster Admin if needed)
HUB_AKS_ID="
<paste the id>"
ME=$(az ad signed-in-user show –query id -o tsv)az role assignment create \
–assignee $ME \
–role “Azure Kubernetes Service RBAC Reader” \
–scope $HUB_AKS_ID
Option 2: Native Kubernetes RBAC (works everywhere)
Use admin kubeconfig once, then bind your AAD user to a ClusterRole:
Grab admin creds
az fleet get-credentials -g
<rg>-n<fleet>–adminGet your AAD object ID
ME=$(az ad signed-in-user show –query id -o tsv)
Bind as viewer (read-only)
kubectl create clusterrolebinding viewer-$ME \
–clusterrole=view \
–user=$MEOr bind as full admin (only if needed)
kubectl create clusterrolebinding admin-$ME \
–clusterrole=cluster-admin \
–user=$ME
Re-test
az fleet get-credentials -g
<rg>-n<fleet>
kubelogin convert-kubeconfig -l azurecli
kubectl get memberclusters
kubectl get nodes
Stage Your Workload in the Hub
With a hubful Fleet, placement works by selecting resources from the hub and distributing them to member clusters through ClusterResourcePlacement (CRP). This gives you a single source of truth, but it also means you need to be thoughtful about what you add to the hub and how you structure it.
Structure your staging layout.
Use a clear repo and namespace structure so you can place selectively and avoid collisions.
Recommended repo layout (example)
├─ staging/ # what you apply to the hub
│ ├─ base/ # shared manifests (workloads/policies)
│ │ ├─ prod-eu/
│ │ │ ├─ deploy.yaml
│ │ │ └─ service.yaml
│ │ └─ prod/
│ │ ├─ web-frontend.yaml
│ │ └─ networkpolicy.yaml
│ └─ overlays/ # per-cluster/per-region overrides (optional)
│ ├─ weu/ # West Europe overlay (prod or prod-eu)
│ └─ neu/ # North Europe overlay (e.g., replicas=0 for DR)
│ └─ eus/ # East US overlay (e.g., replicas=0 for DR)
└─ crp/ # ClusterResourcePlacement definitions
├─ eu-only.yaml
└─ prod-dr-fixed.yaml
Create namespaces on the hub
kubectl create namespace prod --dry-run=client -o yaml | kubectl apply -f -
kubectl create namespace prod-eu --dry-run=client -o yaml | kubectl apply -f -
Keep “hub side effects” out (envelopes & overlays)
Some resources shouldn’t be active on the hub, such as cluster-scoped admission webhooks and certain RBAC or quotas. Here are two options:
• Envelope objects and overlays: keep the “effectful” parts as overrides, so they only apply to member clusters through CRP.
• Separate namespaces: keep the “overlay” manifests in a dedicated namespace (e.g., overrides-prod) and use a CRP that targets specific members (e.g., only the DR cluster) to apply those overlays there.
Example: base workload (active everywhere you place it)
# staging/base/prod-eu/deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: orders-api
namespace: prod-eu
spec:
replicas: 3
selector:
matchLabels: { app: orders-api }
template:
metadata: { labels: { app: orders-api } }
spec:
containers:
- name: orders-api
image: ghcr.io/contoso/orders:1.4.2
ports: [{ containerPort: 8080 }]
---
apiVersion: v1
kind: Service
metadata:
name: orders-api
namespace: prod-eu
spec:
type: ClusterIP
selector: { app: orders-api }
ports: [{ port: 80, targetPort: 8080 }]
Example: overlay for DR (replicas=0) — not active on hub
# staging/overlays/neu/orders-api-zero-replicas.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: orders-api
namespace: prod-eu
spec:
replicas: 0
selector:
matchLabels: { app: orders-api }
template:
metadata: { labels: { app: orders-api } }
spec:
containers:
- name: orders-api
image: ghcr.io/contoso/orders:1.4.2
ports: [{ containerPort: 8080 }]
Place the overlay only to NEU via CRP (PickFixed):
# crp/prod-eu-dr-override.yaml
apiVersion: placement.kubernetes-fleet.io/v1
kind: ClusterResourcePlacement
metadata:
name: prod-eu-dr-override
spec:
resourceSelectors:
- group: apps
version: v1
kind: Deployment
name: orders-api
namespace: prod-eu
policy:
placementType: PickFixed
clusterNames:
- aks-neu # Only DR cluster
Net result: WEU gets replicas=3 (from base), NEU stays at replicas=0 (overlay).
What is a ClusterResourcePlacement (CRP)?
A ClusterResourcePlacement (CRP) is the core object that tells Azure Kubernetes Fleet what resources to place and where to place them across your AKS member clusters.
• What → defined with resourceSelectors (e.g., a namespace, deployment, or network policy).
• Where → controlled with a policy (e.g., all clusters, fixed clusters, or top N).
• How → rollout strategies like RollingUpdate define update speed and disruption limits.
Example: EU-only placement
apiVersion: placement.kubernetes-fleet.io/v1
kind: ClusterResourcePlacement
metadata:
name: eu-only
spec:
resourceSelectors:
- group: ""
version: v1
kind: Namespace
name: prod-eu
policy:
placementType: PickAll
affinity:
clusterAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
clusterSelectorTerms:
- labelSelector:
matchLabels:
compliance: eu
Tip:
• Use labels on MemberClusters (e.g., compliance=eu, region=weu) for flexible placement.
• Start with PickAll (all eligible clusters), then experiment with PickFixed (specific clusters) or PickN (top N clusters by label).
• CRPs are hub-scoped: always kubectl apply them to your Fleet hub context, not member clusters.
Monitoring, Security & Governance at Scale
When you operate a single Kubernetes cluster, it’s already a challenge to keep observability, compliance, and security in sync. Managing a single Kubernetes cluster is tough enough to keep observability, compliance, and security in sync. But when you add various AKS clusters across regions, the challenge gets even tougher: you’ve got different telemetry pipelines, policies that start to drift apart, and a security team overwhelmed by disjointed alerts.
Fleet doesn’t replace your existing monitoring and security stack — instead, it gives you a central hub where those capabilities can be applied consistently.
Monitoring Multi-Cluster Environments
Azure Monitor for Containers, as a core component of Azure Monitor, serves as the primary tool for telemetry in container environments. It provides comprehensive metrics such as node and pod CPU and memory usage, kubelet health status, and API server responsiveness, enabling detailed performance monitoring. Additionally, it collects logs from containers and streams them into Log Analytics for centralized analysis and troubleshooting. The platform also offers prebuilt workbooks through Insights, which facilitate in-depth analysis of Kubernetes performance metrics and enable cost management, making it a vital resource for maintaining optimized and reliable containerized applications.
When integrated with Fleet, all member clusters are onboarded to the same Log Analytics workspace, which provides a unified, single-pane view of telemetry data across the entire environment. This setup facilitates the creation of multi-cluster dashboards that enable the correlation of data across different regions or environments, such as assessing whether a workload is healthy in West Europe (WEU) versus North Europe (NEU). Additionally, alerts can be scoped at the Fleet level, allowing for comprehensive monitoring of services. For instance, an alert can be configured to trigger if the ‘prod-eu’ namespace CRP fails in any cluster within the fleet, ensuring quick detection and response to issues regardless of the specific cluster affected.

Tip: Use Azure Managed Prometheus + Azure Managed Grafana for deep PromQL queries and custom dashboards. Grafana can be configured to query multiple Prometheus endpoints (one per cluster) and present them as a unified dashboard.
Security Across the Fleet
Securing multiple clusters requires a mix of preventive controls and detective measures.
Preventive Security
Azure Policy for AKS should be applied at the Fleet level to ensure that all new member clusters inherit consistent guardrails. This approach simplifies management and enforces standardized policies across the environment. For example, policies can be set to deny privileged containers, enforce HTTPS ingress exclusively, and restrict images to approved registries such as your Azure Container Registry. Additionally, maintaining RBAC consistency is vital; utilizing the Fleet to standardize role assignments helps ensure uniform access controls. It is advisable to keep cluster-admin roles minimal, delegating permissions through Azure RBAC integrated with Kubernetes to maintain a secure and manageable cluster ecosystem.
Detective Security
Microsoft Defender for Containers, a component of Microsoft Defender for Cloud, offers comprehensive container security features. It actively scans container images stored within Azure Container Registry (ACR) to identify vulnerabilities before deployment. Additionally, it monitors runtime behavior within Azure Kubernetes Service (AKS) clusters to detect potential threats, such as crypto-mining activities and suspicious system calls, thereby enhancing the real-time security posture. Alerts generated by this service are primarily at the subscription level, providing a broad overview. Still, they can also be mapped back to specific fleet clusters for more granular incident response and management. This integrated approach helps organizations maintain a robust security environment across their containerized applications.
Centralized Audit Logging: Stream Kubernetes audit logs to Log Analytics for correlation across all member clusters.

Tip: Pair Defender signals with Fleet labels, such as “show me vulnerabilities in compliance=eu clusters only”, so security teams can focus on prioritizing regulatory workloads.
Governance at Enterprise Scale
Fleet shines in governance by letting you define policies once and apply them everywhere:
ClusterResourcePlacement as Governance
Workload placement is not the only aspect that can be managed using Custom Resource Policies (CRPs); baseline resources such as network policies, PodDisruptionBudgets, and RBAC roles can also be distributed in this manner. This approach ensures consistency across multiple clusters and simplifies the configuration management process. For example, you could deploy the same NetworkPolicy to all clusters labeled with env=prod, ensuring uniform network security policies are enforced across your production environment. This method provides a scalable and efficient way to manage common configurations in multi-cluster Kubernetes deployments.
Azure Policy + Fleet Labels
Azure Policy definitions can be scoped to a Fleet resource group or an entire subscription. Leveraging Fleet’s member labeling feature enables the enforcement of different policies based on environment-specific requirements. For instance, clusters labeled with env=dev might be permitted to use ephemeral storage, providing flexibility during development. In contrast, clusters designated with env=prod are subject to stricter controls, such as enforcing encryption at rest to ensure data security in production environments.
Cost Governance (FinOps)
Fleet does not directly manage costs; instead, it plays an indirect role by enforcing placement and scaling policies that influence overall financial outcomes. These policies help optimize resource utilization and operational efficiency, thereby impacting costs over time. To gain better visibility into these expenses, platform teams can utilize Azure Cost Management to group costs by cluster or fleet. This approach allows for a comprehensive view of the actual costs associated with multi-cluster operations, enabling more informed financial planning and resource allocation decisions.
End-to-End Example: Governance in Action
To ensure robust security and proper network segmentation across all production clusters, it is essential to implement a comprehensive set of policies. This involves applying an Azure Policy Initiative that enforces strict governance. Specifically, privileged pods should be blocked to prevent unauthorized access or elevated permissions that could compromise the environment. Additionally, requiring namespaces to have designated labels helps improve resource organization, management, and policy enforcement. Furthermore, enforcing encryption on persistent volumes is critical to protecting sensitive data both at rest and in transit. Together, these measures form a layered security approach, aligning with best practices for managing production workloads in a secure, compliant manner.
Distribute a baseline NetworkPolicy via CRP:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default-deny
namespace: prod
spec:
podSelector: {}
policyTypes:
- Ingress
- Egress
CRP example:
apiVersion: placement.kubernetes-fleet.io/v1
kind: ClusterResourcePlacement
metadata:
name: prod-network-baseline
spec:
resourceSelectors:
- group: networking.k8s.io
version: v1
kind: NetworkPolicy
name: default-deny
namespace: prod
policy:
placementType: PickAll
affinity:
clusterAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
clusterSelectorTerms:
- labelSelector:
matchLabels:
env: prod
Monitor with Azure Monitor and Defender for Containers
Alerts are systematically collected and displayed on a centralized dashboard, allowing the security team to monitor and assess the compliance posture across all production clusters in real-time. This setup facilitates quicker identification of issues, more efficient responses, and overall improved security management.
Case Study 1: EU Compliance (GDPR & NIS2)
A European financial services company is subject to strict regulatory compliance requirements, notably the General Data Protection Regulation (GDPR) and the Network and Information Systems (NIS2) Directive. These regulations require that all customer data be stored and processed within the European Union’s territorial boundaries to ensure data sovereignty and enhance security.
The company operates on a global scale, offering customer-facing applications in both the United States and the European Union. While this international presence is vital for business growth and customer engagement, it introduces complex technical challenges. Specifically, EU regulations require that all workloads related to EU customers, including databases, processing services, and user data, must be hosted exclusively within EU data centers. This means the infrastructure must be segmented and managed in a way that keeps EU data isolated from non-EU data, ensuring compliance while still enabling seamless service across borders.
Implementing such a setup requires robust data residency solutions, which may involve region-specific cloud regions, strict access controls, and effective data encryption strategies. Additionally, the company must continuously monitor and audit its infrastructure to maintain compliance with evolving regulations and to safeguard customer data across different jurisdictions.
Solution with Fleet:
- Create a Fleet hub in West Europe.
- Onboard West Europe and North Europe clusters.
- Create a PlacementPolicy to ensure that workloads tagged with ‘compliance=eu’ only run in EU clusters.
- Assign US workloads to a separate placement in the East US cluster.
- Use Azure Policy to ensure only EU images and data are pulled.
Architecture:
- Azure Front Door routes EU traffic to EU Fleet members.
- US traffic goes to East US cluster.
- Policies are enforced through Fleet and Azure Policy.
Compliance guaranteed: no EU data ever leaves EU AKS clusters.
EU-Only Workloads (GDPR/NIS2)
apiVersion: placement.kubernetes-fleet.io/v1
kind: ClusterResourcePlacement
metadata:
name: eu-only
spec:
resourceSelectors:
- group: ""
version: v1
kind: Namespace
name: prod-eu
policy:
placementType: PickAll
affinity:
clusterAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
clusterSelectorTerms:
- labelSelector:
matchLabels:
compliance: eu
Workloads restricted to EU clusters only — regulatory compliance enforced by placement.

Case Study 2: Disaster Recovery (DR) Failover
A global e-commerce platform runs its primary AKS cluster in West, and an international e-commerce platform operates its primary Azure Kubernetes Service (AKS) cluster in West Europe. To ensure business continuity and minimize risk of outages, they have set up a Disaster Recovery (DR) cluster in North Europe as a backup.
In the past, managing this setup involved manually running scripts to replicate workloads and changing DNS entries to redirect traffic during potential issues. This manual process was often slow and could lead to mistakes, making it less reliable for such critical infrastructure.
Solution with Fleet:
- Both clusters onboarded to Fleet.
- Workloads deployed with PlacementPolicy prioritizing West Europe.
- North Europe defined as passive cluster with zero replicas until failover.
- Azure Front Door automatically detects regional health and initiates failover.
- During DR testing, workloads automatically scaled in North Europe.
RTO reduced from 2 hours to 15 minutes.
DR tests became automated instead of manual.
Disaster Recovery (Active/Passive)
apiVersion: placement.kubernetes-fleet.io/v1
kind: ClusterResourcePlacement
metadata:
name: prod-dr
spec:
resourceSelectors:
- group: ""
version: v1
kind: Namespace
name: prod
policy:
placementType: PickFixed
clusterNames:
- aks-weu # primary
- aks-neu # dr
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
unavailablePeriodSeconds: 60
To keep the DR cluster at replicas: 0 until failover:
• Use overrides (CRP applied only to DR cluster).
• Or manage skew via GitOps overlays.
Active cluster in West Europe, standby cluster in North Europe. Azure Front Door handles failover.

Sidebar: Hub vs. Hubless Fleet
Hubless Fleet: Used for upgrading clusters only.
Hubful Fleet: Needed for workload placement, CRPs, and DNS load balancing.
You can upgrade from hubless to hubful, but not the other way around. The Hub API’s exposure (public or private) is fixed.
Wrapping Up
Managing a single Kubernetes cluster is already complex, but overseeing multiple AKS clusters, whether ten, twenty, or fifty, can quickly become overwhelming. Without proper management, this cluster sprawl can lead to inconsistent upgrades, security gaps, and workloads that drift from compliance standards.
Azure Kubernetes Fleet Manager simplifies this challenge. Its hub-and-member model provides a centralized control point that doesn’t require consolidating all clusters into a single large one. This approach maintains the flexibility of multiple AKS clusters while enabling centralized governance and easier management.
Based on the case studies, here are some encouraging lessons to keep in mind:
- Compliance is straightforward: You don’t need complicated scripts to ensure EU workloads stay in EU regions. CRPs and cluster labels make everything clear and easy to audit.
- Resilience becomes simpler: Active/passive disaster recovery setups that used to rely on fragile pipelines and DNS tricks are now just a matter of CRPs and policies, seamlessly integrated with Azure Front Door.
- Observability is unified: Azure Monitor, Defender for Cloud, and Fleet policies work together to help you catch issues early before they turn into severe outages.
- Scalability is ready for growth: Whether you’re managing 3 clusters today or 30 tomorrow, Fleet offers a consistent and reliable way to handle them.
Most importantly, Fleet doesn’t require you to change how your developers work. Your application manifests, Helm charts, and GitOps pipelines remain familiar; Fleet extends them smoothly across multiple clusters in a controlled and secure manner.
For platform engineers, this means less urgent firefighting and more time to drive innovation. For compliance teams, it provides clear and enforceable guardrails. And for developers, it ensures their applications land correctly every single time, without adding extra complexity.
If you’re just getting started:
Set up a Fleet hub in a test subscription. Onboard two AKS clusters in a test Azure subscription to set up a Fleet hub and serve as a centralized management point. Then, onboard two Azure Kubernetes Service (AKS) clusters located in different regions to ensure global distribution and high availability. Deploy a straightforward workload, such as a sample web application, on these clusters. Test various Cluster Resource Placement (CRP) selectors, including PickAll (which selects all available clusters), PickFixed (which targets a specific fixed cluster), and PickN (which targets a specified number of clusters), to evaluate flexible workload placement strategies.
Next, incorporate Azure Front Door to efficiently manage and route multi-region traffic, enabling a seamless user experience across different geographies. Use GitOps practices leveraging tools like Argo CD or Flux to automate all deployment and configuration processes, ensuring continuous delivery and infrastructure as code.
By following this setup, typically achievable within a couple of hours, you’ll gain insight into why Fleet is considered a robust and scalable tool for managing enterprise Kubernetes environments across multiple regions with automation, flexibility, and high availability.
If you enjoyed this article, follow me for more deep dives into Azure Kubernetes, Fleet, and modern cloud-native operations.