Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KubeFleet Blog post #4753

Merged
merged 20 commits into from
Jan 27, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
884a856
Merge pull request #6 from Azure/master
sanketbakshi Jan 16, 2025
63d78c0
kubefleet blog post
sanketbakshi Jan 17, 2025
5ed6b62
Merge branch 'master' of https://github.com/sanketbakshi/AKS
sanketbakshi Jan 17, 2025
3fd15ac
changed date for kubefleet blog post
sanketbakshi Jan 17, 2025
0dc30b2
Update blog/_posts/2025-01-17-Multi-Cluster-Management-with-KubeFleet.md
sanketbakshi Jan 17, 2025
5e4b83f
Update blog/_posts/2025-01-17-Multi-Cluster-Management-with-KubeFleet.md
sanketbakshi Jan 17, 2025
1bd228c
Update blog/_posts/2025-01-17-Multi-Cluster-Management-with-KubeFleet.md
sanketbakshi Jan 17, 2025
7c8570f
spelling corrections
sanketbakshi Jan 22, 2025
9efd8a9
Merge branch 'master' of https://github.com/sanketbakshi/AKS
sanketbakshi Jan 22, 2025
4b34148
Merge pull request #7 from Azure/master
sanketbakshi Jan 23, 2025
0870a69
changed author to Ryan Zhang
sanketbakshi Jan 23, 2025
ba2eaee
Merge branch 'master' of https://github.com/sanketbakshi/AKS
sanketbakshi Jan 23, 2025
0701298
Update blog/_data/authors.yml
ryanzhang-oss Jan 23, 2025
81ee721
Merge pull request #1 from sanketbakshi/master
ryanzhang-oss Jan 23, 2025
633a113
address comments
Jan 25, 2025
1186704
Merge pull request #8 from ryanzhang-oss/master
sanketbakshi Jan 25, 2025
4bef510
updated urls
sanketbakshi Jan 25, 2025
c370556
Merge branch 'master' of https://github.com/sanketbakshi/AKS
sanketbakshi Jan 25, 2025
48dc8bf
updated urls
sanketbakshi Jan 25, 2025
f1c8e7c
updated publish date
sanketbakshi Jan 25, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions blog/_data/authors.yml
Original file line number Diff line number Diff line change
Expand Up @@ -128,3 +128,12 @@ Sanket Bakshi:
- label: "LinkedIn"
icon: "fab fa-fw fa-linkedin"
url: "https://www.linkedin.com/in/sanket-bakshi-69a55aa/"

Ryan Zhang:
name : "Ryan Zhang"
bio : "Principal Software Engineer for Azure Kubernetes Service"
avatar : "https://media.licdn.com/dms/image/v2/C5603AQHa1FJBfzIVaQ/profile-displayphoto-shrink_400_400/profile-displayphoto-shrink_400_400/0/1533281697412?e=1743033600&v=beta&t=oFIvr0vwDLPj6cbRF8Vn6NrUh89H2Da7RI999kemW28"
links:
- label: "LinkedIn"
icon: "fab fa-fw fa-linkedin"
url: "https://www.linkedin.com/in/ryanzhang-oss/"
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
title: "Multi-Cluster Management with KubeFleet"
description: "KubeFleet helps easily manage multiple Kubernetes clusters. This Microsoft-led, open source project was recently accepted as a CNCF sandbox project."
date: 2025-01-27
author: Ryan Zhang
categories: general
---


In the ever-evolving world of cloud native technologies, managing multiple Kubernetes clusters efficiently is a common challenge that still does not have a well received community driven solution.

Managing multiple Kubernetes clusters can be challenging, with issues like -

* How to manage cloud-native configs and applications across these clusters?
* How to perform changes to those resources safely without triggering global failures?
* How to pick the right clusters to meet special needs of the applications (e.g. specific region footprint, highly specific CPU or memory needs, lowering cost per GB etc.)?
* How to seamlessly move applications between clusters so that one can treat clusters as “cattle” instead of “pets”?

