当前位置:网站首页>[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
边栏推荐
- Simple use of Xray
- Reading notes of pyramid principle
- QT charts use (rewrite qchartview to realize some custom functions)
- Interpretation of MySQL optimization principle
- Data analysis methodology and previous experience summary 2 [notes dry goods]
- Un salaire annuel de 50 W Ali P8 vous montrera comment passer du test
- Personal deduction topic classification record
- Mountaineering team (DFS)
- Frequently Asked Coding Problems
- Recommended by Alibaba P8, the test coverage tool - Jacobo is very practical
猜你喜欢

ncs成都新電面試經驗

Greenplum6.x搭建_环境配置

NCS Chengdu New Electric interview Experience

Greenplum6.x监控软件搭建

How to realize sliding operation component in fast application

Screen automatically generates database documents

Troublesome problem of image resizing when using typora to edit markdown to upload CSDN

Markdown编辑器Editor.md插件的使用

JS operation

Explain Huawei's application market in detail, and gradually reduce 32-bit package applications and strategies in 2022
随机推荐
Simulation volume leetcode [general] 1609 Parity tree
Implement custom memory allocator
How to realize sliding operation component in fast application
实现自定义内存分配器
Mountaineering team (DFS)
Isomorphic C language
cmake命令行使用
Test pits - what test points should be paid attention to when adding fields to existing interfaces (or database tables)?
Count the number of words in the string c language
Frequently Asked Coding Problems
RuntimeError: Calculated padded input size per channel: (1 x 1). Kernel size: (5 x 5). Kernel size c
Cmake command line use
Problems encountered in the use of go micro
Greenplum6.x-版本变化记录-常用手册
Nanjing commercial housing sales enabled electronic contracts, and Junzi sign assisted in the online signing and filing of housing transactions
求有符号数的原码、反码和补码【C语言】
Panel display technology: LCD and OLED
Unity shader beginner's Essentials (I) -- basic lighting notes
NCS Chengdu Xindian interview experience
ChaosBlade:混沌工程简介(一)