Fleet provides the following capabilities
- Join/Leave is a feature that allows a member cluster to join and leave a fleet by registering a custom resource on the fleet's control plane (the hub cluster).
- Workload Orchestration is a feature that allows users to create resources on the hub cluster and then selectively propagate these resources to desired member clusters in the fleet.
Fleet: A multi cluster solution that users use to manage Kubernetes clusters.
Hub cluster: A Kubernetes cluster that hosts the control plane of the fleet.
Member cluster: A Kubernetes cluster that is part of the fleet.
Fleet-system Namespace: A reserved namespace in all clusters for running Fleet networking controllers and putting internal resources.
This section provides a tutorial which explains how to setup and make use of the capabilities provided by fleet
export this variable which specifies the number of member clusters that will be created.
export MEMBER_CLUSTER_COUNT=1
from the root directory of the repo run the following command, by default a hub cluster gets created which is the control plane for fleet (The makefile uses kindest/node:v1.30.0)
make setup-clusters
then switch context to the hub cluster,
kubectl config use-context kind-hub
create a member cluster CR on the hub cluster which allows the member cluster created on the setup step to join the fleet,
apiVersion: cluster.kubernetes-fleet.io/v1beta1
kind: MemberCluster
metadata:
name: kind-cluster-1
spec:
identity:
name: fleet-member-agent-cluster-1
kind: ServiceAccount
namespace: fleet-system
apiGroup: ""
get the membercluster to see if it has joined the fleet,
kubectl get memberclusters -A
output is supposed to look like,
NAME JOINED AGE
kind-cluster-1 True 25m
Now we can go ahead and use the workload orchestration capabilities offered by fleet, please start with the concept to understand the details of various features offered by fleet.
This project has adopted the [Microsoft Open Source Code of Conduct][8]. For more information, see the [Code of Conduct FAQ][9] or contact [opencode@microsoft.com][19] with any additional questions or comments.
Azure fleet is an open source project that is [not covered by the Microsoft Azure support policy][10]. [Please search open issues here][11], and if your issue isn't already represented please [open a new one][12]. The project maintainers will respond to the best of their abilities.
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.