clusternet is a free, open source orchestration & scheduling project written in Go and released under Apache-2.0. It has 1,460 GitHub stars, 208 forks and 72 open issues, and was last pushed 13 days ago. On this registry it ranks #80 of 130 tracked projects in Orchestration & Scheduling, with 5 head-to-head comparisons available. It gained 5 stars over the last 30 tracked days.

What is clusternet?

Clusternet is a CNCF Sandbox add-on, licensed Apache-2.0 and written in Go, that lets platform teams manage and visit Kubernetes clusters running on public cloud, private cloud, hybrid cloud or the edge as though those clusters were running locally.

What it is

Clusternet, short for Cluster Internet, is an open-source add-on for Kubernetes that treats a fleet of clusters as a single manageable surface. It sets up network tunnels in a configurable way, then exposes a Kubernetes-styled API so an operator can reach a managed cluster or a Kubernetes service with an ordinary KubeConfig. The project lives squarely in the cloud-native ecosystem and is listed as a CNCF Sandbox project. It supports clusters on AWS, Google Cloud, Tencent Cloud and Alibaba Cloud, on-premise clusters, any Certified Kubernetes Distribution such as k3s, and clusters running at the edge, across linux/amd64, linux/arm64, linux/ppc64le, linux/s390x, linux/386 and linux/arm.

The concrete problem it solves is tool sprawl. Teams running workloads in several places tend to accumulate a separate management tool per cluster or per provider, and Clusternet removes that need by making every cluster reachable through one interface. Beyond access, it deploys and coordinates applications to multiple clusters from a single set of APIs hosted in a hosting cluster, so the same control point that opens a tunnel also drives scheduling and rollout.

Key capabilities

  • Multi-cluster management and governance for clouds, on-premise and edge, covering Kubernetes above v1.17.x with documented version skew handling.
  • Automatic discovery and registration of clusters created by cluster-api.
  • Visiting managed clusters under dynamic RBAC rules, rather than a fixed set of credentials.
  • Cluster auto-labelling driven by Node Feature Discovery.
  • A scheduling framework with in-tree and out-of-tree plugins, offering replication scheduling, static dividing scheduling by weight, dynamic dividing scheduling by capacity, and subgroup cluster scheduling.
  • A cluster resource predictor framework with in-tree and out-of-tree implementations and several deployment topologies.
  • Resource handling for Kubernetes native objects such as Deployment and StatefulSet, for CRDs, and for Helm charts including OCI-based Helm charts, with resource interpretations handled by in-tree or out-of-tree controllers.

Who uses it and how

  • Platform teams running fleets across several public clouds, who need one scheduling and deployment path instead of per-provider tooling.
  • Edge operators, where clusters sit in locations that a central team cannot reach directly and tunnels do the work.
  • Teams already provisioning with cluster-api, whose new clusters register themselves into Clusternet automatically.
  • Hosting-cluster operators who register the parent cluster as a child of itself so that its own workloads are scheduled through the same mechanism as every other cluster.
  • Teams standardising on k3s or another Certified Kubernetes Distribution, who want a uniform management layer above heterogeneous distributions.

Getting started

The README excerpt supplied here contains no quickstart, install command, image name or manifest path, so its install route cannot be quoted from these facts. The project points readers to clusternet.io, and the Go module is published at github.com/clusternet/clusternet.

How it compares

No list of paid products that Clusternet replaces is provided in the facts, and no directly comparable alternative tool is named either. The only related projects named are ones Clusternet manages or integrates with, such as k3s and cluster-api, so it stands alone in this registry.

When to use it — and when not to

A self-hoster must run and operate a hosting cluster with its control-plane components, and must keep every managed cluster within the supported Kubernetes version range above v1.17.x. It is not the right pick for a single-cluster deployment, where the added control plane buys nothing, and not for teams unwilling to run their own management plane. The README excerpt available here is thin on installation detail, and the repository carries 72 open issues.

project readme (upstream, from github) — read inline

GoPkg Widget License GoVersion OpenSSF Best Practices Go Report Card build Version codecov FOSSA Status


Managing Your Clusters (including public, private, hybrid, edge, etc.) as easily as Visiting the Internet.

Out of the Box.

A CNCF(Cloud Native Computing Foundation) Sandbox Project.


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 helps 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;


Core Features

  • 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 Certified Kubernetes Distributions, such as k3s
    • managing Kubernetes clusters running at the edge
    • automatically discovering and registering clusters created by cluster-api
    • parent cluster can also register itself as a child cluster to run workloads
    • managing Kubernetes above v1.17.x (Learn more about Kubernetes Version Skew)
    • visiting any managed clusters with dynamic RBAC rules (Learn more from this tutorial)
    • cluster auto-labelling based on Node Feature Discovery
  • 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 OCI-based Helm charts
    • Resource interpretations with in-tree or out-of-tree controllers
    • Setting Overrides
      • two-stage priority based override strategies
      • enables easy rollback of overrides
      • cross-cluster canary rollout
    • Multi-Cluster Services
      • multi-cluster services discovery with mcs-api
  • 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

Architecture

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 clusternet.io.

To start using Clusternet

| | Kubernetes >=v1.30 | >=v1.28,

Contact

If you've got any questions, please feel free to contact us with following ways:

Contributing & Developing

If you want to get participated and become a contributor to Clusternet, please don't hesitate to refer to our CONTRIBUTING document for details.

A developer guide 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.;

License

FOSSA Status

Frequently asked questions

Is clusternet free to use?

clusternet is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does clusternet do?

[CNCF Sandbox Project] Managing your Kubernetes clusters (including public, private, edge, etc.) as easily as visiting the Internet

What is clusternet written in?

clusternet is primarily written in Go. Its source is publicly available at https://github.com/clusternet/clusternet, and it has 1,460 GitHub stars.