【混沌工程】Chaos Mesh:Kubernetes 的混沌工程平台。

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: Chaos Mesh 是云原生计算基金会 (CNCF) 托管的项目。 它是一个云原生混沌工程平台,可在 Kubernetes 环境中编排混沌。 在当前阶段,它具有以下组件:

Chaos Mesh: A Chaos Engineering Platform for Kubernetes.

Kubernetes 的混沌工程平台。

 

Chaos Mesh 是云原生计算基金会 (CNCF) 托管的项目。 它是一个云原生混沌工程平台,可在 Kubernetes 环境中编排混沌。 在当前阶段,它具有以下组件:

  • Chaos Operator:混沌编排的核心组件。 完全开源。
  • Chaos Dashboard:用于管理、设计、监控混沌实验的 Web UI。

请参阅以下演示视频,快速了解 Chaos Mesh:

Chaos Operator

Chaos Operator 以可管理的方式将混沌注入应用程序和 Kubernetes 基础设施,为混沌实验和自动编排提供简单的自定义定义。 有三个组件在起作用:

  • Controller-manager:用于调度和管理 CRD 对象的生命周期。
  • Chaos-daemon:作为守护进程运行,具有特定节点的网络、Cgroup 等特权系统权限。

Chaos Operator 使用 CustomResourceDefinition (CRD) 来定义混沌对象。目前的实现支持几种类型的CRD对象进行故障注入,分别是DNSChaos、PodChaos、PodIOChaos、PodNetworkChaos、NetworkChaos、IOChaos、TimeChaos、StressChaos和KernelChaos,分别对应以下主要动作(实验):

  • pod-kill:选定的 pod 被杀死(可能需要 ReplicaSet 或类似的东西来确保 pod 将重新启动)。
  • pod-failure:选定的 pod 在指定时间内不可用。
  • container-kill:选中的容器在选中的 pod 中被杀死。
  • netem chaos:延迟、重复等网络混乱。
  • network-partition:模拟网络分区。
  • IO chaos:模拟文件系统故障,如I/O延迟、读/写错误等。
  • time chaos:选定的 pod 将被注入时钟偏差。
  • cpu-burn:模拟所选pod的CPU压力。
  • memory-burn:模拟所选pod压力的内存。
  • memory-burn:选定的 pod 将被注入(slab、bio 等)错误。
  • dns chaos:选中的pod会被注入dns错误,如error、random。

快速开始

请参阅 Chaos Mesh 文档

采用者

End users

Organization  Use case   Details
Authzed Uses TimeChaos to fake vDSO time calls to test SpiceDB.   How SpiceDB uses Chaos Mesh to verify protection
ByteDance 字节跳动自主研发的混沌工程平台主要用于公司自有技术体系。 由于涉及到云原生部署服务,字节跳动集成了Chaos Mesh作为底层故障注入引擎,是对字节跳动混沌工程平台的重要补充。 To be added.
DataStax DataStax 利用 Chaos Mesh 创建了一个工具,用于运行基于本地或大规模远程的分布式正确性、验证和性能测试:Fallout,他们用它来测试 AstraDB,这是一种基于 Apache Cassandra 构建的多云 DBaaS。 Leveraging Chaos Mesh in AstraDB Testing
DigitalChina 为了更好地服务于向云基础设施转型的战略,神州数码使用 Chaos Mesh 来测试应用程序维护业务功能的能力,以及发现极端条件下可能出现的错误和漏洞的能力。 Develop a Daily Reporting System for Chaos Mesh
KingNet KingNet 使用 Chaos Mesh 测试多个数据中心和微服务链路的可用性。 Chaos Mesh 还帮助他们模拟服务不可用或异常的网络状况。 To be added.
NetEase Fuxi Lab 使用 Chaos Mesh 提高其内部混合云的稳定性。 此外,他们拥有云平台的用户也会访问 Chaos Mesh 来测试用户服务的稳定性。 How a Top Game Company Uses Chaos Engineering to Improve Testing
Percona Percona uses Chaos Mesh to test their Percona Kubernetes Operators, which is used to deploy their own Database-as-Service.  Chaos Mesh to Create Chaos in Kubernetes
PingCAP Built TiPocket ontop of Chaos Mesh, an automated testing framework to build a full Chaos Engineering testing loop for TiDB, a distributed database.  Building an Automated Testing Framework Based on Chaos Mesh and Argo
Prudential Chaos Mech is an essential part of the Pru SRE toolset that implements managed outages scenarios for comprehensive testing of distributed microservice product platforms, especially Java-powered runtimes.  To be added.
Qiniu Cloud 为保证云存储产品的可靠性,他们使用Chaos Mesh在服务单点故障、网络异常、资源消耗异常(CPU、内存、I/O)等条件下对元数据和底层存储系统进行混沌测试 ) To be added.
RabbitMQ RabbitMQ applies NetworkChaos to learn how RabbitMQ handles network latency.  Testing RabbitMQ Resiliency with Chaos Mesh
Tencent 腾讯互娱将线上运营迁移到腾讯云 Kubernetes 引擎后,希望为用户提供更稳定可靠的体验,因此引入了 Chaos Mesh。 腾讯主要使用 Chaos Mesh 来模拟以下几种故障:故障隔离、服务降级、服务验证。 Securing Online Gaming: Combine Chaos Engineering with DevOps Practices
Xpeng Xpeng Motors use Chaos Mesh in the following scenarios: rolling updates of microservices and lossless verification of traffic; microservices, multi-registries, multi-party synchronization, and traffic lossless verification; MQTT cluster two-way subscription verification; exactly-once consumer business verification for message queues;simulation of weak 4G network for in-vehicle systems, saving drive test costs; AIOPS anomaly detection dataset generation.  To be added.
Maycur Maycur built Chaos Mesh on K8S for JVM fault drill, mainly for JVM delay, method exception, method return value modification, and other scenarios. To be added.

