当前位置:网站首页>【ChaosBlade:节点 CPU 负载、节点网络延迟、节点网络丢包、节点域名访问异常】
【ChaosBlade:节点 CPU 负载、节点网络延迟、节点网络丢包、节点域名访问异常】
2022-07-07 06:20:00 【仙女肖消乐】
节点 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-percent
value:
- "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/v1alpha1
kind: ChaosBlade
metadata:
name: delay-node-network-by-names
spec:
experiments:
- scope: node
target: network
action: delay
desc: "delay node network loss"
matchers:
- name: names
value: ["docker20"]
- name: interface
value: ["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: ChaosBlade
metadata:
name: loss-node-network-by-names
spec:
experiments:
- scope: node
target: network
action: loss
desc: "node network loss"
matchers:
- name: names
value: ["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 out
telnet: 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: ChaosBlade
metadata:
name: dns-node-network-by-names
spec:
experiments:
- scope: node
target: network
action: dns
desc: "dns node network by names"
matchers:
- name: names
value:
- "docker20"
- name: domain
value: ["www.baidu.com"]
- name: ip
value: ["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
边栏推荐
- Other 7 features of TCP [sliding window mechanism ▲]
- Skills that testers must know: Selenium's three waiting ways are interpreted clearly
- Tronapi wave field interface - source code without encryption - can be opened twice - interface document attached - package based on thinkphp5 - detailed guidance of the author - July 6, 2022 - Novice
- 使用AGC重签名服务前后渠道号信息异常分析
- 测试人一定要会的技能:selenium的三种等待方式解读,清晰明了
- Analysis of abnormal channel number information before and after AGC re signature service
- 模拟卷Leetcode【普通】1705. 吃苹果的最大数目
- Routing information protocol rip
- Find the original code, inverse code and complement of signed numbers [C language]
- 测试踩坑 - 当已有接口(或数据库表中)新增字段时,都需要注意哪些测试点?
猜你喜欢
[Yugong series] February 2022 U3D full stack class 007 - production and setting skybox resources
[Yu Yue education] basic reference materials of electrical and electronic technology of Nanjing Institute of information technology
NCS Chengdu Xindian interview experience
ESP32-ULP协处理器低功耗模式RTC GPIO中断唤醒
Rapid integration of authentication services - harmonyos platform
详解华为应用市场2022年逐步减少32位包体上架应用和策略
oracle一次性说清楚,多种分隔符的一个字段拆分多行,再多行多列多种分隔符拆多行,最终处理超亿亿。。亿级别数据量
Other 7 features of TCP [sliding window mechanism ▲]
Calf problem
Novice entry SCM must understand those things
随机推荐
2022-06-30 Unity核心8——模型导入
Test pits - what test points should be paid attention to when adding fields to existing interfaces (or database tables)?
opencv之图像分割
Greenplum6.x重新初始化
LeetCode 736. LISP syntax parsing
使用AGC重签名服务前后渠道号信息异常分析
Greenplum 6.x version change record common manual
leetcode135. Distribute candy
redis故障处理 “Can‘t save in background: fork: Cannot allocate memory“
如何在图片的目标中添加目标的mask
Image segmentation in opencv
ncs成都新电面试经验
数据库存储---表分区
Un salaire annuel de 50 W Ali P8 vous montrera comment passer du test
Tronapi-波场接口-源码无加密-可二开--附接口文档-基于ThinkPHP5封装-作者详细指导-2022年7月6日-新手快速上手-可无缝升级tp6版本
Other 7 features of TCP [sliding window mechanism ▲]
Greenplum 6.x build_ Environment configuration
JS的操作
联想混合云Lenovo xCloud:4大产品线+IT服务门户
leetcode134. gas station