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

简介: 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

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
5月前
|
Kubernetes Java Maven
DHorse(K8S的CICD平台)的实现原理
首先,本篇文章所介绍的内容,已经有完整的实现,[可以参考这里](https://gitee.com/i512team/dhorse)。 在微服务、DevOps和云平台流行的当下,使用一个高效的持续集成工具也是一个非常重要的事情。虽然市面上目前已经存在了比较成熟的自动化构建工具,比如jekines,还有一些商业公司推出的自动化构建工具,但他们都不能够很好的和云环境相结合。那么[究竟该如何实现一个简单、快速的基于云环境的自动化构建系统呢](https://gitee.com/i512team/dhorse)?我们首先以一个Springboot应用为例来介绍一下整体的发布流程,然后再来看看具体如何实
|
5月前
|
人工智能 Kubernetes 安全
阿里云 ACK 新升级,打造智算时代的现代化应用平台
阿里云 ACK 新升级,打造智算时代的现代化应用平台
70407 10
|
域名解析 Kubernetes 前端开发
开源项目:jeecg-boot低代码平台部署到kubernetes(更新于2022.2.15)
开源项目:jeecg-boot低代码平台部署到kubernetes(更新于2022.2.15)
251 0
开源项目:jeecg-boot低代码平台部署到kubernetes(更新于2022.2.15)
|
3月前
|
存储 Kubernetes 监控
Kubernetes快速进阶与实战:构建可靠的容器化应用平台
Kubernetes快速进阶与实战:构建可靠的容器化应用平台
99 0
|
1月前
|
存储 Kubernetes 监控
KubeSphere平台安装系列之一【Kubernetes上安装KubeSphere(亲测--实操完整版)】(1/3)
KubeSphere平台安装系列之一【Kubernetes上安装KubeSphere(亲测--实操完整版)】(1/3)
43 0
|
6月前
|
Kubernetes jenkins Linux
两大容器管理平台,Kubernetes与OpenShift有什么区别?
两大容器管理平台,Kubernetes与OpenShift有什么区别?
|
4月前
|
机器学习/深度学习 运维 安全
阿里云 ACK One Serverless Argo 助力深势科技构建高效任务平台
阿里云 ACK One Serverless Argo 助力深势科技构建高效任务平台
101180 8
|
5月前
|
Kubernetes 安全 Cloud Native
Service Mesh和Kubernetes:加强微服务的通信与安全性
Kubernetes已经成为云原生应用程序的事实标准,它为容器编排和管理提供了出色的解决方案。然而,微服务架构的广泛采用使得服务之间的通信变得复杂,同时安全性和可观测性需求也在不断增加。这正是Service Mesh技术的用武之地。本文将深入探讨Service Mesh如Istio和Linkerd如何增强Kubernetes集群中微服务的通信和安全性。
|
5月前
|
Kubernetes Cloud Native Docker
Docker与Kubernetes集成以实现云原生应用程序:云原生在线教育平台
当将Docker与Kubernetes集成以实现云原生应用程序时,可以采用以下项目案例来详细解释:
|
5月前
|
Kubernetes Linux 微服务
微服务轮子项目(42) -容器管理平台
微服务轮子项目(42) -容器管理平台
108 0

推荐镜像

更多