Chaos Mesh | 01 | Chaos Mesh简介
创始人
2025-05-29 07:54:05

目录

  • 1 Chaos Mesh 简介
  • 2 Chaos Mesh 的核心优势
  • 3 Chaos Mesh架构
  • 4 故障注入类型
  • 5 混沌实验场景
  • 6 安全

1 Chaos Mesh 简介

参考地址:https://chaos-mesh.org/zh/docs/

Chaos Mesh 是一个开源的云原生混沌工程平台,提供丰富的故障模拟类型,具有强大的故障场景编排能力,方便用户在开发测试中以及生产环境中模拟现实世界中可能出现的各类异常,帮助用户发现系统潜在的问题。

2 Chaos Mesh 的核心优势

  • 核心能力稳固:Chaos Mesh 起源于 TiDB 的核心测试平台,发布初期即继承了大量 TiDB 已有的测试经验。
  • 被充分验证:Chaos Mesh 被众多公司以及组织所使用,例如腾讯和美团等;同时被用于众多知名分布式系统的测试体系中,例如 Apache
    APISIX 和 RabbitMQ 等。
  • 系统易用性强:图形化操作和基于 Kubernetes 的使用方式,充分利用了自动化能力。
  • 云原生:Chaos Mesh 原生支持 Kubernetes 环境,提供了强悍的自动化能力。
  • 丰富的故障模拟场景:Chaos Mesh 几乎涵盖了分布式测试体系中基础故障模拟的绝大多数场景。
  • 灵活的实验编排能力:用户可以通过平台设计自己的混沌实验场景,场景可包含多个混沌实验编排,以及应用状态检查等。
  • 安全性高:Chaos Mesh 具有多层次安全控制设计,提供高安全性。
  • 活跃的社区:Chaos Mesh 为全球知名开源混沌测试平台,CNCF 开源基金会孵化项目。
  • 强大的扩展能力:Chaos Mesh 为故障测试类型扩展和功能扩展提供了充分的扩展能力。

3 Chaos Mesh架构

  • Chaos Dashboard:Chaos Mesh 的可视化组件,提供了一套用户友好的 Web
    界面,用户可通过该界面对混沌实验进行操作和观测。同时,Chaos Dashboard 还提供了 RBAC 权限管理机制。
  • Chaos Controller Manager:Chaos Mesh 的核心逻辑组件,主要负责混沌实验的调度与管理。该组件包含多个
    CRD Controller,例如 Workflow Controller、Scheduler Controller 以及各类故障类型的
    Controller。
  • Chaos Daemon:Chaos Mesh 的主要执行组件。Chaos Daemon 以 DaemonSet 的方式运行,默认拥有
    Privileged 权限(可以关闭)。该组件主要通过侵入目标 Pod Namespace 的方式干扰具体的网络设备、文件系统、内核等。
    在这里插入图片描述

4 故障注入类型

  • 基础资源类型故障:
  • PodChaos:模拟 Pod 故障,例如 Pod 节点重启、Pod 持续不可用,以及特定 Pod 中的某些容器故障。
  • NetworkChaos:模拟网络故障,例如网络延迟、网络丢包、包乱序、各类网络分区。
  • DNSChaos:模拟 DNS 故障,例如 DNS 域名解析失败、返回错误 IP 地址。
  • HTTPChaos:模拟 HTTP 通信故障,例如 HTTP 通信延迟。
  • StressChaos:模拟 CPU 抢占或内存抢占场景。
  • IOChaos:模拟具体某个应用的文件 I/O 故障,例如 I/O 延迟、读写失败。
  • TimeChaos:模拟时间跳动异常。
  • KernelChaos:模拟内核故障,例如应用内存分配异常。
  • 平台类型故障:
  • AWSChaos:模拟 AWS 平台故障,例如 AWS 节点重启。
  • GCPChaos:模拟 GCP 平台故障,例如 GCP 节点重启。
  • 应用层故障:
  • JVMChaos:模拟 JVM 应用故障,例如函数调用延迟。

5 混沌实验场景

  • 编排串行混沌实验
  • 编排并行混沌实验
  • 支持状态检查步骤
  • 支持中途暂停混沌实验
  • 支持使用 YAML 文件定义和管理混沌实验场景
  • 支持通过Web UI 定义和管理混沌实验场景

6 安全

Chaos Mesh 通过 Kubernetes 原生的 RBAC(基于角色的权限控制)功能对权限进行管理。

