警告
本文最后更新于 2021-12-15 11:15,文中内容可能已过时。
1. 部署被注入故障的服务
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
| apiVersion: apps/v1
kind: Deployment
metadata:
name: web-show
labels:
app: web-show
spec:
replicas: 1
selector:
matchLabels:
app: web-show
template:
metadata:
labels:
app: web-show
spec:
containers:
- name: web-show
image: pingcap/web-show
imagePullPolicy: Always
command:
- /usr/local/bin/web-show
- --target-ip=$(targetIP)
env:
- name: targetIP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
ports:
- name: web-port
containerPort: 8081
hostPort: 8081
---
apiVersion: v1
kind: Service
metadata:
name: web-show
labels:
app: web-show
spec:
type: NodePort
ports:
- name: web
targetPort: web-port
port: 8081
selector:
app: web-show
|
2.查看web-show服务
3. 准备故障注入清单文件
给web-show pod注入1分钟的30ms网络延迟
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| apiVersion: chaos-mesh.org/v1alpha1
kind: NetworkChaos
metadata:
name: web-show-network-delay
spec:
# 指定的动作,延迟
action: delay
# 指定生效的范围,即对哪些pod进行故障注入
selector:
namespaces:
- default
labelSelectors:
app: web-show
# 对selector选出的pod进行更细粒度的控制
mode: one
# 增加30ms延迟
delay:
latency: 30ms
# 故障持续时间
duration: 1m
|
one(表示随机选出一个符合条件的 Pod)
all(表示选出所有符合条件的 Pod)
fixed(表示选出指定数量且符合条件的 Pod)
fixed-percent(表示选出占符合条件的 Pod 中指定百分比的 Pod)
random-max-percent(表示选出占符合条件的 Pod 中不超过指定百分比的 Pod)
4.最终效果