Freedom251 › Chaos Engineering Platforms
kube-monkey

What kube-monkey is
kube-monkey is a self-hosted, open-source tool that randomly deletes Kubernetes pods to help develop and validate services designed to withstand failures. Applications opt in using Kubernetes labels, including an enabled label and settings such as an identifier and MTBF. Dry run is enabled by default, so the tool logs planned terminations rather than carrying them out. Users can configure run days, schedule creation time, termination hours, timezone, and the pod shutdown grace period. Deployments, StatefulSets, and DaemonSets are supported directly; other resource kinds can be configured as custom resources with matching RBAC. Namespace whitelists can narrow eligible workloads, while blacklists can exclude namespaces; kube-system is included in the default blacklist. The README provides Helm installation instructions for deploying the tool into kube-system. Project documentation describes notifications to Slack or a user-provided API, as well as a Prometheus metrics endpoint. Namespace pattern filtering requires cluster-wide permission to list workloads; a namespace-scoped Role installation logs an error and schedules nothing. The project is distributed under the Apache License 2.0.
Who it suits
kube-monkey suits Kubernetes teams that want to exercise failure-resilience by scheduling pod termination experiments on workloads that opt in. It is intended for self-hosted deployments and offers namespace controls, dry run, and configurable scheduling.
What it does well
- Free and distributed under the Apache License 2.0.
- Dry run is enabled by default.
- Supports Deployments, StatefulSets, and DaemonSets directly.
- Scheduling settings include run days, timezone, and termination hours.
- Namespace whitelists and blacklists control eligible workloads.
- Documents Slack or API notifications and a Prometheus metrics endpoint.
What to know first
- Self-hosted deployment requires an installation into Kubernetes.
- Namespace pattern filtering requires cluster-wide workload list permission.
- Does not provide cloud or network fault injection.
Limits
Dry run logs planned terminations instead of executing them by default. Namespace pattern filtering needs cluster-wide workload list permission; a namespace-scoped Role installation logs an error and schedules nothing.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| kube-monkey | Open-source Kubernetes chaos tool · Apache License 2.0 | Free |
As github.com lists them, read 9 Oct 2026. The maker's own page has the final word.
Getting started
- Review the project README and contribution guidance on GitHub.
- Deploy kube-monkey into the kube-system namespace using the README's Helm instructions.
- Configure Kubernetes workloads to opt in through labels and settings such as an identifier and MTBF.
- Set run days, schedule creation time, termination hours, timezone, and pod shutdown grace period.
- Keep dry run enabled to log planned terminations, or configure the tool for actual terminations.
- Configure namespace controls and, if desired, notifications to Slack or a user-provided API.
Verdict
Choose kube-monkey if you need a free, self-hosted Kubernetes tool for scheduled pod-termination experiments with opt-in labels and namespace controls. Look elsewhere if you need cloud or network fault injection; also account for the cluster-wide permission requirement when using namespace pattern filtering.
Questions
Is kube-monkey free?
Yes. It is open source under the Apache License 2.0, and the listed plan is free.
How does kube-monkey select workloads?
Applications opt in through Kubernetes labels, including an enabled label and settings such as an identifier and MTBF. Namespace whitelists and blacklists can further control eligible workloads.
What workloads does it support?
Deployments, StatefulSets, and DaemonSets are supported directly. Other resource kinds can be configured as custom resources with matching RBAC.
How is kube-monkey installed?
The README provides Helm instructions for deploying it into the kube-system namespace.
Does kube-monkey perform network or cloud fault injection?
No. The listed capabilities say it does not provide network or cloud fault injection.
What permission does namespace pattern filtering need?
It requires cluster-wide workload list permission. A namespace-scoped Role installation logs an error and schedules nothing.
Facts from kube-monkey's own pages
- Installation
- The README provides Helm installation instructions for deploying kube-monkey into the kube-system namespace. · github.com, 9 Oct 2026
- License
- The repository is distributed under the Apache License 2.0. · github.com, 9 Oct 2026
- Metrics
- The project documentation lists a Prometheus metrics endpoint. · github.com, 9 Oct 2026
- Namespace controls
- A whitelist can restrict eligible namespaces, a blacklist can exclude namespaces, and the default blacklist includes kube-system. · asobti.github.io, 9 Oct 2026
- Notable permission requirement
- Namespace pattern filtering requires cluster-wide workload list permission; a namespace-scoped Role installation will log an error and schedule nothing. · asobti.github.io, 9 Oct 2026
- Notifications
- The project documentation describes notifications that can post attack events to Slack or a user-provided API. · github.com, 9 Oct 2026
- Opt-in
- Applications opt in through Kubernetes labels, including an enabled label and settings such as an identifier and MTBF. · github.com, 9 Oct 2026
- Purpose
- Implements Netflix’s Chaos Monkey for Kubernetes by randomly deleting pods to help develop and validate failure-resilient services. · github.com, 9 Oct 2026
- Safe default
- Dry run is enabled by default and logs planned terminations instead of carrying them out. · asobti.github.io, 9 Oct 2026
- Scheduling
- Users can configure run days, schedule creation time, termination hours, timezone, and pod shutdown grace period. · asobti.github.io, 9 Oct 2026
- Support
- The README directs contributors to the Kubernetes Slack #kube-monkey channel and project contribution guidance. · github.com, 9 Oct 2026
- Supported workloads
- The project covers Deployments, StatefulSets, and DaemonSets directly; other resource kinds can be configured as custom resources with matching RBAC. · asobti.github.io, 9 Oct 2026
Where kube-monkey stands on Freedom251
- Chaos Engineering Platforms#16 of 25