Skip to content

Commit f3ffdb2

Browse files
Merge pull request #270865 from schaffererin/userstory237419
Expand conceptual docs in Azure fleet docs
2 parents b12e1a9 + 4b59eb2 commit f3ffdb2

File tree

6 files changed

+70
-13
lines changed

6 files changed

+70
-13
lines changed

articles/kubernetes-fleet/concepts-fleet.md

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "Azure Kubernetes Fleet Manager and member clusters"
33
description: This article provides a conceptual overview of Azure Kubernetes Fleet Manager and member clusters.
4-
ms.date: 03/04/2024
4+
ms.date: 04/01/2024
55
author: shashankbarsin
66
ms.author: shasb
77
ms.service: kubernetes-fleet
@@ -10,21 +10,24 @@ ms.topic: conceptual
1010

1111
# Azure Kubernetes Fleet Manager and member clusters
1212

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.
13+
This article provides a conceptual overview of fleets, member clusters, and hub clusters in Azure Kubernetes Fleet Manager (Fleet).
1414

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)
15+
## What are fleets?
1616

17-
## Fleet scenarios
17+
A fleet resource acts as a grouping entity for multiple AKS clusters. You can use them to manage multiple AKS clusters as a single entity, orchestrate updates across multiple clusters, propagate Kubernetes resources across multiple clusters, and provide a single pane of glass for managing multiple clusters. You can create a fleet with or without a [hub cluster](#what-is-a-hub-cluster-preview).
1818

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).
19+
A fleet consists of the following components:
20+
21+
:::image type="content" source="./media/concepts-fleet/fleet-architecture.png" alt-text="This screenshot shows a diagram of the fleet resource, including the hub cluster agent and the member cluster agent.":::
22+
23+
* **fleet-hub-agent**: A Kubernetes controller that creates and reconciles all the fleet-related custom resources (CRs) in the hub cluster.
24+
* **fleet-member-agent**: A Kubernetes controller that creates and reconciles all the fleet-related CRs in the member clusters. This controller pulls the latest CRs from the hub cluster and consistently reconciles the member clusters to match the desired state.
2425

