Project: Clusternet (Orchestration & Management / Scheduling & Orchestration)
File: README.md

<div><img src="https://clusternet.io/images/clusternet-horizontal-color.png" style="width:300px;" /></div> ](https://pkg.go.dev/github.com/clusternet/clusternet) ](https://www.apache.org/licenses/LICENSE-2.0.html) ](https://bestpractices.coreinfrastructure.org/projects/7185) ](https://goreportcard.com/report/github.com/clusternet/clusternet) ](https://github.com/clusternet/clusternet/releases) ](https://codecov.io/gh/clusternet/clusternet) ](https://app.fossa.com/projects/custom%2B162%2Fgithub.com%2Fclusternet%2Fclusternet?ref=badge_shield) Managing Your Clusters (including public, private, hybrid, edge, etc.) as easily as Visiting the Internet. Out of the Box. A CNCF() Sandbox Project. <div align="center"><img src="https://clusternet.io/images/clusternet-in-a-nutshell.png" style="width:900px;" /></div> Clusternet (Cluster Internet) is an open source *add-on* that helps you manage thousands of millions of Kubernetes clusters as easily as visiting the Internet. No matter the clusters are running on public cloud, private cloud, hybrid cloud, or at the edge, Clusternet helps setup network tunnels in a configurable way and lets you manage/visit them all as if they were running locally. This also help eliminate the need to juggle different management tools for each cluster. Clusternet can also help deploy and coordinate applications to multiple clusters from a single set of APIs in a hosting cluster. Clusternet also provides a Kubernetes-styled API, where you can continue using the Kubernetes way, such as KubeConfig, to visit a certain Managed Kubernetes cluster, or a Kubernetes service. Clusternet is multiple platforms supported now, including `linux/amd64`, `linux/arm64`, `linux/ppc64le`, `linux/s390x` , `linux/386` and `linux/arm`; Kubernetes Multi-Cluster Management and Governance managing Kubernetes clusters running in cloud providers, such as AWS, Google Cloud, Tencent Cloud, Alibaba Cloud, etc. managing on-premise Kubernetes clusters managing any , such as managing Kubernetes clusters running at the edge automatically discovering and registering clusters created by parent cluster can also register itself as a child cluster to run workloads managing Kubernetes upper than v1.17.x (Learn more about ) visiting any managed clusters with dynamic RBAC rules (Learn more from ) cluster auto-labelling based on Application Coordinations Scheduling Framework (`in-tree` plugins, `out-of-tree` plugins) Cross-Cluster Scheduling replication scheduling static dividing scheduling by weight dynamic dividing scheduling by capacity cluster resource predictor framework for `in-tree` and `out-of-tree` implementations various deployment topologies for cluster resource predictors subgroup cluster scheduling Various Resource Types Kubernetes native objects, such as `Deployment`, `StatefulSet`, etc. CRDs helm charts, including Resource interpretations with `in-tree` or `out-of-tree` controllers - two-stage priority based override strategies easy to rollback overrides cross-cluster canary rollout Multi-Cluster Services multi-cluster services discovery with CLI providing a kubectl plugin, which can be installed with `kubectl krew install clusternet` consistent user experience with `kubectl` create/update/watch/delete multi-cluster resources interacting with any child clusters the same as local cluster Client-go easy to integrate via a Clusternet is a lightweight addon that consists of four components, `clusternet-agent`, `clusternet-scheduler`, `clusternet-controller-manager` and `clusternet-hub`. Explore the architecture of Clusternet on . See our documentation on . The will walk you through setting up Clusternet locally with and deploying applications to multiple clusters. Try our that help you understand Clusternet and learn some basic Clusternet features. If you want to use to interact with Clusternet, we provide a wrapper for easy integration. You can follow for a quick start. To use Clusternet APIs and CRDs as a module, please add to your `go.mod`. If you've got any questions, please feel free to contact us with following ways: If you want to get participated and become a contributor to Clusternet, please don't hesitate to refer to our document for details. A is ready to help you build binaries for all platforms, such as `darwin/amd64`, `linux/amd64`, `linux/arm64`, etc.; build docker images for multiple platforms, such as `linux/amd64`, `linux/arm64`, etc.; <div align="center"><img src="https://raw.githubusercontent.com/cncf/artwork/master/other/cncf/horizontal/color/cncf-color.svg" style="width:600px;" /></div> ](https://app.fossa.com/projects/custom%2B162%2Fgithub.com%2Fclusternet%2Fclusternet?ref=badge_large)