当前位置:网站首页>[chaosblade: node CPU load, node network delay, node network packet loss, node domain name access exception]
[chaosblade: node CPU load, node network delay, node network packet loss, node domain name access exception]
2022-07-07 08:59:00 【Fairy Xiao Xiaole】
node CPU load
The goal is : Specify a node , do CPU load 80% experiment
node_cpu_load.yaml Content :
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"
Select a node , modify node_cpu_load.yaml Medium names value .
Carry out orders :
$ kubectl apply -f node_cpu_load.yaml
Check the status
perform kubectl get blade cpu-load -o json command , Check the experiment status .
View results
Access to the Node node , Use top Command can see this node CPU Achieve the desired effect .
stop it
Carry out orders :kubectl delete -f node_cpu_load.yaml
Or delete blade resources :kubectl delete blade cpu-load
Node network related scenarios
Before operation , Please log in first node node , Use ifconfig Command to view network card information , Not all system default network card names are eth0
Node network delay scenario
The goal is : Specify the local of the node 32436 Port add 3000 Millisecond access delay , The delay time fluctuates up and down 1000 millisecond
Select a node , modify delay_node_network_by_names.yaml Medium names value
Yes docker20 Node local port 32436 Access packet loss rate 100%.
delay_node_network_by_names.yaml Content :
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"]
Carry out orders :
$ kubectl apply -f delay_node_network_by_names.yaml
Check the status
perform kubectl get blade delay-node-network-by-names -o json command , Check the experiment status .
View results
# Access... From the experiment node 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
stop it
Carry out orders :kubectl delete -f delay_node_network_by_names.yaml
Or delete blade resources :kubectl delete blade delay-node-network-by-names
Node network packet loss scenario
The goal is : Of the specified node 32436 Packet loss rate of port injection 100% Failure of
Select a node , modify loss_node_network_by_names.yaml Medium names value .
loss_node_network_by_names.yaml Content :
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"]
Carry out orders , Start :
$ kubectl apply -f loss_node_network_by_names.yaml
Check the status
perform kubectl get blade loss-node-network-by-names -o json command , Check the status .
View results
The port is Guestbook nodeport The port of , No response when accessing the experimental port , However, the port that accesses the unopened experiment can be used normally :
# Access to the node 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
# Access from the operation node Guestbook - cannot access
$ 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
# Access from non operational nodes Guestbook - Normal visit
$ telnet 192.168.4.210 32436
Trying 192.168.4.210...
Connected to 192.168.4.210.
Escape character is '^]'.
You can also access address verification directly from the browser .
stop it
Carry out orders :kubectl delete -f loss_node_network_by_names.yaml
Or delete blade resources :kubectl delete blade loss-node-network-by-names
Node domain name access exception scenario
The goal is : This experiment is modified Node Of hosts, Tamper with domain name address mapping , simulation Pod Abnormal scenario of internal domain name access .
Select a node , modify dns_node_network_by_names.yaml Medium names value .
dns_node_network_by_names.yaml Content :
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"]
Carry out orders , Start the experiment :
$ kubectl apply -f dns_node_network_by_names.yaml
Check the experiment status
perform kubectl get blade dns-node-network-by-names -o json command , Check the experiment status .
View experiment results
# Enter the experiment node
$ ssh [email protected]
# Ping www.baidu.com
$ ping www.baidu.com
# No response
You can see Node Of /etc/hosts The document was modified , Simulated dns Analyze abnormal scenarios .
stop it
Carry out orders :kubectl delete -f dns_node_network_by_names.yaml
Or delete blade resources :kubectl delete blade dns-node-network-by-names
边栏推荐
- Greenplum 6.x build_ Environment configuration
- Count the number of words C language
- Screen automatically generates database documents
- [wechat applet: cache operation]
- 求有符号数的原码、反码和补码【C语言】
- 如何统计项目代码行数
- Frequently Asked Coding Problems
- Enterprise manager cannot connect to the database instance
- 面板显示技术:LCD与OLED
- Shell script for changing the current folder and the file date under the folder
猜你喜欢
Digital triangle model acwing 275 Pass a note
Ppt template and material download website (pure dry goods, recommended Collection)
LeetCode 736. LISP syntax parsing
Recommended by Alibaba P8, the test coverage tool - Jacobo is very practical
Digital triangle model acwing 1027 Grid access
Routing information protocol rip
Greenplum6.x搭建_环境配置
Markdown编辑器Editor.md插件的使用
【Istio Network CRD VirtualService、Envoyfilter】
Platformization, a fulcrum of strong chain complementing chain
随机推荐
ESP32-ULP协处理器低功耗模式RTC GPIO中断唤醒
Esp32-ulp coprocessor low power mode RTC GPIO interrupt wake up
Gson converts the entity class to JSON times declare multiple JSON fields named
Problems encountered in the use of go micro
Analysis of abnormal channel number information before and after AGC re signature service
Category of IP address
Markdown编辑器Editor.md插件的使用
Frequently Asked Coding Problems
Golang etcdv3 reports an error. The attribute in grpc does not exist
Nanjing commercial housing sales enabled electronic contracts, and Junzi sign assisted in the online signing and filing of housing transactions
C语言指针(中篇)
ChaosBlade:混沌工程简介(一)
外部中断实现按键实验
ncs成都新電面試經驗
Oracle makes it clear at one time that a field with multiple separators will be split into multiple rows, and then multiple rows and columns. Multiple separators will be split into multiple rows, and
Simulation volume leetcode [general] 1705 The maximum number of apples to eat
JS operation
[step on the pit] Nacos registration has been connected to localhost:8848, no available server
串口實驗——簡單數據收發
Common operating commands of Linux