2526
## What are member clusters?
2627

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+
The `MemberCluster` represents a cluster-scoped API established within the hub cluster, serving as a representation of a cluster within the fleet. This API offers a dependable, uniform, and automated approach for multi-cluster applications to identify registered clusters within a fleet. It also facilitates applications in querying a list of clusters managed by the fleet or in observing cluster statuses for subsequent actions. For more information, see [the upstream Fleet documentation](https://github.com/Azure/fleet/blob/main/docs/concepts/MemberCluster/README.md).
29+
30+
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.
2831

2932
## What is a hub cluster (preview)?
3033

@@ -36,7 +39,7 @@ For other scenarios such as Kubernetes resource propagation, a hub cluster is re
3639

3740
The following table lists the differences between a fleet without hub cluster and a fleet with hub cluster:
3841

39-
| Feature Dimension | Without hub cluster | With hub cluster (preview) |
42+
| Feature dimension | Without hub cluster | With hub cluster (preview) |
4043
|-|-|-|
4144
| Hub cluster hosting (preview) | :x: | :white_check_mark: |
4245
| Member cluster limit | Up to 100 clusters | Up to 20 clusters |
@@ -57,8 +60,9 @@ The fleet resource without hub cluster is currently free of charge. If your flee
5760
## FAQs
5861

5962
### 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.
63+
64+
Not during hub cluster preview. This is planned to be supported once hub clusters become generally available.
6165

6266
## Next steps
6367

64-
* [Create a fleet and join member clusters](./quickstart-create-fleet-and-members.md).
68+
* [Create a fleet and join member clusters](./quickstart-create-fleet-and-members.md).
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
---
2+
title: "Azure Kubernetes Fleet Manager scheduler and scheduling framework"
3+
description: This article provides a conceptual overview of the Azure Kubernetes Fleet Manager scheduler and scheduling framework.
4+
ms.date: 04/01/2024
5+
author: schaffererin
6+
ms.author: schaffererin
7+
ms.service: kubernetes-fleet
8+
ms.topic: conceptual
9+
---
10+
11+
# Azure Kubernetes Fleet Manager scheduler and scheduling framework
12+
13+
This article provides a conceptual overview of the scheduler and scheduling framework in Azure Kubernetes Fleet Manager (Fleet).
14+
15+
## What is the scheduler?
16+
17+
The scheduler is a core component in the fleet workload with the primary responsibility of determining scheduling decisions for a bundle of resources based on the latest `ClusterSchedulingPolicySnapshot` generated by the [`ClusterResourcePlacement`](./concepts-resource-propagation.md).
18+
19+
By default, the scheduler operates in *batch mode*, which enhances performance. In this mode, it binds a `ClusterResourceBinding` from a `ClusterResourcePlacement` to multiple clusters whenever possible.
20+
21+
### Batch mode
22+
23+
Scheduling resources within a `ClusterResourcePlacement` involves more dependencies compared to scheduling pods within a Kubernetes Deployment. There are two notable distinctions:
24+
25+
* In a `ClusterResourcePlacement`, multiple replicas of resources can't be scheduled on the same cluster.
26+
* The `ClusterResourcePlacement` supports different placement types within a single object.
27+
28+
For more information, see [the upstream Fleet Scheduler documentation](https://github.com/Azure/fleet/blob/main/docs/concepts/Scheduler/README.md).
29+
30+
## What is the scheduling framework?
31+
32+
The fleet scheduling framework closely aligns with the native [Kubernetes scheduling framework](https://kubernetes.io/docs/concepts/scheduling-eviction/scheduling-framework/), incorporating several modifications and tailored functionalities to support the fleet workload.
33+
34+
:::image type="content" source="./media/concepts-scheduler-scheduling-framework/scheduling-framework.png" alt-text="This screenshot shows an overview diagram of the fleet scheduling framework.":::
35+
36+
The primary advantage of this framework is its capability to compile plugins directly into the scheduler. Its API facilitates the implementation of diverse scheduling features as plugins, ensuring a lightweight and maintainable core.
37+
38+
The fleet scheduler integrates the following fundamental built-in plugins:
39+
40+
* **Topology spread plugin**: Supports the `TopologySpreadConstraints` in the placement policy.
41+
* **Cluster affinity plugin**: Facilitates the affinity clause in the placement policy.
42+
* **Same placement affinity plugin**: Designed specifically for fleet and prevents multiple replicas from being placed within the same cluster.
43+
* **Cluster eligibility plugin**: Enables cluster selection based on specific status criteria.
44+
45+
For more information, see the [upstream Fleet Scheduling Framework documentation](https://github.com/Azure/fleet/blob/main/docs/concepts/Scheduling-Framework/README.md).
46+
47+
## Next steps
48+
49+
* [Create a fleet and join member clusters](./quickstart-create-fleet-and-members.md).

articles/kubernetes-fleet/index.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ landingContent:
2020
links:
2121
- text: Fleets and member clusters
2222
url: concepts-fleet.md
23+
- text: Scheduler and scheduling framework
24+
url: concepts-scheduler-scheduling-framework.md
2325
- text: Update orchestration across multiple member clusters
2426
url: concepts-update-orchestration.md
2527
- text: Kubernetes resource propagation from hub cluster to member clusters
546 KB
Loading
220 KB
Loading

articles/kubernetes-fleet/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
items:
2121
- name: Fleets and member clusters
2222
href: concepts-fleet.md
23+
- name: Scheduler and scheduling framework
24+
href: concepts-scheduler-scheduling-framework.md
2325
- name: Update orchestration across multiple member clusters
2426
href: concepts-update-orchestration.md
2527
- name: Kubernetes workload orchestration

0 commit comments

Comments
 (0)