该项目支持在已有kubernetes集群之上部署KubeSphere。
- kubernetes version: 1.13.0+
- helm version: 2.10.0+
注:
- 请确保集群中剩余可用内存 >10G
- 建议使用持久化存储
-
集群中创建名为kubesphere-system和kubesphere-monitoring-system的namespace
cat <<EOF | kubectl create -f - --- apiVersion: v1 kind: Namespace metadata: name: kubesphere-system --- apiVersion: v1 kind: Namespace metadata: name: kubesphere-monitoring-system EOF
-
创建集群ca证书secret
注:按照当前集群ca.crt和ca.key证书路径创建(kubeadm创建集群的证书路径一般为/etc/kubernetes/pki)
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
-
创建etcd证书secret
注:以集群实际etcd证书位置创建;若etcd没有配置证书,则创建空secret(以下命令适用于 kubeadm 创建的集群环境)
kubectl -n kubesphere-monitoring-system create secret generic kube-etcd-client-certs \ --from-file=etcd-client-ca.crt=/etc/kubernetes/pki/etcd/ca.crt \ --from-file=etcd-client.crt=/etc/kubernetes/pki/etcd/healthcheck-client.crt \ --from-file=etcd-client.key=/etc/kubernetes/pki/etcd/healthcheck-client.key
etcd没有配置证书
kubectl -n kubesphere-monitoring-system create secret generic kube-etcd-client-certs
-
部署
cd deploy vim kubesphere.yaml ## 根据参数说明编辑kubesphere.yaml中kubesphere-config为当前集群参数信息。(若etcd无证书,设置etcd_tls_enable: False) kubectl apply -f kubesphere.yaml
-
部署日志查看
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l job-name=kubesphere-installer -o jsonpath='{.items[0].metadata.name}') -f
Parameter | Description | Default | |
kube_apiserver_host | 当前集群kube-apiserver地址(ip:port) | ||
etcd_tls_enable | 是否开启etcd TLS证书认证(True / False) | True | |
etcd_endpoint_ips | etcd地址,如etcd为集群,地址以逗号分离(如:192.168.0.7,192.168.0.8,192.168.0.9) | ||
etcd_port | etcd端口 (默认2379,如使用其它端口,请配置此参数) | 2379 | |
disableMultiLogin | 是否关闭多点登录 (True / False) | True | |
elk_prefix | 日志索引 | logstash | |
keep_log_days | 日志留存时间(天) | 7 | |
metrics_server_enable | 是否安装metrics_server (True / False) | True | |
istio_enable | 是否安装istio (True / False) | True | |
persistence | enable | 是否启用持久化存储 (True / False)(非测试环境建议开启数据持久化) | |
storageClass | 启用持久化存储要求环境中存在已经创建好的storageClass(默认为空,使用default storageClass) | “” | |
containersLogMountedPath(可选) | 容器日志挂载路径 | “” | |
external_es_url(可选) | 外部es地址,支持对接外部es用 | ||
external_es_port(可选) | 外部es端口,支持对接外部es用 | ||
local_registry (离线部署使用) | 离线部署时,对接本地仓库 (使用该参数需将安装镜像使用scripts/download-docker-images.sh导入本地仓库中) | ||