前言:比起默认的 dashboard ,Kubesphere 集成了很多套件。我们用 kubesphere 可以打通全部的 devops 链路。
所有的问题建议优先查看官方文档kubesphere Kuboard 也很不错,集群要求不高Kuboard
前提要求
kubectl version
free -g
kubectl create ns openebs
kubectl apply -f https://openebs.github.io/charts/openebs-operator.yaml
kubectl get sc
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,则说明存储安装成功。
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
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f
kubectl get pod --all-namespaces
kubectl get svc/ks-console -n kubesphere-system
确保在安全组中打开了端口 30880,并通过 NodePort (IP:30880) 使用默认帐户和密码 (admin/P@88w0rd) 访问 Web 控制台
vi cluster-configuration.yaml 在 cluster-configuration.yaml 文件中,找到 devops,并将 enabled 的 false 改为 true,完成后保存文件
devops:
enabled: true # Change "false" to "true"
kubectl apply -f kubesphere-installer.yamlkubectl apply -f cluster-configuration.yaml
以 admin 身份登录控制台,点击左上角的平台管理,选择集群管理。
在该 YAML 文件中,搜寻到 devops,将 enabled 的 false 改为 true。完成后,点击右下角的更新,保存配置。
至此全部完成
查看该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
显然是storagecalss的问题,查看一下
kubectl get storageclass
之前配置的openebs没有问题
再检查一下pvc
kubectl get pvc -A
发现原因: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"}}}'