15、深入探索 Azure Chaos Studio:故障注入与实验实践

深入探索 Azure Chaos Studio:故障注入与实验实践

1. Azure Chaos Studio 简介

Azure Chaos Studio 于 2021 年 11 月进入公开预览阶段,它是一项服务,无需用户先部署自己的基础设施即可运行。其底层基于开源的 Chaos Mesh 解决方案,通常以 Kubernetes 架构运行。

2. 启用 Azure Chaos Studio

要在订阅中使用 Azure Chaos Studio,需要完成以下步骤:
1. 确保“Microsoft.Chaos”Azure 资源提供程序在订阅中已启用(注册)。打开 Azure 门户,搜索“Subscriptions”。
2. 选择要启用 Azure Chaos Studio 的订阅,在详细面板中,选择“Settings”窗格下的“Resource Providers”,搜索“Chaos”,选择“Microsoft.Chaos”并点击“Register”,等待状态列显示“Registered”。
3. 现在可以开始在订阅中使用 Azure Chaos Studio。从 Azure 门户搜索“Chaos Studio”。
4. 选择“Onboard Resources”以启用用于混沌测试的资源,这将进入面板的“Targets”部分。
5. 可以过滤特定的订阅或资源组(或两者),然后选择要用作目标的 Azure 资源。

下面是启用 Azure Chaos Studio 的流程图:

graph TD;
    A[打开 Azure 门户] --> B[搜索 Subscriptions];
    B --> C[选择订阅];
    C --> D[选择 Resource Providers];
    D --> E[搜索 Chaos];
    E --> F[选择 Microsoft.Chaos 并注册];
    F --> G[搜索 Chaos Studio];
    G --> H[选择 Onboard Resources];
    H --> I[过滤并选择资源];
3. 将 Azure VM 加入到 Chaos Studio

以下是将 Azure VM 加入到 Chaos Studio 的详细步骤:
1. 选择目标虚拟机,如 UbuntuVM1,选择后会解锁“Enable Targets”菜单选项。
2. 对于虚拟机,建议选择基于代理的目标。
3. 这将重定向到“Enable Agent-based targets”页面,需要提供额外的配置参数,包括用户管理标识(User-Managed Identity)和应用程序洞察资源(Application Insights)。
- 创建用户管理标识 :从 Azure 门户搜索“Managed Identities”,创建一个新的标识,定义资源组、区域(确保与目标资源运行的区域相同)和唯一名称,点击“Review + Create”确认。
- 将用户管理标识分配给虚拟机 :从 Azure 门户浏览到“Virtual Machines”,选择 UbuntuVM1 资源,在设置中找到“Identity”,导航到“User Assigned”,点击“Add”,选择之前创建的用户管理标识,再点击“Add”确认更改。
- 创建应用程序洞察资源 :从 Azure 门户搜索“Application Insights”,创建一个新实例,提供必要的信息,如 Azure 资源组、应用程序洞察服务名称、部署区域(与目标资源运行区域相同)以及用于存储日志信息的 Log Analytics 工作区,点击“Review and Create”确认创建并等待服务部署完成。
4. 完成上述先决条件设置后,返回 Chaos Studio,重复选择目标并为基于代理的目标场景启用它。
5. 重定向到“Enable agent-based targets”页面后,完成管理标识和应用程序洞察的设置。
6. 点击“Review + Enable”并在下一步确认。
7. 从 Azure 门户右上角的通知窗格等待代理部署成功的更新通知消息。
8. 切换回 Azure 门户中的 Chaos Studio 面板,所选虚拟机的“Agent-based”状态将显示为“Enabled”。
9. 注意所选虚拟机的“Manage actions”,这里可以找到不同的预定义基于代理的 Azure 混沌操作。
10. 从 Chaos Studio 面板选择“Experiments”并创建一个新实验,完成必要的参数设置,如资源组、实验名称(如 CPUStressTest)和 Azure 区域(与目标资源运行区域相同)。
11. 点击“Next”打开实验设计器,为步骤 1 和分支 1 提供描述性名称,点击“Add Action”并选择“Add Fault”,从故障下拉列表中选择“CPU Pressure”,设置持续时间为 10 分钟,压力级别为 99%。
12. 点击“Next”指定此操作和故障模拟的目标 VM,选择之前使用的 Ubuntu VM。
13. 点击“Review and Create”确认实验创建。
14. 为了让混沌实验与目标资源交互,需要从基于角色的访问控制(RBAC)级别授予读取权限。选择所需的级别(如单个 UbuntuVM1 资源),从设置面板中选择“IAM (Access Control)”,点击“+Add”并选择“Add Role Assignment”,从角色列表中选择“Reader”,点击“Add Members”,搜索之前创建的混沌实验名称,点击“Select”,然后点击“Review and Assign”等待权限分配完成。
15. 返回 Chaos Studio,选择实验并打开之前创建的实验,点击“Start”启动 CPU 压力混沌实验。
16. 验证整个过程的状态,当状态切换到“Running”时,点击项目行右侧的“Details”链接查看运行中的混沌实验的更多实时详细信息。
17. 也可以从虚拟机监控本身验证 CPU 负载,导航到虚拟机,打开其详细面板,导航到“Monitoring”,注意第一个图表中的 CPU(平均)负载,点击图表将打开此资源的更详细“Metrics view”。

