{"id":13562634,"url":"https://github.com/kubesphere/ks-installer","last_synced_at":"2025-05-15T20:07:05.941Z","repository":{"id":37674516,"uuid":"196956614","full_name":"kubesphere/ks-installer","owner":"kubesphere","description":"Install KubeSphere on existing Kubernetes cluster","archived":false,"fork":false,"pushed_at":"2025-04-21T08:47:12.000Z","size":142430,"stargazers_count":544,"open_issues_count":282,"forks_count":751,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-05-08T01:34:08.312Z","etag":null,"topics":["dashboard","existing-kubernetes-cluster","hacktoberfest","installer","k8s","kubernetes","kubernetes-dashboard"],"latest_commit_sha":null,"homepage":"https://kubesphere.io","language":"Jinja","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/kubesphere.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"docs/roadmap.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-07-15T08:24:39.000Z","updated_at":"2025-04-25T08:16:48.000Z","dependencies_parsed_at":"2024-03-25T18:24:45.577Z","dependency_job_id":"135201d1-25c2-4b8e-862c-bdc81f7de1be","html_url":"https://github.com/kubesphere/ks-installer","commit_stats":{"total_commits":1954,"total_committers":120,"mean_commits":"16.283333333333335","dds":0.7349027635619243,"last_synced_commit":"38055b318b8f805af65aedfa5ad4508128b5eb2c"},"previous_names":[],"tags_count":51,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubesphere%2Fks-installer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubesphere%2Fks-installer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubesphere%2Fks-installer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubesphere%2Fks-installer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kubesphere","download_url":"https://codeload.github.com/kubesphere/ks-installer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254414499,"owners_count":22067272,"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":["dashboard","existing-kubernetes-cluster","hacktoberfest","installer","k8s","kubernetes","kubernetes-dashboard"],"created_at":"2024-08-01T13:01:10.575Z","updated_at":"2025-05-15T20:07:00.893Z","avatar_url":"https://github.com/kubesphere.png","language":"Jinja","funding_links":[],"categories":["Jinja"],"sub_categories":[],"readme":"# Install KubeSphere on Existing Kubernetes Cluster\n\n\u003e English | [中文](README_zh.md)\n\nIn addition to supporting deploying on VM and BM, KubeSphere also supports installing on cloud-hosted and on-premises existing Kubernetes clusters.\n\n## Prerequisites\n\n\u003e - Kubernetes Version: 1.20.x, 1.21.x, 1.22.x, 1.23.x (experimental);\n\u003e - CPU \u003e 1 Core, Memory \u003e 2 G;\n\u003e - An existing default Storage Class in your Kubernetes clusters.\n\u003e - The CSR signing feature is activated in kube-apiserver when it is started with the `--cluster-signing-cert-file` and `--cluster-signing-key-file` parameters, see [RKE installation issue](https://github.com/kubesphere/kubesphere/issues/1925#issuecomment-591698309).\n\n1. Make sure your Kubernetes version is compatible by running `kubectl version` in your cluster node. The output looks as the following:\n\n```bash\n$ kubectl version\nClient Version: version.Info{Major:\"1\", Minor:\"19\", GitVersion:\"v1.19.8\", GitCommit:\"fd5d41537aee486160ad9b5356a9d82363273721\", GitTreeState:\"clean\", BuildDate:\"2021-02-17T12:41:51Z\", GoVersion:\"go1.15.8\", Compiler:\"gc\", Platform:\"linux/amd64\"}\nServer Version: version.Info{Major:\"1\", Minor:\"19\", GitVersion:\"v1.19.8\", GitCommit:\"fd5d41537aee486160ad9b5356a9d82363273721\", GitTreeState:\"clean\", BuildDate:\"2021-02-17T12:33:08Z\", GoVersion:\"go1.15.8\", Compiler:\"gc\", Platform:\"linux/amd64\"}\n```\n\n\u003e Note: Pay attention to `Server Version` line, if `GitVersion` is greater than `v1.19.0`, it's good to go. Otherwise you need to upgrade your Kubernetes first.\n\n2. Check if the available resources meet the minimal prerequisite in your cluster.\n\n```bash\n$ free -g\n              total        used        free      shared  buff/cache   available\nMem:              16          4          10           0           3           2\nSwap:             0           0           0\n```\n\n3. Check if there is a default Storage Class in your cluster. An existing Storage Class is the prerequisite for KubeSphere installation.\n\n```bash\n$ kubectl get sc\nNAME                      PROVISIONER               AGE\nglusterfs (default)               kubernetes.io/glusterfs   3d4h\n```\n\nIf your Kubernetes cluster environment meets all requirements mentioned above, then you can start to install KubeSphere.\n\n## To Start Deploying KubeSphere\n\n### Minimal Installation\n\n```bash\nkubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.3.0/kubesphere-installer.yaml\nkubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.3.0/cluster-configuration.yaml\n```\n\nThen inspect the logs of installation.\n\n```bash\nkubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-installer -o jsonpath='{.items[0].metadata.name}') -f\n```\n\nWhen all Pods of KubeSphere are running, it means the installation is successful. Check the port (30880 by default) of the console service by the following command. Then you can use `http://IP:30880` to access the console with the default account `admin/P@88w0rd`.\n\n```bash\nkubectl get svc/ks-console -n kubesphere-system\n```\n### Enable Pluggable Components\n\n\u003e Attention:\n\u003e - KubeSphere supports enable the pluggable components before or after the installation, you can refer to the [cluster-configuration.yaml](deploy/cluster-configuration.yaml) for more details.\n\u003e - Make sure there is enough CPU and memory available in your cluster.\n\n1. [Optional] Create the secret of certificate for Etcd in your Kubernetes cluster. This step is only needed when you want to enable Etcd monitoring.\n\n\u003e Note: Create the secret according to the actual Etcd certificate path of your cluster; If the Etcd has not been configured certificate, an empty secret needs to be created.\n\n- If the Etcd has been configured with certificates, refer to the following step (The following command is an example that is only used for the cluster created by `kubeadm`):\n\n```bash\n$ kubectl -n kubesphere-monitoring-system create secret generic kube-etcd-client-certs  \\\n--from-file=etcd-client-ca.crt=/etc/kubernetes/pki/etcd/ca.crt  \\\n--from-file=etcd-client.crt=/etc/kubernetes/pki/etcd/healthcheck-client.crt  \\\n--from-file=etcd-client.key=/etc/kubernetes/pki/etcd/healthcheck-client.key\n```\n\n- If the Etcd has not been configured with certificates.\n\n```bash\nkubectl -n kubesphere-monitoring-system create secret generic kube-etcd-client-certs\n```\n\n2. If you already have a minimal KubeSphere setup, you still can enable the pluggable components by editing the ClusterConfiguration of ks-installer using the following command.\n\n\u003e Note: Please make sure there is enough CPU and memory available in your cluster.\n\n```bash\nkubectl edit cc ks-installer -n kubesphere-system\n```\n\u003e Note: When you're enabling KubeEdge, please set advertiseAddress as below and expose corresponding ports correctly before you run or restart ks-installer. Please refer to [KubeEdge Guide](https://kubesphere.io/docs/pluggable-components/kubeedge/) for more details.\n```yaml\nkubeedge:\n    cloudCore:\n      cloudHub:\n        advertiseAddress:\n        - xxxx.xxxx.xxxx.xxxx\n```\n\n3. Inspect the logs of installation.\n\n```bash\nkubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-installer -o jsonpath='{.items[0].metadata.name}') -f\n```\n\n## Upgrade\n\nDeploy the new version of ks-installer:\n```bash\n# Notice: ks-installer will automatically migrate the configuration. Do not modify the cluster configuration by yourself.\n\nkubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.3.0/kubesphere-installer.yaml --force\n```\n\n\u003e Note: If your KubeSphere version is v3.1.0 or eariler, please upgrade to v3.2.x first.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubesphere%2Fks-installer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkubesphere%2Fks-installer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubesphere%2Fks-installer/lists"}