用户可以根据实际的权限需求自由地创建多种 Role,然后绑定到用户名 Service Account 上,最后生成 Service Account 对应的 Token。用户使用该 Token 登陆 Dashboard,只能在该 Service Account 允许的权限范围内进行 Chaos 实验。

相关内容

热门资讯

鸟哥的Linux私房菜 She... 第十二章、学习 Shell Scripts https://linux.vbird.org/linu...
2分钟快速了解!全网最详细的性...  目录:导读 Redis 简介 Redis 优势 Redis与其他key-value存...
设计模式-02 4,创建型模式 4.2 工厂模式 4.2.1 概述 需求:设计一个咖啡店...
纠错码中的汉明码,NAND F...      纠错码是一种用在不可靠的或者噪音比较大的通信信道中用来控制数据传输错误的技术。这种技术的核...
【Java】P14 面向对象(... 类的封装性封装性高内聚与低耦合何为封装性如何封装get 与 set 方法案例 封装性 高内聚与低耦...
【FPGA】Xilinx Co... 功能描述 1、Rotate Rotate 实现的功能是坐标的旋转。 输入 X, Y, Phase 输...
【Pytorch】使用Pyto... 文章目录1. 题目描述2. 代码实现验证写在最后 1. 题目描述 在这个例子中网络结构如下所示&#...
client-go disco... 1. 概述 discovery包主要用来发现服务器支持的API组、版本和资源的方法,及...
[LeetCode周赛复盘] ... [LeetCode周赛复盘] 第 100 场双周赛20230318 一、本周周赛总结二、 [Easy...
Matlab基础教学入门 Matlab是一种非常强大的数学计算工具,广泛应用于科学和工程领域。本篇文章将介绍一些...
设计模式-02 4,创建型模式 4.2 工厂模式 4.2.1 概述 需求:设计一个咖啡店...
条款21:优先考虑使用std:... 让我们先对std::make_unique和std::make_shared做个铺垫。std::ma...
Leetcode 第四天 动态... 来源:力扣(LeetCode) 链接:htt...
MongoDB用户管理授权 文章目录1 角色类型2 注意事项3 给单个数据库授权4 给一个用户授权多个数据库5 其它命令 1 角...
下载、安装JDK、sublim... 直接官网下载,jdk8或者jdk11。配置环境变量:如果不配置环境变量&...
算法的时间复杂度介绍 本文主要算法时间复杂度的相关知识。1 概述算法(Algorithm)是指...
编码方式概括 1.三种码表1.iso8859-1码表:是一种8位的单字节编码方式。它可以表示256个...
YOLOv5源码逐行超详细注释... 前言  本篇文章主要是对YOLOv5项目的验证部分。这个文件之前是叫test.py,后...
centos docker 安... 1、首先安装docker 下面是一键安装脚本 curl -fsSL https://get.dock...
线上操作规范 1.目的    1)为了避免测试线上随意操作给客户造成损失   2)为了...
查找算法之费氏搜寻法 给定一个大小为n的排序数组arr[],并在其中搜索一个元素x。如果x在数组中ÿ...
cv2报错:Unsupport... cv2 报错 error: OpenCV(4.6.0) /io/opencv/modules/img...
DVWA_xss 反射型xsslow直接在输入框输入提前准备的代码,就可以得到回显cookie信息 Me...
音视频开发编程技术(二):音频... 1. 音频简介   上一节讲过,视频的帧率即每秒钟采集多少张图片的概念。同理ÿ...
【Java学习笔记】33.Ja... 前言 本章介绍Java的HashSet及HashMap。 Java HashSet HashSet ...
RabbitMQ基础介绍及同步... 一、同步通讯与异步通讯 大多数情况下会使用同步,对并发没有很高的要求,但...
面试官:整理了一些react的... 请解释一下React生命周期。它们各自的作用是什么? React生命周期是指组件从创建...
【C++进阶】AVL树的实现 文章目录AVL树概念AVL树性质AVL树节点的结构AVL树的插入插入新节点更新整体节点的平衡因子旋转...
缺失的第一个正整数:给定一个未... 给定一个未排序的整数数组,找出其中未出现的最小正整数。 (本文获得CSDN质量评分...
[架构之路-141]-《软考-... 前言:如何“从无到有”设计一个企业信息系统?本文将探索这个话题。第1章 ...