浅谈 kubernetes 存储—glusterfs 故障排查
sc Storage Class
kubectl get sc | grep gluster
查询 Storage Class Name
kubectl get sc default -o yaml
查询 Storage Class Content
heketi cluster_id、server port
确认 cluster id
heketi-cli --user admin --secret admin@123 cluster list
确认 server port (一般不会错)
cat /etc/heketi/heketi.json | grep port
heketi setup glusterd
cat /etc/heketi/topology.json | grep devices -A1(指定存储盘)
cat /etc/heketi/topology.json | grep hostnames -A 5(确认 glusterfs 主机的 IP)
glusterd clutser alive
gluster pool list
确认各节点的 glusterd 进程存活
heketi reload
cat /etc/heketi/heketi.json | grep _loglevel -A 5(设置 heketi 日志等级)
journalctl -eu heketi --since now -f(监控 heketi 日志)
重载 /etc/heketi/heketi.json
systemctl daemon-reload && systemctl restart heketi
重载 /etc/heketi/topology.json
heketi-cli --user admin --secret admin@123 topology load --json=/etc/heketi/topology.json
02
状况
状况:pv pending
故障点:k8s controller manager ➔ heketi
manager 发请求
cat controller-manager.log | grep glusterfs
建盘请求为 POST 10.101.102.208 /volumes
heketi 给响应 heketi 日志
journalctl -eu heketi --since now -f
故障点:heketi ➔ gluster 主机
ssh 划分 LV 失败?heketi 日志
gluster 建盘失败?heketi-cli 响应
手动尝试建盘,观察是否成功、观察 heketi 日志
heketi-cli --user admin --secret admin@123 volume create --size=1 --gluster-volume-options='user.heketi.arbiter true'
手动建盘失败,某个少见的坑点
heketi-cli 响应 Error: log size 4085 blocks too small, minimum size is 4608 blocks
--gluster-volume-options='user.heketi.arbiter true,user.heketi.average-file-size 1'
状况:pv mounted but error
故障点:mount failed
gluster-client 软件依赖不全 rpm —— 补充安装依赖
pv 容量已占满 —— 手动扩容 LV,有语雀文档
网络不通 —— 概率低,找网络负责人处理
故障点:mounted,data error
gluster 数据维护,建议升级至 L3
常用的现场勘查命令
kubectl get pv pvc-40be97b1-a0d8-43b7-94c0-1001bf30c0b4 -o yaml | grep path
gluster volume status vol_1e08f914aa923bf3238eda0e8991f539
gluster volume heal vol_1e08f914aa923bf3238eda0e8991f539 info
评论