$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Chaos Mesh紹介[中国語]
Search
成臣 Chengchen
June 14, 2021
Education
0
380
Chaos Mesh紹介[中国語]
Chaos Engineering 2021/06/10 勉強会で発表資料
https://cnt.connpass.com/event/215331/
成臣 Chengchen
June 14, 2021
Tweet
Share
More Decks by 成臣 Chengchen
See All by 成臣 Chengchen
ゲーム広告でのTiDB活用事例
it2911
0
290
ChaosBlade紹介[中国語]
it2911
0
260
Chaos Engineering 紹介[中国語]
it2911
0
340
EKF日志分析平台架构方案实践
it2911
0
290
AWS云上架构演进
it2911
0
210
Ingress 勉強会: Traefik 2.0
it2911
0
470
F5-NGINX-Ingress勉強会
it2911
0
910
JD.com Blockchain as a Service @ Tokyo in 2019
it2911
0
230
Kubernetes with JUJU
it2911
0
280
Other Decks in Education
See All in Education
多様なメンター、多様な基準
yasulab
5
19k
20250830_本社にみんなの公園を作ってみた
yoneyan
0
170
Web 2.0 Patterns and Technologies - Lecture 8 - Web Technologies (1019888BNR)
signer
PRO
0
3k
コマンドラインを見直そう(1995年からタイムリープ)
sapi_kawahara
0
560
XML and Related Technologies - Lecture 7 - Web Technologies (1019888BNR)
signer
PRO
0
3.1k
Adobe Express
matleenalaakso
1
8.1k
Introduction - Lecture 1 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
2.7k
MySmartSTEAM 2526
cbtlibrary
0
120
2025年度伊藤正彦ゼミ紹介
imash
0
130
Портфолио - Шынар Ауелбекова
shynar
0
140
Introduction - Lecture 1 - Web Technologies (1019888BNR)
signer
PRO
0
5.8k
1021
cbtlibrary
0
370
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
BBQ
matthewcrist
89
9.9k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
GraphQLとの向き合い方2022年版
quramy
50
14k
Automating Front-end Workflow
addyosmani
1371
200k
Building an army of robots
kneath
306
46k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Writing Fast Ruby
sferik
630
62k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Transcript
Chaos Mesh® 介绍
[email protected]
关于我 • 殷成文 • GitHub: cwen0 / Twiitter: @CWenYin •
Infrastructure Engineer • Tech leader of PingCAP Chaos Engineering Team • Founder and Maintainer of Chaos Mesh® • Program Committee Member: KubeCon + CloudNativeCon Europe 2021
背景
一点历史 • 2018~2019:Schrodinger 项目 • 2019.09.04:Chaos Mesh 第一个 Commit •
2019.12.31:开源 • 2020.07.15:正式成为 CNCF Sandbox 项目 • 2020.09.25:1.0 GA 版本 • 2021.06.30:2.0 GA 版本 (待定)
Chaos Mesh:背景 $ kubectl get ns tidb-cluster-1 tidb-cluster-2 tidb-cluster-3 nginx-ns-1
nginx-ns-2 app-ns-1 app-ns-2 ... $crontab -l 0 */2 * * * /usr/local/podkill -n tidb-cluster-1 -n tikv-1 0 */1 * * * /usr/local/podkill -n tidb-cluster-1 -n pd-1 0 */2 * * * /usr/local/network delay -v 20ms -n app-ns-1 -n app-name 0 */2 * * * /usr/local/network delay -v 20ms -n app-ns-2 -n app-name … Kubernetes 环境下 • 一个 Kubernetes 运行多个应用集群 (10+) • 每个 Kubernets 集群包含更多的物理 节 点 • 更多的可能出现异常的对象,例如:容 器 / Pod / 网络 / 磁盘 / 系统时钟 / 内核 所以,我们需要更多的混沌实验!管理和调度 这么多的混沌实验是非常困难的!并且做到 混沌工程闭环就更加困难!
Chaos Mesh:背景 容器环境 • 容器环境是和物理环境存在很大差异 • 很多工具没办法直接使用 ◦ 例如 tc
/ iptables / fuse / bcc 没 办法直接在容器中使用 • 同一个 Node 上容器之间的故障不能相 互影响 故障的范围必须是可控的!
功能预览
核心优势 • 核心能力稳固:Chaos Mesh 起源于 TiDB 的核心测试平台,发布初期即继承了大量 TiDB 已有的 测试经验。
• 被充分验证:Chaos Mesh 被众多公司以及组织所使用,例如腾讯和美团等;同时被用于众多知名 分布式系统的测试体系中,例如 Apache APISIX 和 RabbitMQ 等。 • 系统易用性强:图形化操作和基于 Kubernetes 的使用方式,充分利用了自 动化能力。 • 云原生:Chaos Mesh 原生支持 Kubernetes 环境,提供了强悍的自动化能力。 • 丰富的故障模拟场景:Chaos Mesh 几乎涵盖了分布式测试体系中基础故障模拟的绝大多数场 景。 • 灵活的实验编排能力:用户可以通过平台设计自己的混沌实验场景,场景可包含多个混沌实验编 排,以及应用状态检查等。 • 安全性高:Chaos Mesh 具有多层次安全控制设计,提供高安全性。 • 活跃的社区:Chaos Mesh 为全球知名开源混沌测试平台,CNCF 开源基金会孵化项目。 • 强大的扩展能力:Chaos Mesh 为故障测试类型扩展和功能扩展提供了充分的扩展能力。
• CRD (Custom Resources) 拓展 Kubernetes API 定义 ◦ PodChaos
◦ NetworkChaos ◦ IOChaos ◦ TimeChaos ◦ StressChaos ◦ DNSChaos ◦ KernelChaos ◦ JVMChaos ◦ AWSChaos ◦ GCPChaos ◦ Workflow ◦ ... 声明式 API 定义简化混沌实验管理 apiVersion: pingcap.com/v1alpha1 kind: PodChaos metadata: name: telemetry-failure-example namespace: istio-system spec: action: pod-failure mode: one selector: labelSelectors: "app": "tikv"
可视化界面降低混沌实验成本
丰富的故障类型
编排混沌实验
实现简介
整体架构 基础流程 • 用户输入、观测 • 监听资源变化,进行注入/恢复 • 在具体节点上进行故障注入 核心组件 •
Chaos Dashboard • Chaos Controller Manager • Chaos Daemon
• 使用 kubectl 工具提交 • 使用 Kubernetes Client • 使用
Chaos Dashboard 用户输入、观测
• 监听 PodChaos, NetworkChaos… 等资 源的 创建/更新/删除 • 决定当前该 注入
/ 恢复 / 等待 • 进行简单的注入,比如 PodKill • 向 Chaos Daemon / Sidecar 发送请求 监听资源的变化
*Chaos 如何注入?
• Container 的实体: ◦ 进程 ◦ Namespace 控制可见性 ◦ Cgroup
限制资源 • 注入的实质 ◦ 侵入 Namespace / Cgroup ◦ 进行干扰、注入 隔离 Chaos Daemon 注入原理
Demo
加入社区 CNCF - #project-chaos-mesh https://chaos-mesh.org https://github.com/chaos-mesh @chaos_mesh Channel: Chaos Mesh
Thanks