当前位置: 首页 > news >正文

混沌工具参数梳理-持续更新

  • https://chaosblade.io/
  • https://chaosblade.io/docs

⭕ 初识 blade 命令

先看一下 blade 命令,如下图所示,用法是 blade [command] ,例如 blade check ...blade create ...

除了不通 Command 各自的用法,命令后还可以加 Flags,例如 -d 表示 --debug 可帮助我们排查报错、-h 可以输出帮助文档

[root@master ~]# blade -h
An easy to use and powerful chaos engineering experiment toolkit # 易于使用且功能强大的混沌工程实验工具包Usage:blade [command]Available Commands:check       Check the environment for chaosbladecreate      Create a chaos engineering experimentdestroy     Destroy a chaos experimenthelp        Help about any commandprepare     Prepare to experimentquery       Query the parameter values required for chaos experimentsrevoke      Undo chaos engineering experiment preparationstatus      Query preparation stage or experiment statusversion     Print version infoFlags:-d, --debug   Set client to DEBUG mode-h, --help    help for bladeUse "blade [command] --help" for more information about a command.

通过上方 blade -h 的帮助文档,我们已知 blade 后可以跟 Command 用于执行不通的命令,接下来我们通过 blade version -h 举例

[root@master ~]# blade version -h
Print version info # 打印日志信息Usage: # 用法示例blade version # blade version, 无参Aliases:version, v # 别名 version、vFlags:-h, --help   help for version # 可选参数 -h, 查看 blade version 命令的帮助文档Global Flags:-d, --debug   Set client to DEBUG mode  # 全局参数 -d, 启用 debug 模式

使用效果如下

[root@master ~]# blade v
version: 1.7.4
env: #1 SMP Thu Mar 17 17:08:06 UTC 2022 x86_64
build-time: Wed Jul  3 09:25:20 UTC 2024

接下来我将依次介绍剩余的 blade 命令,checkcreatedestroyhelppreparequeryrevokestatus

1、blade check

帮助文档

[root@master ~]# blade check -h
Check the environment for chaosblade # 检查chaosblade的环境Usage: # 用法示例blade check # blade check 无参blade check [command] # 亦可 blade check [command] 后面跟一个命令、如下方有java、osAliases:check, k # 别名 check、hExamples:
check os # 示例 check osAvailable Commands: # 可用命令,可以替代填写在 Usage 的 [command] java        Check the environment of java for chaosbladeos          Check the environment of os for chaosbladeFlags: # 参数 -h 查看帮助文档-h, --help   help for checkGlobal Flags: # 全局参数 -d 开启 debug 模式-d, --debug   Set client to DEBUG modeUse "blade check [command] --help" for more information about a command.

使用示例

[root@master ~]# blade check os
[success] cpu fullload, success! `taskset` command exists
[success] men load, success! `mount` command exists
[success] men load, success! `umount` command exists
[success] network delay, success! `tc` command exists
[success] network drop, success! `iptables` command exists
[success] network dns, success! `set` command exists
[success] network loss, success! `tc` command exists
[success] network duplicate, success! `tc` command exists
[success] network corrupt, success! `tc` command exists
[success] network reorder, success! `tc` command exists
[success] network occupy, success! `ss` command exists
[failed] create disk burn --read true, exec failed! create err: 3b1c0c488a488475
[failed] create disk burn --write true, exec failed! create err: 6733b991e945a359
------------summary----------+------------+-----------+---------+--------------------------------+
| EXPERIMENT |  COMMAND  | RESULT  |              INFO              |
+------------+-----------+---------+--------------------------------+
| cpu        | fullload  | success | `taskset` command exists       |
+------------+-----------+---------+--------------------------------+
| men        | load      | success | `mount` command exists         |
+            +-----------+---------+--------------------------------+
|            | load      | success | `umount` command exists        |
+------------+-----------+---------+--------------------------------+
| network    | delay     | success | `tc` command exists            |
+            +-----------+---------+--------------------------------+
|            | drop      | success | `iptables` command exists      |
+            +-----------+---------+--------------------------------+
|            | dns       | success | `set` command exists           |
+            +-----------+---------+--------------------------------+
|            | loss      | success | `tc` command exists            |
+            +-----------+---------+--------------------------------+
|            | duplicate | success | `tc` command exists            |
+            +-----------+---------+--------------------------------+
|            | corrupt   | success | `tc` command exists            |
+            +-----------+---------+--------------------------------+
|            | reorder   | success | `tc` command exists            |
+            +-----------+---------+--------------------------------+
|            | occupy    | success | `ss` command exists            |
+------------+-----------+---------+--------------------------------+
| disk       | burn      | failed  | create disk burn --read true,  |
|            |           |         | exec failed! create err:       |
|            |           |         | 3b1c0c488a488475               |
+            +-----------+---------+--------------------------------+
|            | burn      | failed  | create disk burn --write       |
|            |           |         | true, exec failed! create err: |
|            |           |         | 6733b991e945a359               |
+------------+-----------+---------+--------------------------------+

