Skip to content

Azure/fleet

Repository files navigation

Fleet

GitHub release (latest by date) Go Report Card Build Status GitHub go.mod Go version codecov

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.

Concepts

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.

Quick Start

This section provides a tutorial which explains how to setup and make use of the capabilities provided by fleet

Prerequisites

Steps to run agents on Kind clusters

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.28.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.

Code of Conduct

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.

Contributing

Support

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.

Trademarks

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.