chaos mesh 如何对非root用户java进程注入jvm故障

Failed to apply chaos: rpc error: code = Unknown desc = com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file
根据网上其他人的问题解答,初步定位到chaos mesh daemon进程是root用户启动的,但是pod内应用容器进程是非root用户启动。
但是现在的问题是,pod内的应用容器进程因为生产等因素 没法改为 使用root用户启动,所以想咨询下chaos mesh项目 有解决方案吗?
之前试用过chaos blade好像没有遇到过类似的问题,是因为实现方案不同导致的吗

提个 issue 哇,提供复现步骤

1 个赞

确保非root用户对 Chaosblade agent 所需资源(如安装目录、日志文件等)拥有足够的读写权限。

查看一下相应的权限

蹲一下

权限问题

看看是不是权限导致

chaos mesh daemon pod是以root用户启动的,为啥会有权限问题呢,网上有人解答 chaos mesh需要和 业务java进程的运行用户一致,才能解决这个权限问题。

现在问题是, 业务java是特殊的用户启动,而chaos mesh只能以root 用户启动,所以应该怎么解决这个权限问题呢,谢谢!

从错误信息看是和这个 issue 类似 Issues · chaos-mesh/chaos-mesh · GitHub k8s node 内核版本是多少?https://chaos-mesh.org/docs/simulate-jvm-application-chaos/ 文档里提到内核需要不低于 4.1 版本

在使用Chaos Mesh时遇到com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file错误,通常是因为Java虚拟机(JVM)的attach API无法访问到目标Java进程的套接字文件。这个套接字文件通常位于/tmp/.java_pid<pid>,其中<pid>是Java进程的ID。