安装Kuboard的时候,Prometheus一直是pending
现象
因为Prometheus没有配置好,导致查看不了资源负载。
1、查看pod详情
查看报错的Prometheus pod的信息
kubectl status pod/prometheus-k8s-0 -n kuboard
我这里显示的是创建目录失败。
最开始尝试把报错的目录加入到nfs共享目录里面,并且把目录的权限改成777
[root@server ~]# vim /etc/exports
# 添加共享目录
/persistentvolumes xx.xx.xx.xx/20(rw,all_squash,sync)
[root@server ~]# chmod 777 /persistentvolumes
[root@server ~]# systemctl start nfs-server
[root@server ~]# exportfs -r
[root@server ~]# showmount -e
但是并不起作用,还是报一样的错。
2、最终问题定位:pvc的问题
pvc没有和pv挂载,pvc的状态一直是pending
2.1 检查pv和pvc
我之前有一个pv和pvc是正常绑定的,但是Prometheus的两个pvc没有对应的pv,所以状态一直是pending。
2.2 创建pv,并且将pv和pvc绑定
# prometheus-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: prometheus-k8s-db-prometheus-k8s-0
spec:
capacity:
storage: 10Gi # 根据实际需求调整存储容量
accessModes:
- ReadWriteOnce # 根据PVC的Access Modes需求选择
persistentVolumeReclaimPolicy: Retain # 可根据需要选择其他策略
storageClassName: kuboard-bigdata # 与PVC的StorageClass匹配
nfs:
server: your-ip # 替换为你的NFS服务器IP
path: "/persistentvolumes" # 替换为NFS服务器上的路径,确保该路径存在并有权限访问
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: prometheus-k8s-db-prometheus-k8s-1
spec:
capacity:
storage: 10Gi # 根据实际需求调整存储容量
accessModes:
- ReadWriteOnce # 根据PVC的Access Modes需求选择
persistentVolumeReclaimPolicy: Retain # 可根据需要选择其他策略
storageClassName: kuboard-bigdata # 与PVC的StorageClass匹配
nfs:
server: your-ip # 替换为你的NFS服务器IP
path: "/persistentvolumes" # 替换为NFS服务器上的路径,确保该路径存在并有权限访问
2.3 生成pv
kubectl apply -f prometheus-pv.yaml
2.4 绑定pv和pvc
[root@k8s-master001 ~]# kubectl patch pv prometheus-k8s-db-prometheus-k8s-0 -p '{"spec":{"claimRef":{"name":"prometheus-k8s-db-prometheus-k8s-0", "namespace":"kuboard"}}}'
[root@k8s-master001 ~]# kubectl patch pvc prometheus-k8s-db-prometheus-k8s-0 -n kuboard -p '{"spec":{"volumeName":"prometheus-k8s-db-prometheus-k8s-0"}}'
[root@k8s-master001 ~]# kubectl patch pv prometheus-k8s-db-prometheus-k8s-1 -p '{"spec":{"claimRef":{"name":"prometheus-k8s-db-prometheus-k8s-1", "namespace":"kuboard"}}}'
[root@k8s-master001 ~]# kubectl patch pvc prometheus-k8s-db-prometheus-k8s-1 -n kuboard -p '{"spec":{"volumeName":"prometheus-k8s-db-prometheus-k8s-1"}}'
3. 结果
有一个起来了,还有一个失败,现在能用就暂时不管。
查看负载: