Elasticsearch Pod重启数据丢失,PV/PVC配置问题排查求助
问题分析与解决
核心问题
你的Elasticsearch数据未写入Persistent Volume(PV)的根本原因是容器内挂载路径错误:
Elasticsearch官方镜像默认的数据存储目录是/usr/share/elasticsearch/data,但你在Deployment的volumeMounts中将PV挂载到了/storage/data,导致ES始终把数据存在容器内部的临时路径中,Pod重启后容器被重建,数据自然丢失,同时minikube节点上的/storage/data因未被使用而为空。
修复步骤
1. 修改Elasticsearch Deployment的挂载路径
更新deployment.yaml中容器的volumeMounts配置,将挂载路径改为ES默认的数据目录:
# deployment.yaml 容器部分修改后的volumeMounts volumeMounts: - name: elastic-storage mountPath: /usr/share/elasticsearch/data
2. 修正minikube节点上的目录权限
Elasticsearch容器以elasticsearch用户(UID为1000)运行,需确保minikube节点上的/storage/data目录有正确权限,否则ES启动时会无法写入数据:
# 进入minikube节点 minikube ssh # 创建目录并设置权限 sudo mkdir -p /storage/data sudo chown 1000:1000 /storage/data sudo chmod 750 /storage/data
3. 重新部署资源
删除旧Pod并重新应用配置:
kubectl delete deployment elastic-deployment kubectl apply -f deployment.yaml kubectl apply -f PersistentVolume.yaml kubectl apply -f PersistentVolumeClaim.yaml
验证
重新向ES写入数据后,手动重启Pod:
kubectl delete pod -l app=elastic-label
Pod重启后尝试读取数据,此时数据应能正常保留;同时查看minikube节点的/storage/data目录,会看到ES生成的数据文件。
内容的提问来源于stack exchange,提问作者user21236160
相关产品推荐
相关产品推荐

