模拟 AWS 故障
本文档介绍如何使用 Chaos Mesh 来模拟 AWS 故障。
AWSChaos 能够帮助你模拟指定的 AWS 实例发生故障的情景。目前,AWSChaos 支持以下类型的故障:
- EC2 Stop: 使指定的 EC2 实例进入停止状态。
- Detach Volume: 从指定的 EC2 实例中卸载存储卷。
为了方便地连接 AWS 集群,你可以提前创建一个 Kubernetes Secret 文件存储认证相关信息。
以下是一个 文件示例:
- name 表示 Kubernetes Secret 对象的名字。
- namespace 表示 Kubernetes Secret 对象的命名空间。
- aws_access_key_id 存储 AWS 集群的访问密钥 ID。
- aws_secret_access_key 存储 AWS 集群的秘密访问密钥。
注意
在使用 Dashboard 方式创建实验之前,请确保:
已经安装了 Dashboard。
可以通过 kubectl port-forward 方式访问 Dashboard:
kubectl port-forward -n chaos-testing svc/chaos-dashboard 2333:2333
接着你可以在浏览器通过 http://localhost:2333访问 Dashboard 。
在选择目标处选择 Aws 故障,并选择具体行为,例如 Ec2 Stop。
提交实验。
将实验配置写入到文件
awschaos-ec2-stop.yaml
中,内容如下所示:依据此配置示例,Chaos Mesh 将向指定的 EC2 实例中注入 ec2-stop 故障,使该 EC2 实例将在 5 分钟时间内处于不可用的状态。
如需查看更多关于停止 EC2 实例的信息,可以参考 。
使用 kubectl 创建实验,命令如下:
kubectl apply -f awschaos-ec2-stop.yaml
-
依据此配置示例,Chaos Mesh 将向指定的 EC2 实例中注入 ec2-restart 故障,使该 EC2 实例将重启一次。
如需查看更多关于重启 EC2 实例的信息,可以参考重启实例。
使用 kubectl 创建实验,命令如下:
kubectl apply -f awschaos-ec2-restart.yaml
将实验配置写入到文件 中,内容如下所示:
依据此配置示例,Chaos Mesh 将向指定的 EC2 实例中注入 detach-volume 故障,使该 EC2 实例在 5 分钟内与指定存储卷分离。
查看更多关于分离 Amazon EBS 卷的消息, 可以参考。
使用 kubectl 创建实验,命令如下:
kubectl apply -f awschaos-detach-volume.yaml
下表介绍以上 YAML 配置文件中的字段。