kube-monkey
kube-monkey is an implementation of Netflix's Chaos Monkey for Kubernetes clusters. It randomly deletes pods in the cluster, encouraging and validating the development of failure-resilient services.
Apps opt in with a label, terminations happen during the hours and days you pick, and dry run is the default, so nothing dies until you say so.
Quick start
helm repo add kubemonkey https://asobti.github.io/kube-monkey/charts/repo
helm repo update
helm install kube-monkey kubemonkey/kube-monkey --namespace kube-system
Opt an app in by labelling it:
metadata:
labels:
kube-monkey/enabled: enabled
kube-monkey/identifier: monkey-victim
kube-monkey/mtbf: "2"
That is a kube-monkey in dry run mode and an app that expects to lose a pod on about one run day in two. See Getting started for the walk through, including how to watch a real termination before you trust it with a live namespace.
Documentation
| | | |---|---| | Getting started | From install to your first termination | | How it works | Scheduling time and termination time | | Opting in to chaos | The labels, and the kill modes | | Configuration | Every setting and its default | | Helm chart | Values and common installs | | Metrics | Prometheus endpoint | | Notifications | Post attacks to Slack or your own API |
Contributing
See How to contribute. Join us at #kube-monkey on Kubernetes Slack.
License
Apache License v2.0 - see LICENSE for details.