前言:比起默认的 dashboard ,Kubesphere 集成了很多套件。我们用 kubesphere 可以打通全部的 devops 链路。

所有的问题建议优先查看官方文档kubesphere Kuboard 也很不错,集群要求不高Kuboard

一、准备工作1、前提要求

前提要求

kubesphere操作文档下载 kubesphere3.0_github

2、在集群节点中运行 kubectl version,确保 Kubernetes 版本可兼容

kubectl version

kubesphere操作文档下载 kubesphere3.0_github_02

3、检查集群中的可用资源是否满足最低要求

free -g

kubesphere操作文档下载 kubesphere3.0_Pod_03

4、检查集群中是否有默认 StorageClass

kubesphere操作文档下载 kubesphere3.0_Pod_04

二、安装 OpenEBS1、确认 master 节点是否有 Taint

kubesphere操作文档下载 kubesphere3.0_github_05

2、创建 OpenEBS 的 namespace,OpenEBS 相关资源将创建在这个 namespace 下

kubectl create ns openebs

3、安装 OpenEBS

kubectl apply -f https://openebs.github.io/charts/openebs-operator.yaml

4、安装 OpenEBS 后将自动创建StorageClass,查看创建的 StorageClass

kubectl get sc

kubesphere操作文档下载 kubesphere3.0_kubesphere操作文档下载_06

5、将 openebs-hostpath设置为默认的 StorageClass

kubectl patch storageclass openebs-hostpath -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

至此,OpenEBS 的 LocalPV 已作为默认的存储类型创建成功。可以通过命令 kubectl get pod -n openebs来查看 OpenEBS 相关 Pod 的状态,若 Pod 的状态都是 running,则说明存储安装成功。

三、安装kubesphere1、执行以下命令
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/kubesphere-installer.yaml
   
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/cluster-configuration.yaml
2、检查安装日志
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f

kubesphere操作文档下载 kubesphere3.0_devops_07

3、查看所有 Pod 是否在 KubeSphere 的相关命名空间中正常运行
kubectl get pod --all-namespaces 
kubectl get svc/ks-console -n kubesphere-system
4、访问 Web 控制台

确保在安全组中打开了端口 30880,并通过 NodePort (IP:30880) 使用默认帐户和密码 (admin/P@88w0rd) 访问 Web 控制台

四、启用可插拔组件KubeSphere DevOps 系统安装前启用1、编辑 cluster-configuration.yaml 文件

vi cluster-configuration.yaml 在 cluster-configuration.yaml 文件中,找到 devops,并将 enabled 的 false 改为 true,完成后保存文件

devops:
    enabled: true # Change "false" to "true"
2、安装

kubectl apply -f kubesphere-installer.yamlkubectl apply -f cluster-configuration.yaml

安装后启用1、登录控制台

以 admin 身份登录控制台,点击左上角的平台管理,选择集群管理。

kubesphere操作文档下载 kubesphere3.0_Pod_08

2、在资源列表中,点击 ks-installer 右边的三个点,选择编辑配置文件

kubesphere操作文档下载 kubesphere3.0_kubernetes_09

3、编辑配置文件

在该 YAML 文件中,搜寻到 devops,将 enabled 的 false 改为 true。完成后,点击右下角的更新,保存配置。

至此全部完成

kubesphere操作文档下载 kubesphere3.0_devops_10

五、一些问题1、kubesphere-monitoring-system里的prometheus-k8s-0一直pending

kubesphere操作文档下载 kubesphere3.0_kubesphere操作文档下载_11

查看该pod

kubectl describe pod prometheus-k8s-0 -n kubesphere-monitoring-system event报错如下:

Events:
  Type     Reason            Age        From               Message
  ----     ------            ----       ----               -------
  Warning  FailedScheduling  <unknown>  default-scheduler  error while running "VolumeBinding" filter plugin for pod "prometheus-k8s-0": pod has unbound immediate PersistentVolumeClaims

kubesphere操作文档下载 kubesphere3.0_kubernetes_12

显然是storagecalss的问题,查看一下

kubectl get storageclass

kubesphere操作文档下载 kubesphere3.0_kubesphere操作文档下载_13

之前配置的openebs没有问题

再检查一下pvc

kubectl get pvc -A

kubesphere操作文档下载 kubesphere3.0_kubernetes_14

发现原因:sc错误

kubesphere-monitoring-system命名空间中的PVC使用的StorageClass是local

将kubesphere-monitoring-system命名空间中的StorageClass更改为openebs-hostpath

kubectl patch ns kubesphere-monitoring-system -p '{"metadata":{"annotations":{"storageclass.kubernetes.io/default-class":"true"}}}'

kubesphere操作文档下载 kubesphere3.0_kubesphere操作文档下载_15