以下是将 Azure VM 加入到 Chaos Studio 的步骤表格:
|步骤|操作|
|----|----|
|1|选择目标虚拟机|
|2|选择基于代理的目标|
|3|提供配置参数|
|4|创建用户管理标识|
|5|分配用户管理标识给虚拟机|
|6|创建应用程序洞察资源|
|7|返回 Chaos Studio 并启用目标|
|8|完成设置并确认|
|9|等待代理部署通知|
|10|查看状态和操作|
|11|创建实验|
|12|设置实验参数|
|13|指定目标 VM|
|14|确认实验创建|
|15|授予 RBAC 权限|
|16|启动实验|
|17|验证状态和负载|

通过以上步骤,我们可以成功将 Azure VM 加入到 Chaos Studio 并进行混沌实验。接下来将介绍如何将 AKS 集群加入到 Chaos Studio。

深入探索 Azure Chaos Studio:故障注入与实验实践

4. 将 AKS 集群加入到 Chaos Studio

若要将 AKS 集群加入到 Chaos Studio,可按以下步骤操作:
1. 安装 Chaos Mesh 故障 :与虚拟机场景不同,在通过 Azure Chaos Studio 与 AKS 集群交互之前,需要先将 Chaos Mesh 故障安装到集群资源中。可以在 Azure Cloud Shell 中运行以下命令来完成此操作:
- 打开 Azure Cloud Shell 并选择 Bash 选项。
- 建立与 AKS 集群的连接:

az aks get-credentials -g $RESOURCE_GROUP -n $CLUSTER_NAME
其中,`$RESOURCE_GROUP` 和 `$CLUSTER_NAME` 需要替换为实际部署的 AKS 环境的值。
- 安装 Chaos Mesh 包:
helm repo add chaos-mesh https://charts.chaos-mesh.org
helm repo update
kubectl create ns chaos-testing
helm install chaos-mesh chaos-mesh/chaos-mesh --namespace=chaos-testing --set chaosDaemon.runtime=containerd --set chaosDaemon.socketPath=/run/containerd/containerd.sock
- 验证 Chaos Mesh PODs 是否成功运行:
kubectl get pods --namespace chaos-testing -l app.kubernetes.io/instance=chaos-mesh
  1. 选择目标并启用
    • 从 Azure 门户浏览到 Chaos Studio(预览版),选择“Targets”,识别 AKS 资源。
    • 由于是直接连接到 Kubernetes 集群的服务层,这里基于代理的选项不适用。在顶部菜单中选择“Enable Targets”/“Enable Service - Direct targets (All Resources)”,等待组件安装的通知。
  2. 创建实验
    • 从 Chaos Studio 浏览到“Experiments”,点击“Create Experiment”,完成 Azure 所需的设置,包括订阅、资源组、实验名称和创建位置。
    • 点击“Next”导航到实验设计器,为步骤和分支提供描述性名称,例如“Simulate POD Failure”和“Branch 1: AKS Outage”。
    • 在“Fault”部分,点击“+Add Action”/“Add Fault”,从可用的故障列表中选择“AKS Chaos Mesh Pod Chaos”,用于模拟 AKS 集群内的 POD 故障。指定持续时间(以分钟为单位),并完成 jsonSpec 字段。需要将 Chaos Mesh 的 YAML 语法转换为 JSON 语法,示例如下:
action: pod-failure
mode : all
duration: '600s'
selector:
  namespaces:
    - default

转换为 JSON 格式:

{
    "action": "pod-failure",
    "mode": "all",
    "duration": "600s",
    "selector": {
        "namespaces": [
            "default"
        ]
    }
}
- 点击“Next: Target Resources”指定 AKS 资源。
- 点击“Create”确认实验创建。
  1. 设置权限
    • 由于此实验会关联一个新创建的系统分配的托管标识,为了让 Chaos Studio 与 AKS 集群交互,需要在 AKS 集群上为此系统分配的托管标识指定正确的权限(IAM)。
    • 导航到 Azure 门户中的 AKS 服务资源,选择“Access Control (IAM)”。
    • 点击“+Add/Add Role Assignment”,在角色列表中搜索“Azure Kubernetes Service Cluster Admin Role”并选择它,点击“Next”。
    • 点击“+Members”部分,搜索使用的实验名称(例如“aks - first - experiment”)。
    • 点击“Review + Create”确认创建,等待权限定义完成。
  2. 触发实验
    • 导航回 Azure Chaos Studio 并选择“Experiments”,选择刚刚创建的实验,点击“Start Experiment”并确认。
    • 点击实验名称查看更详细的过程视图,等待过程完成或点击“Details”验证有关正在进行的过程的更多信息。

以下是将 AKS 集群加入到 Chaos Studio 的步骤流程图:

graph TD;
    A[打开 Azure Cloud Shell] --> B[连接到 AKS 集群];
    B --> C[安装 Chaos Mesh 包];
    C --> D[验证 PODs 运行];
    D --> E[浏览到 Chaos Studio 选择 Targets];
    E --> F[选择 AKS 资源并启用];
    F --> G[创建实验];
    G --> H[设计实验内容];
    H --> I[指定目标资源];
    I --> J[确认实验创建];
    J --> K[设置 IAM 权限];
    K --> L[触发实验];

以下是将 AKS 集群加入到 Chaos Studio 的步骤表格:
|步骤|操作|
|----|----|
|1|安装 Chaos Mesh 故障|
|2|选择目标并启用|
|3|创建实验|
|4|设置实验参数|
|5|指定目标资源|
|6|确认实验创建|
|7|设置 IAM 权限|
|8|触发实验|

通过以上步骤,我们可以成功将 AKS 集群加入到 Chaos Studio 并进行故障模拟实验。建议继续尝试 Azure 虚拟机和 AKS 以及其他 Azure 资源(如 Azure Key Vault 密钥存储、Azure 网络安全组)的其他可用场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值