开发者社区 > 云原生 > Serverless > 正文

chaosblade无法在centos8上面运行么?看是没有netem这个模块

chaosblade无法在centos8上面运行么?看是没有netem这个模块

提问8.png

展开
收起
Java工程师 2023-05-09 08:05:47 392 0
5 条回答
写回答
取消 提交回答
  • 百度 安装一下kernel-modules-extra这个模块就可以了

    此答案来自钉钉群“ChaosBlade开源讨论群"

    2023-05-09 15:05:55
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。
    1. 使用sudo获取root权限后重试。sudo ./blade create network delay ... 应该可以解决权限问题。
    2. 确认系统中存在eth0接口,并且接口名称写正确。如果接口名错了,更正重试。
    3. 如果是虚拟机或容器环境,确保已经添加了eth0网卡,或者使用正确的接口名称。
    4. chaosblade版本可能比较老旧,建议更新到最新版本。新版本可能修复了某些Bug。
    5. 如果问题仍旧存在,您可以直接使用tc命令添加延迟规则进行验证。例如: bash sudo tc qdisc add dev eth0 root netem delay 30ms
    2023-05-09 11:58:27
    赞同 展开评论 打赏
  • ChaosBlade 是一个用于进行混沌工程实验的工具,主要功能是模拟一些风险事件和磨合问题来了解和优化系统架构。ChaosBlade 支持在 Linux 平台上运行,但需要注意:

    1. 您必须满足 ChaosBlade 运行所需的基本条件(如 Java 等环境)。
    2. 版本冲突可能会导致无法运行,例如某些组件依赖于特定版本的内核和其他库等。

    关于在 CentOS 8 上运行 ChaosBlade 的问题,确实有用户反映过找不到 netem 内核模块的情况。原因是 CentOS 8 默认使用新版本的内核,而该内核可能没有预装 netem 模块而导致问题。

    如果您遇到这个问题,可以尝试安装 kernel-modules-extra 包。这个包中包含了许多几乎不安装的内核模块,包括 netem 。您可以使用以下命令进行安装:

    sudo dnf install kernel-modules-extra
    

    此外,在 CentOS 8 中也可以在应用程序启动时载入 netem 模块(可选)。可以通过向启动脚本添加以下命令或使用 systemd 等服务管理器完成此操作:

    modprobe netem
    

    总之,如果 CentOS 8 上出现类似问题,建议先检查是否已安装必要的依赖项和网络模块,并根据实际情况进行调整。

    2023-05-09 11:05:54
    赞同 展开评论 打赏
  • 热爱开发

    chaosblade 是一款 Linux 下的开源混沌工程实验工具,可以用于模拟各种异常场景,目前已支持 CPU、内存、IO、网络等多个领域。针对你提到的 CentOS 8 系统上无法运行的问题,可能是因为 CentOS 8 中缺少必要的内核模块或者依赖库。

    具体来讲,如果你在 CentOS 8 上遇到了无法使用 chaosblade 的情况,可以尝试以下几个方法:

    安装所需的内核模块:在 CentOS 8 中默认可能没有安装 netem 内核模块,可以通过命令 modprobe netem 来加载该模块,如果不成功则需要手动编译内核,并包含 netem 模块。

    安装所需的依赖库:chaosblade 运行时需要依赖一些库文件和命令行工具,如 tc、iproute2 和 ethtool 等,可以通过命令 yum install tc iproute2 ethtool 来安装这些依赖库。

    切换至其他 Linux 发行版:如果在 CentOS 8 上仍然无法运行 chaosblade,可以考虑切换至其他 Linux 发行版,比如 Ubuntu 或者 Debian,在这些系统上可能会更容易安装和使用 chaosblade。

    总之,要想正常使用 chaosblade,需要保证系统中安装了所有必要的依赖库和内核模块。

    2023-05-09 09:20:34
    赞同 展开评论 打赏
  • ChaosBlade 的确有一些根据系统版本,需要安装特定的内核模块,比如 netem 就是一个内核模块。在 Centos/RHEL 8 上,内核模块名称为 sch_netem

    如果您在 Centos 8 上没有 netem 模块,可以尝试通过以下命令将其安装:

    modprobe sch_netem
    

    然后再次尝试启动 ChaosBlade,看是否能够正常运行。

    另外,根据您的截图,似乎是通过 Docker 容器运行 ChaosBlade,那么需要确保容器内的操作系统版本和宿主机相匹配,以及安装了必要的内核模块才能正常运行 ChaosBlade。

    2023-05-09 08:47:24
    赞同 展开评论 打赏
问答标签:
问答地址:

快速交付实现商业价值。

相关电子书

更多
CentOS Nginx PHP JAVA 多语言镜像使用手 立即下载
CentOS Nginx PHP JAVA多语言镜像使用手册 立即下载
低代码开发师(初级)实战教程 立即下载