Skip to content

Commit 1f25c69

Browse files
authored
Merge pull request #268264 from circy9/liqian/fleet
Fleet: split a single concept file into one concept file per feature
2 parents 718b09f + dfdb5dc commit 1f25c69

14 files changed

+270
-145
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"redirections": [
3+
{
4+
"source_path_from_root": "/articles/kubernetes-fleet/architectural-overview.md",
5+
"redirect_url": "/azure/kubernetes-fleet/concepts-fleet",
6+
"redirect_document_id": true
7+
}
8+
]
9+
}

articles/kubernetes-fleet/architectural-overview.md

Lines changed: 0 additions & 94 deletions
This file was deleted.
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
---
2+
title: "Azure Kubernetes Fleet Manager and member clusters"
3+
description: This article provides a conceptual overview of Azure Kubernetes Fleet Manager and member clusters.
4+
ms.date: 03/04/2024
5+
author: shashankbarsin
6+
ms.author: shasb
7+
ms.service: kubernetes-fleet
8+
ms.topic: conceptual
9+
---
10+
11+
# Azure Kubernetes Fleet Manager and member clusters
12+
13+
Azure Kubernetes Fleet Manager (Fleet) solves at-scale and multi-cluster problems for Kubernetes clusters. This document provides a conceptual overview of fleet and its relationship with its member Kubernetes clusters. Right now Fleet supports joining AKS clusters as member clusters.
14+
15+
[ ![Diagram that shows relationship between Fleet and Azure Kubernetes Service clusters.](./media/conceptual-fleet-aks-relationship.png) ](./media/conceptual-fleet-aks-relationship.png#lightbox)
16+
17+
## Fleet scenarios
18+
19+
A fleet is an Azure resource you can use to group and manage multiple Kubernetes clusters. Currently fleet supports the following scenarios:
20+
* Create a Fleet resource and group AKS clusters as member clusters.
21+
* Orchestrate latest or consistent Kubernetes version and node image upgrades across multiple clusters by using update runs, stages, and groups
22+
* Create Kubernetes resource objects on the Fleet resource's hub cluster and control their propagation to member clusters (preview).
23+
* Export and import services between member clusters, and load balance incoming L4 traffic across service endpoints on multiple clusters (preview).
24+
25+
## What are member clusters?
26+
27+
You can join Azure Kubernetes Service (AKS) clusters to a fleet as member clusters. Member clusters must reside in the same Microsoft Entra tenant as the fleet. But they can be in different regions, different resource groups, and/or different subscriptions.
28+
29+
## What is a hub cluster (preview)?
30+
31+
[!INCLUDE [preview features note](./includes/preview/preview-callout.md)]
32+
33+
Certain scenarios of fleet such as update runs don't require a Kubernetes API and thus don't require a hub cluster. Fleet can be created without the hub cluster for such scenarios. In this mode, Fleet just acts as a grouping entity in Azure Resource Manager.
34+
35+
For other scenarios such as Kubernetes resource propagation, a hub cluster is required. This hub cluster is a special AKS cluster whose lifecycle (creation, upgrades, deletion) is managed by the fleet resource. Any Kubernetes objects provided to the hub cluster are only stored as configurations on this cluster. Pod creation is disabled on this locked down hub cluster. Thus Fleet doesn't allow running any user workloads on the hub cluster and instead only allows using hub cluster for storing configurations that need to be propagated to other clusters or configurations that control cross-cluster orchestration.
36+
37+
The following table lists the differences between a fleet without hub cluster and a fleet with hub cluster:
38+
39+
| Feature Dimension | Without hub cluster | With hub cluster (preview) |
40+
|-|-|-|
41+
| Hub cluster hosting (preview) | :x: | :white_check_mark: |
42+
| Member cluster limit | Up to 100 clusters | Up to 20 clusters |
43+
| Update orchestration across multiple clusters | :white_check_mark: | :white_check_mark: |
44+
| Kubernetes resource object propagation (preview) | :x: | :white_check_mark: |
45+
| Multi-cluster L4 load balancing (preview) | :x: | :white_check_mark: |
46+
47+
Upon the creation of a fleet, a hub cluster is automatically created in the same subscription as the fleet under a managed resource group named as `FL_*`.
48+
49+
To improve reliability, hub clusters are locked down by denying any user initiated mutations to the corresponding AKS clusters (under the Fleet-managed resource group `FL_*`) and their underlying Azure resources like VMs (under the AKS-managed resource group `MC_FL_*`) via Azure deny assignments.
50+
51+
Hub clusters are exempted from Azure policies to avoid undesirable policy effects upon hub clusters.
52+
53+
## Billing
54+
55+
The fleet resource without hub cluster is currently free of charge. If your fleet contains a hub cluster, the hub cluster is a standard tier AKS cluster created in the fleet subscription and paid by you.
56+
57+
## FAQs
58+
59+
### Can I change a fleet without hub cluster to a fleet with hub cluster?
60+
No during hub cluster preview, to be supported once hub clusters become generally available.
61+
62+
## Next steps
63+
64+
* [Create a fleet and join member clusters](./quickstart-create-fleet-and-members.md).
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
title: "Multi-cluster layer-4 load balancing (preview)"
3+
description: This article describes the concept of multi-cluster layer-4 load balancing.
4+
ms.date: 03/04/2024
5+
author: shashankbarsin
6+
ms.author: shasb
7+
ms.service: kubernetes-fleet
8+
ms.topic: conceptual
9+
---
10+
11+
# Multi-cluster layer-4 load balancing (preview)
12+
13+
[!INCLUDE [preview features note](./includes/preview/preview-callout.md)]
14+
15+
Azure Kubernetes Fleet Manager (Fleet) can be used to set up layer 4 multi-cluster load balancing across workloads deployed across member clusters.
16+
17+
[ ![Diagram that shows how multi-cluster load balancing works.](./media/conceptual-load-balancing.png) ](./media/conceptual-load-balancing.png#lightbox)
18+
19+
For multi-cluster load balancing, Fleet requires target clusters to be using [Azure CNI networking](../aks/configure-azure-cni.md). Azure CNI networking enables pod IPs to be directly addressable on the Azure virtual network so that they can be routed to from the Azure Load Balancer.
20+
21+
The `ServiceExport` itself can be propagated from the fleet cluster to a member cluster using the Kubernetes resource propagation feature, or it can be created directly on the member cluster. Once this `ServiceExport` resource is created, it results in a `ServiceImport` being created on the fleet cluster, and all other member clusters to build the awareness of the service.
22+
23+
The user can then create a `MultiClusterService` custom resource to indicate that they want to set up Layer 4 multi-cluster load balancing. This `MultiClusterService` results in the member cluster mapped Azure Load Balancer being configured to load balance incoming traffic across endpoints of this service on multiple member clusters.
24+
25+
## Next steps
26+
27+
* [Set up multi-cluster layer-4 load balancing](./l4-load-balancing.md).
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
---
2+
title: "Kubernetes resource propagation from hub cluster to member clusters (preview)"
3+
description: This article describes the concept of Kubernetes resource propagation from hub cluster to member clusters.
4+
ms.date: 03/04/2024
5+
author: shashankbarsin
6+
ms.author: shasb
7+
ms.service: kubernetes-fleet
8+
ms.topic: conceptual
9+
---
10+
11+
# Kubernetes resource propagation from hub cluster to member clusters (preview)
12+
13+
[!INCLUDE [preview features note](./includes/preview/preview-callout.md)]
14+
15+
Platform admins often need to deploy Kubernetes resources into multiple clusters, for example:
16+
* Roles and role bindings to manage who can access what.
17+
* An infrastructure application that needs to be on all clusters, for example, Prometheus, Flux.
18+
19+
Application developers often need to deploy Kubernetes resources into multiple clusters, for example:
20+
* Deploy a video serving application into multiple clusters, one per region, for low latency watching experience.
21+
* Deploy a shopping cart application into two paired regions for customers to continue to shop during a single region outage.
22+
* Deploy a batch compute application into clusters with inexpensive spot node pools available.
23+
24+
It's tedious to create and update these Kubernetes resources across tens or even hundreds of clusters, and track their current status in each cluster.
25+
Azure Kubernetes Fleet Manager (Fleet) provides Kubernetes resource propagation to enable at-scale management of Kubernetes resources.
26+
27+
You can create Kubernetes resources in the hub cluster and propagate them to selected member clusters via Kubernetes Customer Resources: `MemberCluster` and `ClusterResourcePlacement`.
28+
Fleet supports these custom resources based on an [open-source cloud-native multi-cluster solution][fleet-github].
29+
30+
## What is `MemberCluster`?
31+
32+
Once a cluster joins a fleet, a corresponding `MemberCluster` custom resource is created on the hub cluster.
33+
You can use it to select target clusters in resource propagation.
34+
35+
The following labels are added automatically to all member clusters, which can be used for target cluster selection in resource propagation.
36+
37+
* `fleet.azure.com/location`
38+
* `fleet.azure.com/resource-group`
39+
* `fleet.azure.com/subscription-id`
40+
41+
You can find the API reference of `MemberCluster` [here][membercluster-api].
42+
43+
## What is `ClusterResourcePlacement`?
44+
45+
Fleet provides `ClusterResourcePlacement` as a mechanism to control how cluster-scoped Kubernetes resources are propagated to member clusters.
46+
47+
Via `ClusterResourcePlacement`, you can:
48+
- Select which cluster-scoped Kubernetes resources to propagate to member clusters
49+
- Specify placement policies to manually or automatically select a subset or all of the member clusters as target clusters
50+
- Specify rollout strategies to safely roll out any updates of the selected Kubernetes resources to multiple target clusters
51+
- View the propagation progress towards each target cluster
52+
53+
In order to propagate namespace-scoped resources, you can select a namespace which by default selecting both the namespace and all the namespace-scoped resources under it.
54+
55+
The following diagram shows a sample `ClusterResourcePlacement`.
56+
[ ![Diagram that shows how Kubernetes resource are propagated to member clusters.](./media/conceptual-resource-propagation.png) ](./media/conceptual-resource-propagation.png#lightbox)
57+
58+
You can find the API reference of `ClusterResourcePlacement` [here][clusterresourceplacement-api].
59+
60+
## Next Steps
61+
62+
* [Set up Kubernetes resource propagation from hub cluster to member clusters](./resource-propagation.md).
63+
64+
<!-- LINKS - external -->
65+
[fleet-github]: https://github.com/Azure/fleet
66+
[membercluster-api]: https://github.com/Azure/fleet/blob/main/docs/api-references.md#membercluster
67+
[clusterresourceplacement-api]: https://github.com/Azure/fleet/blob/main/docs/api-references.md#clusterresourceplacement

0 commit comments

Comments
 (0)