同时我们经过 blade check os -h 可知,后面还能跟命令,如下

blade check [command]

  • os

    • cpu ( Cpu experiment )
      • fullload ( Cpu load )
    • disk ( Check disk experiment )
      • burn ( Increase disk read and write io load )
    • men ( Mem experiment )
      • load ( mem load )
    • network ( Network experiment )
      • corrupt ( Corrupt experiment )
      • delay ( Delay experiment )
      • dns ( Dns experiment )
      • drop ( Drop experiment )
      • duplicate ( Duplicate experiment )
      • loss ( Loss network package )
      • occupy ( Occupy the specify port )
      • reorder ( Reorder experiment )
  • java

blade check os
blade check os cpu
blade check os cpu fullload
blade check os disk
blade check os disk burn
blade check os men
blade check os men load
blade check os network
blade check os network corrupt
blade check os network delay
blade check os network dns
blade check os network drop
blade check os network duplicate
blade check os network loss
blade check os network occupy
blade check os network reorder

2、blade create

帮助文档

[root@master ~]# blade create -h
Create a chaos engineering experimentUsage:blade create [command]Aliases:create, cExamples:
blade create cpu load --cpu-percent 60Available Commands:aliyun      Aliyun experimentaws         Aws experimentck          Clickhouse experimentcplus       C++ chaos experimentscpu         Cpu experimentcri         CRI experimentdisk        Disk experimentdruid       Experiment with the Druiddubbo       Experiment with the Dubboes          ElasticSearch experiment!feign       feign experimentfile        File experimentgateway     gateway experiment!hbase       hbase experiment!hdfs        HDFS Chaos Experiment Plugin.http        http experimentjedis       jedis experimentjvm         Experiment with the JVMk8s         Kubernetes experimentkafka       kafka experimentlettuce     redis client lettuce experimentlog         log experimentmem         Mem experimentmongodb     MongoDB experimentmysql       mysql experimentnetwork     Network experimentnginx       Nginx experimentprocess     Process experimentpsql        Postgrelsql experimentrabbitmq    rabbitmq experimentredis       Redis experimentredisson    redisson experimentrocketmq    Rocketmq experiment,can make message send or pull delay and exceptionscript      Script chaos experimentsecurity    SpringSecurity login experimentservlet     java servlet experimentstrace      strace experimentsystemd     Systemd experimenttars        tars experimenttime        Time experimentzk          zk experimentFlags:-a, --async             whether to create asynchronously, default is false-e, --endpoint string   the create result reporting address. It takes effect only when the async value is true and the value is not empty-h, --help              help for create-n, --nohup             used to internal async create, no need to config--uid string        Set Uid for the experiment, adapt to docker and criGlobal Flags:-d, --debug   Set client to DEBUG modeUse "blade create [command] --help" for more information about a command.

使用示例

例如我们输入一个不存在的 k8s time ,它会给出 blade create k8s 的帮助文档

