Git Product home page Git Product logo

chaos-mesh's Introduction

chaos-mesh-logo

Build Status codecov LICENSE Language Go Report Card GoDoc

Note:

This readme and related documentation are Work in Progress.

Chaos Mesh® is a Cloud Native Computing Foundation (CNCF) hosted project. It is a cloud-native Chaos Engineering platform that orchestrates chaos on Kubernetes environments. At the current stage, it has the following components:

  • Chaos Operator: the core component for chaos orchestration. Fully open sourced.
  • Chaos Dashboard: a Web UI for managing, designing, monitoring Chaos Experiments; under development.

See the following demo video for a quick view of Chaos Mesh:

Watch the video

Chaos Operator

Chaos Operator injects chaos into the applications and Kubernetes infrastructure in a manageable way, which provides easy, custom definitions for chaos experiments and automatic orchestration. There are three components at play:

Controller-manager: used to schedule and manage the lifecycle of CRD objects

Chaos-daemon: runs as daemonset with privileged system permissions over network, Cgroup, etc. for a specific node

Chaos Operator

Chaos Operator uses Custom Resource Definition (CRD) to define chaos objects. The current implementation supports six types of CRD objects for fault injection, namely PodChaos, NetworkChaos, IOChaos, TimeChaos, StressChaos, and KernelChaos, which correspond to the following major actions (experiments):

  • pod-kill: The selected pod is killed (ReplicaSet or something similar may be needed to ensure the pod will be restarted).
  • pod-failure: The selected pod will be unavailable in a specified period of time.
  • container-kill: The selected container is killed in the selected pod.
  • netem chaos: Network chaos such as delay, duplication, etc.
  • network-partition: Simulate network partition.
  • IO chaos: Simulate file system faults such as I/O delay, read/write errors, etc.
  • time chaos: The selected pod will be injected with clock skew.
  • cpu-burn: Simulate the CPU of the selected pod stress.
  • memory-burn: Simulate the memory of the selected pod stress.
  • kernel chaos: The selected pod will be injected with (slab, bio, etc) errors.

Quick start

Deploy and use

See Docs.

Adopters

This is a list of known adopters of Chaos Mesh. Some have already gone into production, and others are at various stages of testing.

FAQs

See FAQs.

Blogs

Contribute

See the contributing guide and development guide.

Community

Please reach out for bugs, feature requests, and other issues via:

  • Following us on Twitter at @chaos_mesh.
  • Joining the #project-chaos-mesh channel in the CNCF Slack workspace.
  • Filing an issue or opening a PR against this repository.

Community meeting

On the fourth Thursday of every month (unless otherwise specified), the Chaos Mesh community holds a monthly meeting by video conference to discuss the status of Chaos Mesh.

Quick links:

Community blog

Roadmap

See ROADMAP.

License

Chaos Mesh is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

Trademark

Chaos Mesh® is a trademark of The Linux Foundation. All rights reserved.

chaos-mesh's People

Contributors

anglenet avatar bellaxiang avatar colstuwjx avatar cwen0 avatar dcalvin avatar dependabot[bot] avatar ethercflow avatar fewdan avatar g1eny0ung avatar gallardot avatar lucklove avatar mahjonp avatar maplefu avatar namco1992 avatar oraluben avatar shivansh2407 avatar shonge avatar strrl avatar tfulcrand avatar tsthght avatar vincent178 avatar wangxiangustc avatar xuechunl avatar yangkeao avatar yeya24 avatar yisaer avatar yiyiyimu avatar you06 avatar yujunz avatar zhouqiang-cl avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.