GithubHelp home page GithubHelp logo

mir355 / ks-installer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kubesphere/ks-installer

0.0 0.0 0.0 751 KB

Install KubeSphere on existing kubernetes cluster

License: Apache License 2.0

Dockerfile 1.32% Shell 58.68% Smarty 30.28% Python 3.32% Go 2.03% Makefile 4.36%

ks-installer's Introduction

Install KubeSphere on Existing Kubernetes Cluster

English | 中文

In addition to supporting deploy on VM and BM, KubeSphere also supports installing on cloud-hosted and on-premises Kubernetes clusters,

Requirements

  • Kubernetes Version: 1.13.0+
  • Helm Version: 2.10.0+

Note:

  • Make sure the remaining available memory in the cluster is 10G at least.
  • It's recommended that the K8s cluster use persistent storage and has created default storage class.

To Start Deploying KubeSphere

  1. First, you need to create 2 namespaces in Kubernetes cluster, named kubesphere-system and kubesphere-monitoring-system.
$ cat <<EOF | kubectl create -f -
---
apiVersion: v1
kind: Namespace
metadata:
    name: kubesphere-system
---
apiVersion: v1
kind: Namespace
metadata:
    name: kubesphere-monitoring-system
EOF
  1. Create the Secret of CA certificate of your current Kubernetes cluster.

Note: Follow the certificate paths of ca.crt and ca.key of your current cluster to create this secret.

kubectl -n kubesphere-system create secret generic kubesphere-ca  \
--from-file=ca.crt=/etc/kubernetes/pki/ca.crt  \
--from-file=ca.key=/etc/kubernetes/pki/ca.key 
  1. Create the Secret of certificate for ETCD in your Kubernetes cluster.

Note: Create with the actual ETCD certificate location of the cluster; If the ETCD does not have a configured certificate, an empty secret is created(The following command applies to the cluster created by Kubeadm)

Note: Create the secret according to the your actual path of ETCD for the k8s cluster;

  • If the ETCD has been configured with certificates, refer to the following step:
$ kubectl -n kubesphere-system create secret generic kubesphere-ca  \
--from-file=ca.crt=/etc/kubernetes/pki/ca.crt  \
--from-file=ca.key=/etc/kubernetes/pki/ca.key 
  • If the ETCD has been not configured with certificates.
$ kubectl -n kubesphere-monitoring-system create secret generic kube-etcd-client-certs
  1. Then we can start to install KubeSphere.
$ cd deploy

$ vim kubesphere.yaml   
# According to the parameter table at the bottom, replace the value of "kubesphere-config" in "kubesphere.yaml" file with your current Kubernetes cluster parameters (If the ETCD has no certificate, set etcd_tls_enable: False).

$ kubectl apply -f kubesphere.yaml
  1. Inspect the logs of installation.
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l job-name=kubesphere-installer -o jsonpath='{.items[0].metadata.name}') -f
  1. Finally, you can access the Web UI via IP:NodePort, the default account is admin/P@88w0rd.
$ kubectl get svc -n kubesphere-system    
# Inspect the NodePort of ks-console, it's 30880 by default.

Configuration Table

Parameter Description Default
kube_apiserver_host The address of kube-apiserver of your current Kubernetes cluster(i.e. IP:NodePort)
etcd_tls_enable Whether to enable etcd TLS certificate authentication(True / False) True
etcd_endpoint_ips Etcd addresses, such as ETCD clusters, you need to separate IPs by commas(e.g.192.168.0.7,192.168.0.8,192.168.0.9)
etcd_port ETCD Port (2379 by default, you can configure this parameter if you are using another port) 2379
disableMultiLogin  Whether to turn off multipoint login for accounts   (True / False) True
elk_prefix Logging index  logstash 
keep_log_days Log retention time (days) 7
metrics_server_enable whether to install metrics_server    (True / False) True
istio_enable whether to install Istio           (True / False) True
persistence enable Whether the persistent storage server is enabled   (True / False)(It is recommended tp enable persistent storage in a formal environment)
storageClass Enabling persistent storage requires that the storageClass has been created already in the cluster (The default value is empty, which means it'll use default StorageClass) “”
containersLogMountedPath(Optional) Mount path of container logs "/var/lib/docker/containers"
external_es_url(Optional) External Elasticsearch address, it supports integrate your external ES or install internal ES directly. If you have ES, you can directly integrate it into KubeSphere
external_es_port(Optional) External ES port, supports integrate external ES
local_registry (Offline installation only) Integrate with the local repository when deploy on offline environment(To use this parameter, import the installation image into the local repository using "scripts/downloader-docker-images.sh")

Quick Start Guide

10 Quick Start guides of KubeSphere

Support, Discussion, and Community

If you need any help with KubeSphere, please join us at Slack Channel.

Installer RoadMap

  • Support multiple public cloud and private cloud, network plug-ins and storage plug-ins.
  • All components are designed to be loosely-coupled, and all features are pluggable. Installation will become very light and fast.

ks-installer's People

Contributors

pixiake avatar forest-l avatar hlwanghl avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.