目录
1、排查当前容器里的elasticsearch服务数据目录权限:
一、问题描述:
在维护paas云平台时遇见一个elasticsearch服务运行异常,报错内容显示如下:
并且通过重启pod容器也无法恢复该elasticsearch服务。
二、问题分析:
通过日志内容及运维经验发现该问题是因为elasticsearch服务数据目录的权限不匹配导致,
1、排查当前容器里的elasticsearch服务数据目录权限:
通过上面的检查,得出两个信息:
(1).elasticsearch服务的数据目录的权限确实存在问题,其他的目录/文件的是elasticsearch用户,但是data目录的属主是root的,存在冲突;
(2).elasticsearch服务运行的用户是elasticsearch用户;
2、检查elasticsearch用户的id值:
需要登入到容器里通过id elasticsearch查看用户ID值
3、故障原因及故障处理方向结论:
根据上面分析的情况,需要将data目录的属主修改为 elasticsearch:root,就可以了。
三、问题处理:
根据上面分析的结论,需要将 elasticsearch容器里的data目录修改属主,但是考虑到后期可能还会触发该属主问题,所以建议需要在 elasticsearch容器里加入一个初始化容器来完成属主设置工作;
在spec模块之下添加如下的内容:
cpp
initContainers:
- name: init-sysctl
image: 'dockerhub.jxstjh.com/system_containers/busybox:latest'
command:
- /bin/sh
- '-c'
- >-
chown -R 1000:1000 /usr/share/elasticsearch/data;sysctl -w
vm.max_map_count=262144
resources: {}
volumeMounts:
- name: video-elasticsearch-pvc
mountPath: /usr/share/elasticsearch/data
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
securityContext:
privileged: true
结果如下:其中有两处需要注意的,第一个 elasticsearch的数据目录,第二个是挂载目录信息
然后重启一下elasticsearch容器就可以了;后面通过验证,elasticsearch容器服务已经恢复了。
四、总结:
如上是elasticsearch容器服务维护过程中遇见的问题,并且是提供了处理方案,希望能帮助到大家!!