模拟 Azure 故障

    AzureChaos 能够帮助你模拟指定的 Azure 实例发生故障的情景。目前,AzureChaos 支持以下类型的故障:

    • VM Stop:使指定的 VM 实例进入停止状态。
    • VM Restart:重启指定的 VM 实例。

    为了方便地连接 Azure 集群,你可以提前创建一个 Kubernetes Secret 文件存储认证相关信息。

    以下是一个 Secret 文件示例:

    • name 表示 Kubernetes Secret 对象的名字。
    • namespace 表示 Kubernetes Secret 对象的命名空间。
    • client_id 存储 Azure 应用注册的应用程序(客户端)ID。
    • client_secret 存储 Azure 应用注册的应用程序(客户端)的机密值。
    • tenant_id 存储 Azure 应用注册的目录(租户)ID。 client_idclient_secret 的获取请参考机密客户端应用程序

    注意请确保 Secret 文件中的应用注册已作为参与者或所有者添加到指定 VM 实例的访问控制(IAM)中。 :::

    在使用 Dashboard 方式创建实验之前,请确保:

    1. 已经安装了 Dashboard。

    2. 可以通过 kubectl port-forward 方式访问 Dashboard:

      1. kubectl port-forward -n chaos-testing svc/chaos-dashboard 2333:2333

      接着你可以在浏览器通过 http://localhost:2333 访问 Dashboard。

    1. 单击实验页面中的新的实验按钮进行创建实验。

      img

    2. 选择目标处选择 Azure 故障,并选择具体行为,例如 VM STOP

    3. 提交实验。

    1. 将实验配置写入到文件 azurechaos-vm-stop.yaml 中,内容如下所示:

      依据此配置示例,Chaos Mesh 将向指定的 VM 实例中注入 vm-stop 故障,该 VM 实例将在 5 分钟时间内处于不可用的状态。

      如需查看更多关于停止 VM 实例的信息,可以参考。

      1. kubectl apply -f azurechaos-vm-stop.yaml
    1. 将实验配置写入到文件 中,内容如下所示:

      依据此配置示例,Chaos Mesh 将向指定的 VM 实例中注入 vm-restart 故障,该 VM 实例将重启一次。

      如需查看更多关于重启 VM 实例的信息,可以参考。

    2. 使用 kubectl 创建实验,命令如下:

      1. kubectl apply -f azurechaos-vm-restart.yaml
    1. 将实验配置写入到文件 azurechaos-disk-detach.yaml 中,内容如下所示:

      依据此配置示例,Chaos Mesh 将向指定的 VM 实例中注入 disk-detach 故障,使该 VM 实例在 5 分钟内与指定数据磁盘分离。

      查看更多关于分离 Azure 数据磁盘的消息,可以参考。

    2. 使用 kubectl 创建实验,命令如下:

      1. kubectl apply -f azurechaos-disk-detach.yaml