Vendors

Organization   Use case   Details
Civo Chaos Mesh can be directly deployed from the Civo's Kubernetes marketplace. Automating chaos engineering with Chaos Mesh
KubeSphere Chaos Mesh can be directly deployed from the KubeSphere App Store starting from KubeSphere v2.3 onwards. To be added.
Microsoft 微软的 Azure Chaos Studio 集成了 Chaos Mesh,让用户可以将故障注入 AKS 集群。 Create a chaos experiment that uses a Chaos Mesh fault to kill AKS pods

博客

有关 Chaos Mesh 设计和实现、功能、混沌工程、社区更新等的博客。请参阅 Chaos Mesh 博客。以下是一些推荐的,供您开始使用:

本文:https://architect.pub/chaos-mesh-chaos-engineering-platform-kubernetes

Tags

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
5月前
|
Kubernetes Cloud Native 容器
完全免费的K8S学习平台:在线集群环境助力你的云原生之路!
完全免费的K8S学习平台:在线集群环境助力你的云原生之路!
814 1
|
11月前
|
人工智能 Kubernetes 安全
阿里云 ACK 新升级,打造智算时代的现代化应用平台
阿里云 ACK 新升级,打造智算时代的现代化应用平台
70605 10
|
11月前
|
Kubernetes Java Maven
DHorse(K8S的CICD平台)的实现原理
首先,本篇文章所介绍的内容,已经有完整的实现,[可以参考这里](https://gitee.com/i512team/dhorse)。 在微服务、DevOps和云平台流行的当下,使用一个高效的持续集成工具也是一个非常重要的事情。虽然市面上目前已经存在了比较成熟的自动化构建工具,比如jekines,还有一些商业公司推出的自动化构建工具,但他们都不能够很好的和云环境相结合。那么[究竟该如何实现一个简单、快速的基于云环境的自动化构建系统呢](https://gitee.com/i512team/dhorse)?我们首先以一个Springboot应用为例来介绍一下整体的发布流程,然后再来看看具体如何实
|
Prometheus 监控 Kubernetes
【云原生】k8s集群资源监控平台搭建—20230227
【云原生】k8s集群资源监控平台搭建—20230227
127 0
|
3月前
|
人工智能 运维 Cloud Native
|
2月前
|
监控 Kubernetes 开发者
不容忽视的实力!Rancher:容器编排平台的领军者,引领行业风潮无人不知无人不晓!
【8月更文挑战第6天】Rancher是容器编排领域的领航者,提供开源容器管理平台,简化Kubernetes操作,支持多集群管理及DevOps工具集成。其直观界面便于部署、监控容器化应用,并提供应用商店加速部署流程。Rancher具备高度灵活性与安全性,支持自动化备份、恢复及容器迁移,确保业务连续性。通过持续创新与社区合作,Rancher引领行业发展,赋能开发者实现高效软件交付。
74 0
|
5月前
|
存储 Kubernetes 监控
Kubernetes快速进阶与实战:构建可靠的容器化应用平台
Kubernetes快速进阶与实战:构建可靠的容器化应用平台
365 0
|
5月前
|
运维 Kubernetes Linux
10分钟搭建Kubernetes容器集群平台(kubeadm)
10分钟搭建Kubernetes容器集群平台(kubeadm)
|
5月前
|
Kubernetes Cloud Native 云计算
探索K8S的绝佳选择:Killercoda与Play-with-K8s在线练习平台
探索K8S的绝佳选择:Killercoda与Play-with-K8s在线练习平台
1053 1
|
5月前
|
Kubernetes 监控 容器
K8S故障注入混沌工程开源平台ChaosMesh
总之,ChaosMesh作为一个Kubernetes混沌工程平台,为用户提供了测试和验证Kubernetes集群的可靠性的工具和框架,有助于提高系统的稳定性和性能。
223 0