FREEDOM251

Freedom251 › Chaos Engineering Platforms

khaos-monkey

Paid LinuxSelf-hosted

Visit khaos-monkey Alternatives

khaos-monkey's own site

What khaos-monkey is

khaos-monkey randomly terminates Kubernetes pods according to configured rules, for teams that want to schedule experiments on a cluster. It can terminate a percentage of pods, a fixed count, or pods until a chosen number remain. Attack intervals and kill counts can be randomized. Targeting can select namespaces or individual pods labeled `khaos-enabled: true`; pods labeled `khaos-enabled: false` are excluded. Namespaces can also be blacklisted, with documented defaults of `kube-system`, `kube-public`, and `kube-node-lease`. Pods are grouped by ReplicaSet unless custom `khaos-group` labels define other groups. The project is built in Rust using kube-rs and is presented as a lightweight option for smaller experimental clusters. The README describes deploying it as a Kubernetes Deployment with the `dagandersen/khaos-monkey:latest` image, or running it locally with Cargo and a kubeconfig. Its installation example grants a Kubernetes ClusterRole list and delete permissions for pods and namespaces. The project is free and open source; its page includes a README and issue tracker but states no support plan.

Who it suits

It suits operators of smaller experimental Kubernetes clusters who want configurable pod-termination experiments. Teams should consider the listed permissions before setting it up.

What it does well

  • Free and open source
  • Supports percentage, fixed-count, and fixed-number-left modes
  • Randomizes attack intervals and kill counts
  • Can exclude pods and blacklist namespaces
  • Can run locally or as a Kubernetes Deployment

What to know first

  • Installation example grants pod and namespace list and delete permissions
  • Positioned for smaller experimental clusters
  • No support plan or response commitment is stated

Limits

The example installation requires a ClusterRole with list and delete permissions for pods and namespaces. The project is positioned as a simple option for smaller experimental clusters, with more advanced tooling suggested for mature infrastructure.

Getting started

  1. Open the project README at https://github.com/dag-andersen/khaos-monkey.
  2. Choose a Kubernetes Deployment using the dagandersen/khaos-monkey:latest image, or run locally with Cargo and a kubeconfig.
  3. Review the example ClusterRole permissions for listing and deleting pods and namespaces.
  4. Configure the kill mode, targeting labels or namespaces, and any exclusions.
  5. Set attack intervals and kill counts, including randomization if desired.
  6. Define custom pod groups with khaos-group labels if needed.

Verdict

khaos-monkey offers several ways to target and schedule pod termination experiments. Its stated focus is smaller experimental clusters, and its installation permissions merit review before deployment.

Questions

Is khaos-monkey free?

Yes. It is free and open source.

What Kubernetes pod kill modes does it support?

It can kill a percentage of pods, a fixed count, or pods until a fixed number remain.

How does it choose pods and namespaces?

It can target selected namespaces or pods labeled `khaos-enabled: true`. Pods labeled `khaos-enabled: false` opt out, and namespaces can be blacklisted.

Can attack timing and kill counts be randomized?

Yes. The number of pods killed and the interval between attacks can be randomized, and experiments can be scheduled.

How can it be deployed or run?

The README describes deploying it to Kubernetes with the `dagandersen/khaos-monkey:latest` container image or running it locally with Cargo and a kubeconfig.

What permissions does its installation example use?

It grants a Kubernetes ClusterRole list and delete permissions for pods and namespaces.

Facts from khaos-monkey's own pages

Built with
The project says it is built in Rust using kube-rs. · github.com, 9 Oct 2026
Deployment
The README describes deploying it as a Kubernetes Deployment using the dagandersen/khaos-monkey:latest container image, or running it locally with Cargo and kubeconfig. · github.com, 9 Oct 2026
Exclusions
Pods labeled khaos-enabled: false opt out, and namespaces can be blacklisted. · github.com, 9 Oct 2026
Grouping
Pods are grouped by ReplicaSet by default, and khaos-group labels can define custom groups. · github.com, 9 Oct 2026
Implementation
The project is built in Rust using kube-rs. · github.com, 9 Oct 2026
Intended use
The maker describes it as a lightweight, simple option that can suit smaller experimental clusters where more advanced tooling may be cumbersome or resource-intensive. · github.com, 9 Oct 2026
Kill modes
It supports percentage, fixed-count, and fixed-number-left pod termination modes. · github.com, 9 Oct 2026
Local use
The README says it can be run locally with Cargo and a kubeconfig before deployment to Kubernetes. · github.com, 9 Oct 2026
Modes
It supports percentage of pods killed, a fixed number killed, or killing pods until a fixed number remain. · github.com, 9 Oct 2026
Namespace exclusions
The CLI supports blacklisted namespaces; its documented defaults are `kube-system`, `kube-public`, and `kube-node-lease`. · github.com, 9 Oct 2026
Permissions
The installation example grants a Kubernetes ClusterRole list and delete permissions for pods and namespaces. · github.com, 9 Oct 2026
Project positioning
The README presents it as a simple, lightweight option for smaller experimental Kubernetes clusters and says more advanced tooling may suit mature infrastructure better. · github.com, 9 Oct 2026
Purpose
khaos-monkey randomly terminates Kubernetes pods according to configured rules and modes. · github.com, 9 Oct 2026
Randomization
Options can randomize the number of pods killed and add a random interval between attacks. · github.com, 9 Oct 2026
Scheduling
Attack intervals and the number of pods killed can be randomized. · github.com, 9 Oct 2026
Support
The opened project page provides its README and issue tracker; it does not state a support plan or response commitment. · github.com, 9 Oct 2026
Targeting
It can target pods in selected namespaces or individual pods labeled khaos-enabled: true. · github.com, 9 Oct 2026

Where khaos-monkey stands on Freedom251

Look at these too