首页 » 安全相关 » kubernetes安装kubesphere

kubernetes安装kubesphere

 

Kubesphere简介

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

image.png

准备工作

安装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

作者:前行I
链接:https://www.jianshu.com/p/896ce46b430a
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

原文链接:kubernetes安装kubesphere,转载请注明来源!

0