[root@master ~]# blade create k8s time --help
Kubernetes experiment, for example kill podUsage:blade create k8s [flags]blade create k8s [command]Available Commands:container-ck        Clickhouse experimentcontainer-container Execute a container experimentcontainer-cpu       Cpu experimentcontainer-disk      Disk experimentcontainer-druid     Experiment with the Druidcontainer-dubbo     Experiment with the Dubbocontainer-es        ElasticSearch experiment!container-feign     feign experimentcontainer-file      File experimentcontainer-gateway   gateway experiment!container-hbase     hbase experiment!container-hdfs      HDFS Chaos Experiment Plugin.container-http      http experimentcontainer-jedis     jedis experimentcontainer-jvm       Experiment with the JVMcontainer-kafka     kafka experimentcontainer-lettuce   redis client lettuce experimentcontainer-log       log experimentcontainer-mem       Mem experimentcontainer-mongodb   MongoDB experimentcontainer-mysql     mysql experimentcontainer-network   Network experimentcontainer-process   Process experimentcontainer-psql      Postgrelsql experimentcontainer-rabbitmq  rabbitmq experimentcontainer-redisson  redisson experimentcontainer-rocketmq  Rocketmq experiment,can make message send or pull delay and exceptioncontainer-script    Script chaos experimentcontainer-security  SpringSecurity login experimentcontainer-servlet   java servlet experimentcontainer-tars      tars experimentcontainer-zk        zk experimentnode-cpu            Cpu experimentnode-disk           Disk experimentnode-file           File experimentnode-mem            Mem experimentnode-network        Network experimentnode-process        Process experimentnode-script         Script chaos experimentpod-cpu             Cpu experimentpod-disk            Disk experimentpod-file            File experimentpod-mem             Mem experimentpod-network         Network experimentpod-pod             Pod experimentspod-process         Process experimentpod-script          Script chaos experimentFlags:-h, --help                  help for k8s--kubeconfig string     kubeconfig file--waiting-time string   Waiting time for invoking, default value is 20sGlobal Flags:-a, --async             whether to create asynchronously, default is false-d, --debug             Set client to DEBUG mode-e, --endpoint string   the create result reporting address. It takes effect only when the async value is true and the value is not empty-n, --nohup             used to internal async create, no need to config--uid string        Set Uid for the experiment, adapt to docker and criUse "blade create k8s [command] --help" for more information about a command.

😒 太多了,create 这块用到哪个看哪个吧。。。

3、blade distroy

帮助文档

[root@master ~]# blade destroy -h
Destroy a chaos experiment by experiment uid which you can run status command to queryUsage:blade destroy UIDblade destroy [command]Aliases:destroy, dExamples:# Destroy experiment
blade destroy 47cc0744f1bb# Force delete kubernetes experiment
blade destroy 47cc0744f1bb --target k8s --kubeconfig ~/.kube/config --force-removeAvailable Commands:aliyun      Aliyun experimentaws         Aws experimentck          Clickhouse experimentcplus       C++ chaos experimentscpu         Cpu experimentcri         CRI experimentdisk        Disk experimentdruid       Experiment with the Druiddubbo       Experiment with the Dubboes          ElasticSearch experiment!feign       feign experimentfile        File experimentgateway     gateway experiment!hbase       hbase experiment!hdfs        HDFS Chaos Experiment Plugin.http        http experimentjedis       jedis experimentjvm         Experiment with the JVMk8s         Kubernetes experimentkafka       kafka experimentlettuce     redis client lettuce experimentlog         log experimentmem         Mem experimentmongodb     MongoDB experimentmysql       mysql experimentnetwork     Network experimentnginx       Nginx experimentprocess     Process experimentpsql        Postgrelsql experimentrabbitmq    rabbitmq experimentredis       Redis experimentredisson    redisson experimentrocketmq    Rocketmq experiment,can make message send or pull delay and exceptionscript      Script chaos experimentsecurity    SpringSecurity login experimentservlet     java servlet experimentstrace      strace experimentsystemd     Systemd experimenttars        tars experimenttime        Time experimentzk          zk experimentFlags:--force-remove        Force remove chaosblade resource or record even if destroy experiment failed-h, --help                help for destroy--kubeconfig string   The config file of kubernetes cluster. Used to destroy creating k8s experiments without using blade command--target string       Specify experiment target, such as --target k8s. Used to destroy creating k8s experiments without using blade command--uid string          Set Uid for the experiment, adapt to containerGlobal Flags:-d, --debug   Set client to DEBUG modeUse "blade destroy [command] --help" for more information about a command.

总而言之,后面跟 uid 或者跟命令 Command

使用示例

[root@master ~]# blade create network dns --domain www.baidu.com --ip 10.0.0.0
{"code":200,"success":true,"result":"98f4786bd8562266"}
[root@master ~]# blade d 98f4786bd8562266
{"code":200,"success":true,"result":{"target":"network","action":"dns","flags":{"domain":"www.baidu.com","ip":"10.0.0.0"},"ActionProcessHang":false}}
[root@master ~]# blade create network dns --domain www.baidu.com --ip 10.0.0.0
{"code":200,"success":true,"result":"debf669b9fb46c4d"}
[root@master ~]# blade d network dns --domain www.baidu.com --ip 10.0.0.0
{"code":200,"success":true,"result":{"target":"network","scope":"host","action":"dns","flags":{"blade-release":"","channel":"","domain":"www.baidu.com","endpoint":"","install-path":"","ip":"10.0.0.0","kubeconfig":"","ssh-host":"","ssh-key":"","ssh-port":"","ssh-user":"","target":"","timeout":"","uid":""},"ActionProcessHang":false}}

