cncf / sandbox

Applications for Sandbox go here! ⏳📦🧪
Apache License 2.0
136 stars 22 forks source link

[Sandbox] KubeFleet #307

Open britaniar opened 3 weeks ago

britaniar commented 3 weeks ago

Application contact emails

zhangryan@microsoft.com, liqianluo@micorsoft.com, qike@microsoft.com, bridgetk@microsoft.com, jpalma@microsoft.com, simonwaight@microsoft.com

Project Summary

KubeFleet is a multi-cluster solution that enables users to effectively manage their applications running in multiple Kubernetes clusters.

Project Description

KubeFleet is a cloud native solution tailored for the at-scale management of applications running in multiple Kubernetes clusters, providing orchestration and coordination of applications across a fleet of Kubernetes clusters. KubeFleet workload orchestration enables users to create resources on a Kubernetes hub cluster and selectively propagate the resources to some or all managed clusters based on names, labels, capacity, cluster size, cost, etc. Beside intelligent scheduling, KubeFleet supports staged rollouts, which allows users to centrally manage the rollout the changes of an application to a set of clusters. KubeFleet’s streamlining of resource management not only enhances operational efficiency but also ensures that teams can effectively manage their Kubernetes native configurations, such as resource quota, RBAC, and network polices, at scale.

Org repo URL (provide if all repos under the org are in scope of the application)

N/A

Project repo URL in scope of application

https://github.com/Azure/fleet

Additional repos in scope of the application

No response

Website URL

https://github.com/Azure/fleet

Roadmap

https://github.com/Azure/fleet/blob/main/ROADMAP.md

Roadmap context

N/A

Contributing Guide

https://github.com/Azure/fleet/blob/main/CONTRIBUTING.md

Code of Conduct (CoC)

https://github.com/Azure/fleet/blob/main/CODE_OF_CONDUCT.md

Adopters

No response

Contributing or Sponsoring Org

Microsoft Azure

Maintainers file

https://github.com/Azure/fleet/blob/main/MAINTAINERS.md

IP Policy

Trademark and accounts

Why CNCF?

We are excited to submit our project, which we believe has the potential to resonate with a wide audience within the Kubernetes community. Our commitment to open-source principles drives us to adopt the best practices and foster an inclusive, vendor-neutral environment. We see the CNCF as an ideal platform to support this vision, allowing us to collaborate with others in creating a solution that benefits everyone and advances shared goals. We invite all community members to join us on this journey toward collaboration and innovation.

Benefit to the Landscape

Adding KubeFleet to the CNCF landscape will significantly enhance the ecosystem by providing a comprehensive solution to managing an application on multiple Kubernetes clusters at scale. KubeFleet’s ability to facilitate workload orchestration across multiple clusters addresses common challenges in resource distribution and operational efficiency, which are often barriers for organizations managing applications in a multi-cluster environment. By fostering collaboration and vendor neutrality, KubeFleet not only fills a critical gap in the current landscape but also empowers teams to adopt best practices in multi-cluster application management, driving innovation and improving productivity within the CNCF community.

Cloud Native 'Fit'

KubeFleet fits into Scheduling & Orchestration in the Cloud Native landscape as the project aims to automate the orchestration of workloads across clusters, enhancing operational efficiency and reducing manual intervention, which is a core tenet of cloud-native practices.

Cloud Native 'Integration'

KubeFleet depends on Kubernetes, as the project is a Kubernetes operator following the established Kubernetes custom resource definition (CRD) and controller design pattern.

Cloud Native Overlap

There are several multi-cluster related CNCF projects such as Karmada, KubeVela, OCM, ClusterNet and KubeStellar. While none of these projects are identical to KubeFleet, they offer similar functionality for managing applications on multiple Kubernetes clusters. KubeFleet distinguishes itself by providing a namespace centric approach that operates on the entire namespace instead of individual resources. It also provides a rich set of continuous deployment capabilities to roll out an update to a fleet of clusters in a multi-stage and step-by-step way.

Similar projects

Competing projects:

Landscape

No

Business Product or Service to Project separation

Microsoft Azure has developed a managed service called Azure Kubernetes Fleet Manager that uses the KubeFleet project for intelligent cluster resource placement and scheduling. KubeFleet adopted open-source best practices, such as using public repositories and community forums for collaboration, from the beginning to distinguish the open-source project from the hosted service. The contribution to CNCF would further enable us to maintain a clear separation between the KubeFleet project and the Azure Kubernetes Fleet Manager service by establishing an independent governance structure and development process. This will include forming a dedicated community steering committee composed of contributors from diverse backgrounds, ensuring that decision-making is transparent and inclusive. This approach will help foster an environment of collaboration and ensure that the project remains vendor-neutral and community-focused.

Project Domain Technical Review

We intend to schedule a presentation with TAG Runtime.

CNCF Contacts

Lachie Evenson (https://github.com/lachie83) Brendan Burns (https://github.com/brendandburns)

Additional information

We are looking forward to moving the repo to an independent org so we can have open governance and invite community participation. We intend to start hosting community meetings and slack channels just like other CNCF projects after we join. We hope to create a neutral space to grow this community.