The team in AKS created the open source [KubeFleet](https://github.com/Azure/fleet) project specifically to help kubernetes users manage multiple Kubernetes clusters easier and more efficiently. We also build a managed service called
[Azure Kubernetes Fleet Manager] (https://learn.microsoft.com/azure/kubernetes-fleet/overview) on top of KubeFleet to provide a managed experience with full Azure support and multi-cluster traffic management capabilities.

This open-source project was recently accepted as a [CNCF sandbox project](https://aka.ms/aks/kubefleet/cncfsandboxissue). This was a journey 3 years in making! In this blog post, we'll delve into what KubeFleet is, its key features, and how it can benefit your organization.

## What is KubeFleet?

KubeFleet is an open-source, multi-cluster Kubernetes resource management solution that has users within and outside of Microsoft. It provides a robust framework for orchestrating and distributing Kubernetes resources representing configs (e.g., roles, bindings, quotas, policies)
and applications (e.g., deployments, services) across a fleet of Kubernetes clusters. Whether you're managing clusters on-premises, in the cloud, or in a hybrid environment, KubeFleet offers the tools you need to ensure seamless operations.
KubeFleet is designed to be cloud provider agnostic so you can deploy it on EKS, GKE or any other cloud provider you choose. It is designed from the outset with provider mode that allows each adapter to provide their customized plug-ins like resource price or sku capacities.
This allows KubeFleet to manage clusters across cloud providers and on-prem.

## Key Features of KubeFleet

* Advanced multi-Cluster Orchestration: KubeFleet enables users to create resources on a hub cluster, served as the control plane for the entire fleet, and selectively propagate any changes of the resources to desired member clusters automatically.
This intelligent scheduling is based on various factors such as names, labels, capacity, cluster size, and cost. It also has powerful override capabilities to allow users to customize the resources based on the selected cluster.
On top of that, KubeFleet provides dynamic scheduling features to allow users to move resources between clusters in the runtime.

* Intelligent Rollouts: KubeFleet provides multiple ways for the suer to centrally manage the rollout of changes to your applications across multiple clusters. This feature ensures that updates are deployed in a controlled and efficient manner without causing multi-cluster failures.

* Config Management: KubeFleet streamlines config management by allowing teams to manage Kubernetes native configurations, such as resource quotas, RBAC, and network policies, at scale.
It also provides a set of powerful tools to allow users to perform takeover actions, detect drifting, and report differences between the desired version and the applied resources on each cluster.

* One-way Connections: KubeFleet doesn't require connections from the central management cluster (i.e., hub cluster) to member clusters. It only requires one-way connections from member clusters to the hub, allowing member clusters to stay private.



## How KubeFleet Works

KubeFleet operates on a hub-and-spoke model, where a central hub cluster hosts the control plane, and member clusters are part of the fleet. The hub cluster manages the orchestration and coordination of resources across the member clusters. This architecture ensures that all clusters in the fleet are managed consistently and efficiently.

![KubeFleet Architecture!](https://aka.ms/aks/kubefleet/architectureimage)


## Benefits of Using KubeFleet

* Enhanced Operational Efficiency: By centralizing the management of multiple clusters, KubeFleet reduces the complexity and overhead associated with managing individual applications and thus makes clusters expendable.

* Improved Security: KubeFleet's support for private egress and network isolation ensures that your clusters remain secure and compliant with industry standards.

* Scalability: Whether you have a few clusters or hundreds, KubeFleet scales to meet your needs, providing a flexible and robust solution for multi-cluster management.


## Getting Started with KubeFleet

To get started with KubeFleet, you can visit the [KubeFleet github repo](https://github.com/Azure/fleet). The repository provides all the resources you need to set up and start using KubeFleet in your environment.

If you preferred a managed version of KubeFleet with full Azure support and traffic shifting capabilities, check out [Azure Kubernetes Fleet Manager](https://learn.microsoft.com/azure/kubernetes-fleet/overview).
Loading