Kubesphere简介
KubeSphere 是在目前主流容器调度平台 Kubernetes 之上构建的企业级分布式多租户容器平台,提供简单易用的操作界面以及向导式操作方式,在降低用户使用容器调度平台学习成本的同时,极大减轻开发、测试、运维的日常工作的复杂度,旨在解决 Kubernetes 本身存在的存储、网络、安全和易用性等痛点。除此之外,平台已经整合并优化了多个适用于容器场景的功能模块,以完整的解决方案帮助企业轻松应对敏捷开发与自动化运维、微服务治理、多租户管理、工作负载和集群管理、服务与网络管理、应用编排与管理、镜像仓库管理和存储管理等业务场景。

准备工作
安装kuberneters
kubesphere:v2.0
1. KubeSphere 依赖 Kubernetes 1.13.0版本之后的新特性,执行 kubectl version来确定版本
$ kubectl version | grep Server
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.3", GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState:"clean", BuildDate:"2019-08-19T11:05:50Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
如果kuberneters版本低于1.13.0,点击升级版本
2. 确认已安装 Helm,并且 Helm的版本至少为 2.10.0。在终端执行 helm version,得到类似下面的输出
helm version
Client: &version.Version{SemVer:"v2.14.1", GitCommit:"5270352a09c7e8b6e8c9593002a73535276507c0", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.10.0", GitCommit:"9ad53aac42165a5fadc6c87be0dea6b115f93090", GitTreeState:"clean"}
3. 集群现有的可用内存至少在 10G以上,官方推荐配置8C16G
4. KubeSphere 非常建议配合持久化存储使用,若未设置持久化存储,安装将默认使用 hostpath,该方式能顺利安装,但可能会由于 Pod 漂移带来其它问题,正式环境建议配置 StorageClass 使用持久化存储。
创建StorageClass
$ cat << EOF > StorageClass.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ks-data
annotations:
storageclass.kubernetes.io/is-default-class: "true"
provisioner: fuseim.pri/ifs
EOF
$ kubectl apply -f StorageClass.yaml
storageclass.storage.k8s.io/ks-data created
$ kubectl get sc
NAME PROVISIONER AGE
ks-data (default) fuseim.pri/ifs 4s
部署Kubesphere
1. 创建名为 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
2. 创建 Kubernetes 集群 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
3. 创建 etcd 的证书 Secret
注:根据集群实际 etcd 证书位置创建;
- 若 etcd 已经配置过证书,则参考如下创建:
$ 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 没有配置证书,则创建空 Secret(以下命令适用于 Kubeadm 创建的 Kubernetes 集群环境):
$ kubectl -n kubesphere-monitoring-system create secret generic kube-etcd-client-certs
4. 克隆 kubesphere-installer 仓库至本地
$ git clone https://github.com/kubesphere/ks-installer.git
5. 进入 ks-installer,然后在 Kubernetes 集群部署 KubeSphere
$ cd deploy
$ vim kubesphere-installer.yaml # 根据下方的参数说明列表,编辑 kubesphere-installer.yaml 中 kubesphere-config 为当前集群参数信息。(若etcd 无证书,设置 etcd_tls_enable: False)
---
apiVersion: v1
data:
ks-config.yaml: |
kube_apiserver_host: 172.16.1.100:6443 #修改为当前IP
etcd_tls_enable: True
etcd_endpoint_ips: 172.16.1.100 #修改为当前IP
disableMultiLogin: True
elk_prefix: logstash
metrics_server_enable: False #不需要安装的插件设置为False
persistence:
enable: false
storageClass: ""
kind: ConfigMap
metadata:
name: kubesphere-config
namespace: kubesphere-system
------
$ kubectl apply -f kubesphere-installer.yaml
6. 查看部署日志
$ kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l job-name=kubesphere-installer -o jsonpath='{.items[0].metadata.name}') -f
耐心等待所有Pod状态为正常
7. 查看控制台的服务端口,使用 IP:30880
访问 KubeSphere UI 界面,默认的集群管理员账号为 admin/P@88w0rd
$ kubectl get svc -n kubesphere-system
# 查看 ks-console 服务的端口 默认为 NodePort: 30880

网友评论