组件容器组报错“the path xxx does not exist”,如何处理?
平台的部分组件会在节点上指定的或自定义的路径下创建一些目录,用来存放程序运行时的必要文件。当这些路径为软链接时,需要保证每个软链接均指向节点上一个已存在的目录。否则,可能导致组件的容器组无法正常启动或平台无法采集到组件相关的数据。
问题描述
查看组件的容器组日志(docker logs <容器 ID>
)或容器组描述(docker describe <容器 ID>
),报错信息中包含如下内容:
the path xxx/xxx/xxx.xx does not exist.
示例如下:
The directory named as part of the path /scan_dir/cpaas/log/fluent.log does not exist.
通用排查方法
-
检查容器组所在节点上,报错信息中提到的目录路径是否存在。
-
存在:请尝试其他排查方法,或联系本公司运维工程师获得支持。
-
不存在:请继续执行剩余步骤。
-
-
参照报错信息中提示的路径(path),在节点上创建缺失的目录。
-
通过删除容器组,重建组件的容器组。
nevermore 组件排查方法
说明:nevermore 组件存放程序运行时的必要文件的路径默认为 /cpaas
,支持用户修改该路径。
修改后,需确保路径在节点上实际存在,且 Chart chart-alauda-log-agent
中字段 nevermore.dataDirName
的值为修改后的路径。
操作步骤
-
检查容器组所在节点上,报错信息中提到的目录路径是否存在。
-
存在:请检查 Chart
chart-alauda-log-agent
中字段nevermore.dataDirName
的值是否和报错信息中的目录路径一致。-
一致:请尝试其他排查方法,或联系本公司运维工程师获得支持。
-
不一致:请修改 Chart
chart-alauda-log-agent
中字段nevermore.dataDirName
的值为节点上实际存在的目录的路径。
-
-
不存在:请继续执行剩余步骤。
-
-
参照报错信息中提示的路径(path),在节点上创建缺失的目录。
-
通过删除容器组,重建组件的容器组。