{"id":13461365,"url":"https://github.com/clusternet/clusternet","last_synced_at":"2025-08-20T19:10:42.543Z","repository":{"id":36951485,"uuid":"374587785","full_name":"clusternet/clusternet","owner":"clusternet","description":"[CNCF Sandbox Project] Managing your Kubernetes clusters (including public, private, edge, etc.) as easily as visiting the Internet","archived":false,"fork":false,"pushed_at":"2025-05-07T11:44:23.000Z","size":6245,"stargazers_count":1362,"open_issues_count":60,"forks_count":199,"subscribers_count":32,"default_branch":"main","last_synced_at":"2025-05-07T12:40:01.552Z","etag":null,"topics":["cloud-native","cluster-management","distributed-cloud","edge-cloud","hybrid-cloud","kubernetes","multi-cluster-management","multicloud","orchestration","out-of-the-box","public-cloud"],"latest_commit_sha":null,"homepage":"https://clusternet.io","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/clusternet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-06-07T08:17:15.000Z","updated_at":"2025-05-07T11:44:26.000Z","dependencies_parsed_at":"2023-12-29T04:37:07.619Z","dependency_job_id":"ccc94c6f-49c4-4872-aba6-b491bd19430d","html_url":"https://github.com/clusternet/clusternet","commit_stats":{"total_commits":763,"total_committers":47,"mean_commits":16.23404255319149,"dds":0.3499344692005243,"last_synced_commit":"0e6cf270834305e24c34f4836b60a039f1e2228f"},"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clusternet%2Fclusternet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clusternet%2Fclusternet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clusternet%2Fclusternet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clusternet%2Fclusternet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clusternet","download_url":"https://codeload.github.com/clusternet/clusternet/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254076850,"owners_count":22010611,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloud-native","cluster-management","distributed-cloud","edge-cloud","hybrid-cloud","kubernetes","multi-cluster-management","multicloud","orchestration","out-of-the-box","public-cloud"],"created_at":"2024-07-31T11:00:36.023Z","updated_at":"2025-05-14T05:10:49.682Z","avatar_url":"https://github.com/clusternet.png","language":"Go","funding_links":[],"categories":["Go","Cluster Provisioning \u0026 Lifecycle","kubernetes"],"sub_categories":[],"readme":"\u003cdiv\u003e\u003cimg src=\"https://clusternet.io/images/clusternet-horizontal-color.png\" style=\"width:300px;\" /\u003e\u003c/div\u003e\n\n[![GoPkg Widget](https://pkg.go.dev/badge/github.com/clusternet/clusternet.svg)](https://pkg.go.dev/github.com/clusternet/clusternet)\n[![License](https://img.shields.io/github/license/clusternet/clusternet)](https://www.apache.org/licenses/LICENSE-2.0.html)\n![GoVersion](https://img.shields.io/github/go-mod/go-version/clusternet/clusternet)\n[![OpenSSF Best Practices](https://bestpractices.coreinfrastructure.org/projects/7185/badge)](https://bestpractices.coreinfrastructure.org/projects/7185)\n[![Go Report Card](https://goreportcard.com/badge/github.com/clusternet/clusternet)](https://goreportcard.com/report/github.com/clusternet/clusternet)\n![build](https://github.com/clusternet/clusternet/actions/workflows/ci.yml/badge.svg)\n[![Version](https://img.shields.io/github/v/release/clusternet/clusternet)](https://github.com/clusternet/clusternet/releases)\n[![codecov](https://codecov.io/gh/clusternet/clusternet/branch/main/graph/badge.svg)](https://codecov.io/gh/clusternet/clusternet)\n[![FOSSA Status](https://app.fossa.com/api/projects/custom%2B162%2Fgithub.com%2Fclusternet%2Fclusternet.svg?type=shield\u0026issueType=license)](https://app.fossa.com/projects/custom%2B162%2Fgithub.com%2Fclusternet%2Fclusternet?ref=badge_shield)\n\n----\n\nManaging Your Clusters (including public, private, hybrid, edge, etc.) as easily as Visiting the Internet.\n\nOut of the Box.\n\nA CNCF([Cloud Native Computing Foundation](https://cncf.io/)) Sandbox Project.\n\n----\n\n\u003cdiv align=\"center\"\u003e\u003cimg src=\"https://clusternet.io/images/clusternet-in-a-nutshell.png\" style=\"width:900px;\" /\u003e\u003c/div\u003e\n\nClusternet (**Cluster** Inter**net**) is an open source ***add-on*** that helps you manage thousands of millions of\nKubernetes clusters as easily as visiting the Internet. No matter the clusters are running on public cloud, private\ncloud, hybrid cloud, or at the edge, Clusternet helps setup network tunnels in a configurable way and lets you\nmanage/visit them all as if they were running locally. This also help eliminate the need to juggle different management\ntools for each cluster.\n\n**Clusternet can also help deploy and coordinate applications to multiple clusters from a single set of APIs in a\nhosting cluster.**\n\nClusternet also provides a Kubernetes-styled API, where you can continue using the Kubernetes way, such as KubeConfig,\nto visit a certain Managed Kubernetes cluster, or a Kubernetes service.\n\nClusternet is multiple platforms supported now, including `linux/amd64`, `linux/arm64`, `linux/ppc64le`, `linux/s390x`\n, `linux/386` and `linux/arm`;\n\n----\n\n## Core Features\n\n- Kubernetes Multi-Cluster Management and Governance\n    - managing Kubernetes clusters running in cloud providers, such as AWS, Google Cloud, Tencent Cloud, Alibaba Cloud,\n      etc.\n    - managing on-premise Kubernetes clusters\n    - managing any [Certified Kubernetes Distributions](https://www.cncf.io/certification/software-conformance/), such\n      as [k3s](https://github.com/k3s-io/k3s)\n    - managing Kubernetes clusters running at the edge\n    - automatically discovering and registering clusters created by [cluster-api](https://github.com/kubernetes-sigs/cluster-api)\n    - parent cluster can also register itself as a child cluster to run workloads\n    - managing Kubernetes upper than v1.17.x (Learn more\n      about [Kubernetes Version Skew](https://clusternet.io/docs/introduction/#kubernetes-version-skew))\n    - visiting any managed clusters with dynamic RBAC rules (Learn more\n      from [this tuorial](https://clusternet.io/docs/tutorials/cluster-management/visiting-child-clusters-with-rbac/))\n    - cluster auto-labelling based on [Node Feature Discovery](https://github.com/kubernetes-sigs/node-feature-discovery)\n- Application Coordinations\n    - Scheduling **Framework** (`in-tree` plugins, `out-of-tree` plugins)\n    - Cross-Cluster Scheduling\n        - replication scheduling\n        - static dividing scheduling by weight\n        - dynamic dividing scheduling by capacity\n          - cluster resource predictor **framework** for `in-tree` and `out-of-tree` implementations\n          - various deployment topologies for cluster resource predictors\n        - subgroup cluster scheduling\n    - Various Resource Types\n        - Kubernetes native objects, such as `Deployment`, `StatefulSet`, etc.\n        - CRDs\n        - helm charts, including [OCI-based Helm charts](https://helm.sh/docs/topics/registries/)\n    - Resource interpretations with `in-tree` or `out-of-tree` controllers\n    - [Setting Overrides](https://clusternet.io/docs/tutorials/multi-cluster-apps/setting-overrides/)\n        - two-stage priority based override strategies\n        - easy to rollback overrides\n        - cross-cluster canary rollout\n    - Multi-Cluster Services\n        - multi-cluster services discovery with [mcs-api](https://github.com/kubernetes-sigs/mcs-api)\n- CLI\n    - providing a kubectl plugin, which can be installed with `kubectl krew install clusternet`\n    - consistent user experience with `kubectl`\n    - create/update/watch/delete multi-cluster resources\n    - interacting with any child clusters the same as local cluster\n- Client-go\n    - easy to integrate via\n      a [client-go wrapper](https://github.com/clusternet/clusternet/blob/main/examples/clientgo/READEME.md)\n\n## Architecture\n\n![](https://clusternet.io/images/clusternet-arch.png)\n\nClusternet is a lightweight addon that consists of four components, `clusternet-agent`, `clusternet-scheduler`,\n`clusternet-controller-manager` and `clusternet-hub`.\n\nExplore the architecture of Clusternet on [clusternet.io](https://clusternet.io/docs/introduction/#architecture).\n\n## To start using Clusternet\n\n|                    | Kubernetes \u003e=v1.30 | \u003e=v1.28,\u003cv1.30 | \u003cv1.28 |\n| ------------------ | ------------------ | -------------- | ------ |\n| Clusternet v0.18.x | ✅                 | ❌             | ❌     |\n| v0.17.x            | ✅                 | ✅             | ❌     |\n| v0.16.x            | ✅                 | ✅             | ✅     |\n\nSee our documentation on [clusternet.io](https://clusternet.io/docs/).\n\nThe [quick start tutorial](https://clusternet.io/docs/quick-start/) will walk you through setting up Clusternet locally\nwith [kind](https://kind.sigs.k8s.io/) and deploying applications to multiple clusters.\n\nTry our [interactive tutorials](https://clusternet.io/docs/tutorials/) that help you understand Clusternet and learn\nsome basic Clusternet features.\n\nIf you want to use [client-go](https://github.com/kubernetes/client-go) to interact with Clusternet, we provide a\nwrapper for easy integration. You can\nfollow [demo.go](https://github.com/clusternet/clusternet/blob/main/examples/clientgo/demo.go) for a quick start.\n\nTo use Clusternet APIs and CRDs as a module, please add [github.com/clusternet/apis](https://github.com/clusternet/apis)\nto your `go.mod`.\n\n## Contributors\n\n\u003ca href=\"https://github.com/clusternet/clusternet/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=clusternet/clusternet\" /\u003e\n\u003c/a\u003e\n\n## Contact\n\nIf you've got any questions, please feel free to contact us with following ways:\n\n- [open a github issue](https://github.com/clusternet/clusternet/issues/new/choose)\n- [mailing list](mailto:clusternet@googlegroups.com)\n- [join discussion group](https://groups.google.com/g/clusternet)\n\n## Contributing \u0026 Developing\n\nIf you want to get participated and become a contributor to Clusternet, please don't hesitate to refer to our\n[CONTRIBUTING](CONTRIBUTING.md) document for details.\n\nA [developer guide](https://clusternet.io/docs/developer-guide/) is ready to help you\n\n- build binaries for all platforms, such as `darwin/amd64`, `linux/amd64`, `linux/arm64`, etc.;\n- build docker images for multiple platforms, such as `linux/amd64`, `linux/arm64`, etc.;\n\n---\n\n\u003cdiv align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/cncf/artwork/master/other/cncf/horizontal/color/cncf-color.svg\" style=\"width:600px;\" /\u003e\u003c/div\u003e\n\n\n## License\n[![FOSSA Status](https://app.fossa.com/api/projects/custom%2B162%2Fgithub.com%2Fclusternet%2Fclusternet.svg?type=large)](https://app.fossa.com/projects/custom%2B162%2Fgithub.com%2Fclusternet%2Fclusternet?ref=badge_large)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclusternet%2Fclusternet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclusternet%2Fclusternet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclusternet%2Fclusternet/lists"}