Chaos Blade 常用故障注入命令模板库一、基础资源故障1. CPU 故障CPU 满载blade create cpu fullload --cpu-percent80--timeout60说明模拟CPU 80%负载持续60秒验证方式top命令查看CPU使用率CPU 指定百分比负载blade create cpu load --cpu-percent50--timeout30说明模拟CPU 50%负载持续30秒2. 内存故障内存满载blade create mem load --mem-percent80--timeout60说明模拟内存80%占用持续60秒内存压力测试blade create mem load --mem-percent60--timeout303. 磁盘 I/O 故障磁盘 I/O 压力测试blade create disk burn--read--path/--timeout60说明在根目录进行磁盘读压力测试持续60秒磁盘写压力测试blade create disk burn--write--path/--timeout604. 网络故障网络延迟blade create network delay--interfaceeth0--time3000--timeout60说明在eth0接口上注入3000ms延迟持续60秒验证方式ping测试或应用请求延迟观察网络丢包blade create network loss--interfaceeth0--percent50--timeout60说明在eth0接口上注入50%丢包率持续60秒网络带宽限制blade create network loss--interfaceeth0--rate1000kbit--timeout60说明限制网络带宽为1000kbit/s持续60秒二、应用层故障1. Java 应用故障方法延迟注入blade create jvm delay--process1234--class-name com.example.OrderService --method-name pay--delay2000说明在Java应用进程1234中对OrderService的pay方法注入2000ms延迟参数说明--processJava应用进程ID--class-name目标类全限定名--method-name目标方法名--delay延迟时间(毫秒)异常注入blade create jvm exception--process1234--class-name com.example.OrderService --method-name pay--exceptionjava.lang.IllegalArgumentException说明在Java应用进程1234中对OrderService的pay方法注入异常2. 数据库故障数据库延迟chaosblade create--bladedb-delay--delay500--process-namejava说明模拟数据库查询延迟500ms数据库异常chaosblade create--bladedb-exception --process-namejava说明模拟数据库异常三、容器与Kubernetes故障1. Docker 容器故障容器进程杀死blade createdockerprocesskill--processnginx --container-id your-container-id说明杀死指定容器中的nginx进程容器CPU限制blade createdockercpu fullload --cpu-percent50--container-id your-container-id说明限制容器CPU使用率至50%2. Kubernetes 故障节点网络丢包blade create k8s node-network-loss--namesnode-01--percent60--interfaceeth0说明在节点node-01上注入60%丢包率Pod CPU负载blade create k8s pod-cpu fullload --cpu-percent80--namesorder-service--namespacedefault说明在default命名空间的order-service Pod上注入80% CPU负载Pod故障注入blade create k8s pod-failure--namesorder-service-7f98c45d9c-2xfkp--namespacedefault说明删除指定PodPod网络延迟blade create k8s network delay--namespacedefault --pod-name order-service-7f98c45d9c-2xfkp--time3000说明对指定Pod注入3000ms网络延迟四、实验管理命令1. 查询实验状态blade statusexperiment-uid说明查询指定实验的执行状态获取UIDblade status --type create查看所有运行中的实验2. 销毁实验blade destroyexperiment-uid说明销毁指定实验恢复系统正常状态3. 撤销准备环境blade revoke--all说明撤销所有准备环境清理实验环境五、最佳实践建议安全第一在测试环境先进行验证避免直接在生产环境操作渐进式实验从低强度故障开始如100ms延迟逐步增加强度监控先行实验前确保有完善的监控系统Prometheus Grafana实验范围控制使用--namespace、--labels等参数限制实验范围实验记录详细记录每次实验的配置、结果和观察定时演练在非高峰时段自动执行混沌实验持续验证系统韧性六、常见问题与解决方案问题解决方案实验无法执行检查Chaos Blade版本和权限配置确保有执行权限实验结果不明显增加故障强度或延长实验时间无法获取UID使用blade status --type create查看所有实验实验影响范围过大通过--namespace、--labels等参数精确控制实验范围实验后系统无法恢复立即执行blade destroy UID清理实验提示所有实验完成后务必执行blade destroy命令清理实验环境避免对系统造成持续影响。Chaos Blade是一个强大的混沌工程工具合理使用可以显著提升系统的稳定性和容错能力。