<>节点 CPU 负载

目标: 指定一个节点,做 CPU 负载 80% 实验

node_cpu_load.yaml内容:
apiVersion: chaosblade.io/v1alpha1 kind: ChaosBlade metadata: name: cpu-load
spec: experiments: - scope: node target: cpu action: fullload desc: "increase
node cpu load by names" matchers: - name: names value: - "docker20" - name: cpu-
percentvalue: - "80" 选择一个节点,修改 node_cpu_load.yaml 中的 names 值。 执行命令: $ kubectl
apply-f node_cpu_load.yaml 查看状态 执行 kubectl get blade cpu-load -o json
命令,查看实验状态。 查看结果 进入该 Node 节点,使用 top 命令可以看到该节点 CPU 达到预期效果。 停止 执行命令:kubectl delete-
f node_cpu_load.yaml 或者直接删除 blade 资源:kubectl delete blade cpu-load 节点网络相关场景
操作前,请先登录 node 节点,使用 ifconfig 命令查看网卡信息,不是所有系统默认的网卡名称都是 eth0
<>节点网络延迟场景

目标: 指定节点的本地 32436 端口添加 3000 毫秒访问延迟,延迟时间上下浮动 1000 毫秒
选择一个节点,修改 delay_node_network_by_names.yaml 中的 names 值 对 docker20 节点本地端口 32436
访问丢包率 100%。 delay_node_network_by_names.yaml 内容: apiVersion:
chaosblade.io/v1alpha1kind: ChaosBlade metadata: name: delay-node-network-by-
namesspec: experiments: - scope: node target: network action: delay desc:
"delay node network loss" matchers: - name: names value: ["docker20"] - name:
interfacevalue: ["ens33"] - name: local-port value: ["32436"] - name: time value
: ["3000"] - name: offset value: ["1000"] 执行命令: $ kubectl apply -f
delay_node_network_by_names.yaml 查看状态 执行 kubectl get blade delay-node-network-by
-names -o json 命令,查看实验状态。 查看结果 # 从实验节点访问 Guestbook $ time echo "" | telnet
192.168.1.129 32436 Trying 192.168.1.129... Connected to 192.168.1.129. Escape
character is '^]'. Connection closed by foreign host. echo "" 0.00s user 0.00s
system 35% cpu 0.003 total telnet 192.168.1.129 32436 0.01s user 0.00s system
0% cpu 3.248 total 停止 执行命令:kubectl delete-f delay_node_network_by_names.yaml
或者直接删除 blade 资源:kubectl delete blade delay-node-network-by-names
<>节点网络丢包场景

目标: 指定节点的 32436 端口注入丢包率 100% 的故障
选择一个节点,修改 loss_node_network_by_names.yaml 中的 names 值。
loss_node_network_by_names.yaml 内容:apiVersion: chaosblade.io/v1alpha1 kind:
ChaosBlademetadata: name: loss-node-network-by-names spec: experiments: - scope:
nodetarget: network action: loss desc: "node network loss" matchers: - name:
namesvalue: ["docker20"] - name: percent value: ["100"] - name: interface value:
["ens33"] - name: local-port value: ["32436"] 执行命令,开始: $ kubectl apply -f
loss_node_network_by_names.yaml 查看状态 执行 kubectl get blade loss-node-network-by-
names-o json 命令,查看状态。 查看结果 该端口为 Guestbook nodeport
的端口,访问实验端口无响应,但是访问未开启实验的端口可以正常使用:# 获取节点 IP $ kubectl get node -o wide NAME
STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION
CONTAINER-RUNTIME docker20 Ready worker 3d16h v1.17.6 192.168.1.129 <none>
Ubuntu 18.04.4 LTS 4.15.0-101-generic docker://19.3.11 kk Ready controlplane,
etcd,worker 4d16h v1.17.6 192.168.4.210 <none> Ubuntu 18.04.4 LTS 4.15.0-101-
generic docker://19.3.11 # 从操作节点访问 Guestbook - 无法访问 $ telnet 192.168.1.129
32436 Trying 192.168.1.129... telnet: connect to address 192.168.1.129:
Operation timed outtelnet: Unable to connect to remote host # 从非操作节点访问
Guestbook - 正常访问 $ telnet 192.168.4.210 32436 Trying 192.168.4.210... Connected
to 192.168.4.210. Escape character is '^]'. 同样也可以直接从浏览器访问地址验证。 停止 执行命令:kubectl
delete-f loss_node_network_by_names.yaml 或者直接删除 blade 资源:kubectl delete blade
loss-node-network-by-names
<>节点域名访问异常场景

目标: 本实验通过修改 Node 的 hosts,篡改域名地址映射,模拟 Pod 内域名访问异常场景。
选择一个节点,修改 dns_node_network_by_names.yaml 中的 names 值。
dns_node_network_by_names.yaml 内容:apiVersion: chaosblade.io/v1alpha1 kind:
ChaosBlademetadata: name: dns-node-network-by-names spec: experiments: - scope:
nodetarget: network action: dns desc: "dns node network by names" matchers: -
name: names value: - "docker20" - name: domain value: ["www.baidu.com"] - name:
ipvalue: ["10.0.0.1"] 执行命令,开始实验: $ kubectl apply -f
dns_node_network_by_names.yaml 查看实验状态 执行 kubectl get blade dns-node-network-by-
names-o json 命令,查看实验状态。 查看实验结果 # 进入实验 node $ ssh [email protected] # Ping
www.baidu.com $ ping www.baidu.com # 无响应 可以看到 Node 的 /etc/hosts 文件被修改,模拟了 dns
解析异常的场景。 停止 执行命令:kubectl delete-f dns_node_network_by_names.yaml 或者直接删除 blade
资源:kubectl delete blade dns-node-network-by-names

技术
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:766591547
关注微信