{"id":13489996,"url":"https://github.com/kubeclipper/kubeclipper","last_synced_at":"2026-01-17T09:18:58.916Z","repository":{"id":41461012,"uuid":"504365279","full_name":"kubeclipper/kubeclipper","owner":"kubeclipper","description":"Manage kubernetes in the most light and convenient way ☸️","archived":false,"fork":false,"pushed_at":"2025-12-29T08:48:25.000Z","size":5155,"stargazers_count":408,"open_issues_count":13,"forks_count":59,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-01-16T13:30:47.951Z","etag":null,"topics":["eks","golang","k8s","kubeadm","kubeclipper","kubernetes"],"latest_commit_sha":null,"homepage":"https://kubeclipper.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/kubeclipper.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":null,"security":null,"support":null,"governance":"GOVERNANCE.md","roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-06-17T02:12:34.000Z","updated_at":"2026-01-14T23:27:02.000Z","dependencies_parsed_at":"2023-10-11T04:55:01.573Z","dependency_job_id":"b5cf7936-8b28-4875-be54-fd882da30262","html_url":"https://github.com/kubeclipper/kubeclipper","commit_stats":{"total_commits":336,"total_committers":16,"mean_commits":21.0,"dds":0.7976190476190477,"last_synced_commit":"b64aaa760888e4b6fbd9fab235904a9c2a48ef7b"},"previous_names":["kubeclipper-labs/kubeclipper"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/kubeclipper/kubeclipper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubeclipper%2Fkubeclipper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubeclipper%2Fkubeclipper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubeclipper%2Fkubeclipper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubeclipper%2Fkubeclipper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kubeclipper","download_url":"https://codeload.github.com/kubeclipper/kubeclipper/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubeclipper%2Fkubeclipper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28505181,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T06:57:29.758Z","status":"ssl_error","status_checked_at":"2026-01-17T06:56:03.931Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["eks","golang","k8s","kubeadm","kubeclipper","kubernetes"],"created_at":"2024-07-31T19:00:39.114Z","updated_at":"2026-01-17T09:18:58.896Z","avatar_url":"https://github.com/kubeclipper.png","language":"Go","funding_links":[],"categories":["Go","K8S-Cluster-Manage"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003ca href=\"https://kubeclipper.io/\"\u003e\u003cimg src=\"docs/img/kubeclipper.gif\" alt=\"banner\" width=\"200px\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cb\u003eManage kubernetes in the most light and convenient way\u003c/b\u003e\n\u003c/p\u003e\n\n\u003c!-- TODO: 添加 cicd 执行情况，代码质量等标签 --\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"repo status\" src=\"https://img.shields.io/badge/-Repo_Status_\u003e-000000?style=flat-square\u0026logo=github\u0026logoColor=white\" /\u003e\n  \u003ca href=\"https://codecov.io/gh/kubeclipper/kubeclipper\" target=\"_blank\"\u003e\u003cimg alt=\"coverage\" src=\"https://codecov.io/gh/kubeclipper/kubeclipper/branch/master/graph/badge.svg\"/\u003e\u003c/a\u003e\n  \u003cimg alt=\"Go Report Card\" src=\"https://goreportcard.com/badge/github.com/kubeclipper/kubeclipper\"/\u003e\n  \u003ca href=\"https://www.codacy.com/gh/kubeclipper/kubeclipper/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=kubeclipper/kubeclipper\u0026amp;utm_campaign=Badge_Grade\"\u003e\u003cimg src=\"https://app.codacy.com/project/badge/Grade/6d077c30cb3e4e269b891380c22d5fc0\"/\u003e\u003c/a\u003e\n  \u003cimg alt=\"last commit\" src=\"https://img.shields.io/github/last-commit/kubeclipper/kubeclipper?style=flat-square\"\u003e\n  \u003cimg alt=\"Issues\" src=\"https://img.shields.io/github/issues/kubeclipper/kubeclipper?style=flat-square\u0026labelColor=343b41\"/\u003e\n  \u003cimg alt=\"Pull Requests\" src=\"https://img.shields.io/github/issues-pr/kubeclipper/kubeclipper?style=flat-square\u0026labelColor=343b41\"/\u003e\n  \u003cimg alt=\"contributors\" src=\"https://img.shields.io/github/contributors/kubeclipper/kubeclipper?style=flat-square\"/\u003e\n  \u003cimg alt=\"apache2.0\" src=\"https://img.shields.io/badge/License-Apache_2.0-blue?style=flat-square\" /\u003e\n  \u003cimg alt=\"OpenSSF Best Practices\" src=\"https://www.bestpractices.dev/badge_static/81\" /\u003e\n  \u003cimg alt=\"Stars\" src=\"https://img.shields.io/github/stars/kubeclipper/kubeclipper?style=flat-square\u0026labelColor=343b41\"/\u003e\n  \u003cimg alt=\"Forks\" src=\"https://img.shields.io/github/forks/kubeclipper/kubeclipper?style=flat-square\u0026labelColor=343b41\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"github actions\" src=\"https://img.shields.io/badge/-Github_Actions_\u003e-000000?style=flat-square\u0026logo=github-actions\u0026logoColor=white\" /\u003e\n  \u003cimg alt=\"go-test-coverage\" src=\"https://github.com/kubeclipper/kubeclipper/actions/workflows/go-test-coverage.yml/badge.svg\" /\u003e\n  \u003cimg alt=\"build-kc\" src=\"https://github.com/kubeclipper/kubeclipper/actions/workflows/build-kc.yml/badge.svg\" /\u003e\n  \u003cimg alt=\"generate-kcctl-docs\" src=\"https://github.com/kubeclipper/kubeclipper/actions/workflows/generate-kcctl-docs.yml/badge.svg\" /\u003e\n\u003c/p\u003e\n\n---\n\n## What is KubeClipper\n\n\u003e English | [中文](README_zh.md)\n\n[KubeClipper](https://kubeclipper.io/) is a lightweight web service that provides a friendly web console GUI, APIs, and a CLI tool for **Kubernetes cluster lifecycle management**.\nKubeClipper provides flexible Kubernetes as a Service (KaaS), which allows users to rapidly deploy K8S clusters\nanywhere(cloud, hypervisor, bare metal) and provides continuous lifecycle management capabilities\n(installation, deleting, upgrading, backup and restoration, cluster scaling, remote access, plug-in management,\napplication store).see [Feature List](https://github.com/kubeclipper/kubeclipper#features) for details.\n\n**🎯 Project Goal**：Manage Kubernetes in the most light and convenient way.\n\n## Features\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003e☸️ Cluster Lifecycle Management\u003c/b\u003e\u003c/summary\u003e\n  Supports deployment of Kubernetes on any infrastructure and provides comprehensive cluster lifecycle management.\n\n  \u003cul\u003e\n  \u003cli\u003eLifecycle Management: cluster creation, deletion, backup, restoration, upgrade, and node manipulation\u003c/li\u003e\n  \u003cli\u003eMultiple Deployment Modes: online/offline deployment support\u003c/li\u003e\n  \u003cli\u003eMulti-Architecture: x86/64 \u0026amp; arm64 support\u003c/li\u003e\n  \u003cli\u003eCluster Import: registration and management of external clusters (non-Kubeclipper created)\u003c/li\u003e\n  \u003cli\u003e...\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003e🌐 Node Management\u003c/b\u003e\u003c/summary\u003e\n  \u003cul\u003e\n  \u003cli\u003eAutomatic node registration\u003c/li\u003e\n  \u003cli\u003eNode information collection\u003c/li\u003e\n  \u003cli\u003eNode terminal\u003c/li\u003e\n  \u003cli\u003e...\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003e🚪 Identity and Access Management (IAM)\u003c/b\u003e\u003c/summary\u003e\n  Provides a unified authentication and authorization system with fine-grained role-based access control.\n\n  \u003cul\u003e\n  \u003cli\u003eRBAC-based user permission system\u003c/li\u003e\n  \u003cli\u003eOIDC integration\u003c/li\u003e\n  \u003cli\u003e...\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/details\u003e\n\n## Roadmap \u0026 Todo list\n\n* 🚀 Cluster Installation Optimization\n    * Use images to encapsulate installation package resources to reduce complexity. Reuse mature image technology\n* 💻 Kubernetes Web Console\n    * Workload resources \u0026 monitoring presentation\n    * Tenant based cluster access control\n* 📦 Application Store\n    * Application lifecycle management\n    * Support web UI \u0026 CLI interface\n* 🧩 Common Application and Plugin Integrations\n    * LB \u0026 Ingress\n    * Monitoring\n    * Kubernetes Dashboard\n    * KubeEdge\n* 🕸 Managed Clusters\n    * Support KoK clusters.\n\n## Architecture\n\n### Core\n\n![kc-arch1](docs/img/kc-arch.png)\n\n### Node\n\n![kc-arch2](docs/img/kc-arch2.png)\n\n### Network\n\n![kc-network](docs/img/kc-network.png)\n\nExplore the architecture of Kubeclipper on [kubeclipper.io](https://kubeclipper.io/docs/overview/).\n\n## Quick Start\n\nFor users who are new to KubeClipper and want to get started quickly, it is recommended to use the All-in-One installation mode, which can help you quickly deploy KubeClipper with zero configuration.\n\n### Preparations\n\nKubeClipper itself does not take up too many resources, but in order to run Kubernetes better in the future,  it is recommended that the hardware configuration should not be lower than the minimum requirements.\n\nYou only need to prepare a host with reference to the following requirements for machine hardware and operating system.\n\n#### Hardware recommended configuration\n\n* Make sure your machine meets the minimum hardware requirements: CPU \u003e= 2 cores, RAM \u003e= 2GB.\n* Operating System: CentOS 7.x / Ubuntu 18.04 / Ubuntu 20.04.\n\n#### Node requirements\n\n* Nodes must be able to connect via `SSH`.\n\n* You can use the `sudo` / `curl` / `wget` / `tar` command on this node.\n\n\u003e It is recommended that your operating system is in a clean state (no additional software is installed), otherwise, conflicts may occur.\n\n### Deploy KubeClipper\n\n#### Download kcctl\n\nKubeClipper provides command line tools 🔧 kcctl to simplify operations.\n\nYou can download the latest version of kcctl directly with the following command:\n\n```bash\n# Install latest release\ncurl -sfL https://oss.kubeclipper.io/get-kubeclipper.sh | bash -\n# In China, you can add env \"KC_REGION=cn\", we use registry.aliyuncs.com/google_containers instead of k8s.gcr.io\ncurl -sfL https://oss.kubeclipper.io/get-kubeclipper.sh | KC_REGION=cn bash -\n# The latest release version is downloaded by default. You can download the specified version. For example, specify the master development version to be installed\ncurl -sfL https://oss.kubeclipper.io/get-kubeclipper.sh | KC_REGION=cn KC_VERSION=master bash -\n```\n\n\u003e It is highly recommended that you install the latest release to experience more features.\n\u003e You can also download the specified version on the **[GitHub Release Page](https://github.com/kubeclipper/kubeclipper/releases)**.\n\nCheck if the installation is successful with the following command:\n\n```bash\nkcctl version\n```\n\n#### Get Started with Installation\n\nIn this quick start tutorial, you only need to run  just one command for installation:\n\nIf you want to install AIO mode\n\n```bash\n# install default release\nkcctl deploy\n# you can use KC_VERSION to install the specified version, default is latest release\nKC_VERSION=master kcctl deploy\n```\n\nIf you want to install multi node, Use `kcctl deploy -h` for more information about a command\n\nAfter you runn this command, kcctl will check your installation environment and enter the installation process, if the conditions are met.\n\nAfter printing the KubeClipper banner, the installation is complete.\n\n```bash\n _   __      _          _____ _ _\n| | / /     | |        /  __ \\ (_)\n| |/ / _   _| |__   ___| /  \\/ |_ _ __  _ __   ___ _ __\n|    \\| | | | '_ \\ / _ \\ |   | | | '_ \\| '_ \\ / _ \\ '__|\n| |\\  \\ |_| | |_) |  __/ \\__/\\ | | |_) | |_) |  __/ |\n\\_| \\_/\\__,_|_.__/ \\___|\\____/_|_| .__/| .__/ \\___|_|\n                                 | |   | |\n                                 |_|   |_|\n```\n\n### Login Console\n\nWhen deployed successfully, you can open a browser and visit `http://$IP` to enter the KubeClipper console.\n\n![](docs/img/console-login.png)\n\n You can log in with the default account and password `admin / Thinkbig1`.\n\n\u003e You may need to configure port forwarding rules and open ports in security groups for external users to access the console.\n\n### Create a k8s cluster\n\nWhen `kubeclipper` is deployed successfully, you can use the **kcctl** **tool** or **console** to create a  k8s cluster. In the quick start tutorial, we use the kcctl tool to create.\n\nThen create a k8s cluster with the following command:\n\n```bash\nNODE=$(kcctl get node -o yaml|grep ipv4DefaultIP:|sed 's/ipv4DefaultIP: //')\n\nkcctl create cluster --master $NODE --name demo --untaint-master\n```\n\nThe cluster creation will be completed in about 3 minutes, or you can use the following command to view the cluster status:\n\n```bash\nkcctl get cluster -o yaml|grep status -A5\n```\n\n\u003e You can also enter the console to view real-time logs.\n\nOnce the cluster enter  the `Running` state , it means that the creation is complete. You can use `kubectl get cs` command to view the cluster status.\n\n## Development and Debugging\n\nReference：[development-guide](docs/dev-guide.md)\n\n1. fork repo and clone\n2. run etcd locally, usually use docker / podman to run etcd container\n\n   ```bash\n   export HostIP=\"Your-IP\"\n   docker run -d \\\n   --net host \\\n   k8s.gcr.io/etcd:3.5.0-0 etcd \\\n   --advertise-client-urls http://${HostIP}:2379 \\\n   --initial-advertise-peer-urls http://${HostIP}:2380 \\\n   --initial-cluster=infra0=http://${HostIP}:2380 \\\n   --listen-client-urls http://${HostIP}:2379,http://127.0.0.1:2379 \\\n   --listen-metrics-urls http://127.0.0.1:2381 \\\n   --listen-peer-urls http://${HostIP}:2380 \\\n   --name infra0 \\\n   --snapshot-count=10000 \\\n   --data-dir=/var/lib/etcd\n   ```\n\n3. change `kubeclipper-server.yaml` etcd.serverList to your locally etcd cluster\n4. `make build`\n5. `./dist/kubeclipper-server serve`\n\n## Contributing\n\nPlease follow [Community](https://github.com/kubeclipper/community) to join us.\n\nSee [GOVERNANCE.md](./GOVERNANCE.md) for project governance and decision-making process.\n\n## Code of Conduct\n\nThis project follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md).\nPlease read our [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md) for details.\n\n## Star History\n\n![Star History Chart](https://api.star-history.com/svg?repos=kubeclipper/kubeclipper\u0026type=Date)\n\n## Landscapes\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://landscape.cncf.io/images/cncf-landscape-horizontal-color.svg\" width=\"300\"/\u003e\n\u003cbr/\u003e\u003cbr/\u003e\nKubeClipper is a \u003ca href=\"https://landscape.cncf.io/?group=certified-partners-and-providers\u0026item=platform--certified-kubernetes-installer--kubeclipper\"\u003eCNCF sandbox project.\u003c/a\u003e\n\u003c/p\u003e\n\n---\nCopyright © contributors to KubeClipper, established as KubeClipper a Series of LF Projects, LLC.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubeclipper%2Fkubeclipper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkubeclipper%2Fkubeclipper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubeclipper%2Fkubeclipper/lists"}