注:只能一个一个删,没有命令直接删所有,可以写脚本批量删除。

4、blade help

效果等同于 blade -h, 开篇已说明,此处不再赘述。

5、blade prepare

blade prepare 是在目标 Pod(或容器)中 注入 ChaosBlade Agent(混沌执行代理) 的过程

blade revoke回收这个代理资源、清除标记和注入内容 的过程。

帮助文档

[root@master ~]# blade prepare -h
Prepare to experiment, for example, attach agent to java process or deploy agent to kubernetes cluster.Usage:blade prepareblade prepare [command]Aliases:prepare, pExamples:
prepare jvm --process tomcatAvailable Commands:cplus       Active cplus agent.jvm         Attach a type agent to the jvm processFlags:-h, --help   help for prepareGlobal Flags:-d, --debug   Set client to DEBUG modeUse "blade prepare [command] --help" for more information about a command.

使用示例

[root@master ~]# blade prepare jvm --process mysql-delay-1.0-SNAPSHOT.jar
{"code":200,"success":true,"result":"759b0ad398c53c41"}

6、blade query

帮助文档

[root@master ~]# blade query -h
Query the parameter values required for chaos experimentsUsage:blade query TARGET TYPEblade query [command]Aliases:query, qExamples:
query network interfaceAvailable Commands:disk        Query disk informationjvm         Query hit counts of the specify experimentk8s         Query status of the specify experiment by uidnetwork     Query network informationFlags:-h, --help   help for queryGlobal Flags:-d, --debug   Set client to DEBUG modeUse "blade query [command] --help" for more information about a command.

使用示例

# 查询网卡名称
blade q net interface
# 查询磁盘挂载点
blade q disk mount-point
# 查询磁盘设备列表(the device argument not found)
blade q disk device
# 查询指定实验的点击次数
[root@master ~]# blade q jvm c6b266d13ce72d13
{"code":63064,"success":false,"error":"`http://127.0.0.1:34659/sandbox/chaosblade/module/http/chaosblade/status?suid=c6b266d13ce72d13`: http cmd failed, err: Get \"http://127.0.0.1:34659/sandbox/chaosblade/module/http/chaosblade/status?suid=c6b266d13ce72d13\": dial tcp 127.0.0.1:34659: connect: connection refused"}

7、blade revoke

帮助文档

blade prepare 是在目标 Pod(或容器)中 注入 ChaosBlade Agent(混沌执行代理) 的过程

blade revoke回收这个代理资源、清除标记和注入内容 的过程。

[root@master ~]# blade revoke -h
Undo chaos engineering experiment preparationUsage:blade revoke 
http://www.dtcms.com/a/415347.html

相关文章:

  • 青蛙跳台阶的问题引出的算法分析
  • 洛谷P1045 [NOIP 2003 普及组] 麦森数
  • 网站怎么管理维护wordpress主题模板制作教程
  • 做一个企业网站设计成都有哪些网站建设的公司
  • XCOSnTh单片机的IO口
  • 广东网站设计域名后面wordpress
  • 初识c语言————位运算符
  • 南充做网站的公司网络架构师证书
  • Appinventor笔记5-列表块
  • 天津做网站印标帝国手机网站怎么做
  • 单位网站建设有机房吗在线网站模板
  • 手写MyBatis第79弹:MyBatis二级缓存事务一致性:解决脏读与缓存一致性难题
  • TENGJUN-4极反向沉板耳机插座:JA05-BPD011-A;技术解析
  • Raft 算法深度解析:角色、选举、日志复制与分区处理优化
  • Linux进程(3)
  • 大型建设网站自己动手制作网站
  • 濮阳做公司网站青羊区城乡建设网站
  • 版式设计模板网站wordpress 获取文章
  • 操作系统页面置换算法FIFO——Belady异常与一个简单案例
  • 网站开发定制方案企业网店推广运营策略
  • 杭州设计企业网站高端公司游戏网站开发试验报告
  • React Native:使用vite创建react项目并熟悉react语法
  • LazyLLM 学习
  • 服饰 公司 网站建设新会网页制作公司
  • 做网站开发的营业执照电商货源网站大全
  • Redis 主从同步:原理、配置与实战优化
  • 什么是网站反链企业建设网站风险
  • 毕业设计开题报告网站开发深圳哪家网站设计比较好
  • 常用的Python项目管理工具
  • 网站建设设计技术方案模板linux 下启动 wordpress