Skip to content
master
Switch branches/tags
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
Aug 26, 2016
Aug 26, 2016
Aug 26, 2016

Kubernetes Pod Chaos Monkey

This repository contains a Dockerfile and associated Kubernetes configuration for a Deployment that will randomly delete pods in a given namespace. This is implemented in Bash mostly because I'm writing it for a lightning talk.

An image built from the Dockerfile in this repository is available on Docker Hub as jnewland/kubernetes-pod-chaos-monkey.

Configuration

A few environment variables are available for configuration:

  • DELAY: seconds between selecting and deleting a pod. Defaults to 30.
  • NAMESPACE: the namespace to select a pod from. Defaults to default.

Example Kubernetes config is included at config/kubernetes/production/deployment.yaml

Example

$ kubectl apply -f config/kubernetes/production/deployment.yaml
deployment "kubernetes-pod-chaos-monkey" created
$ kubectl get pods | grep chaos
kubernetes-pod-chaos-monkey-3294408070-6w6oh   1/1       Running       0          19s
$ kubectl logs kubernetes-pod-chaos-monkey-3294408070-6w6oh
+ : 30
+ : default
+ true
+ xargs -t --no-run-if-empty kubectl --namespace default delete pod
+ head -n 1
+ shuf
+ tr ' ' '\n'
+ kubectl --namespace default -o 'jsonpath={.items[*].metadata.name}' get pods
kubectl --namespace default delete pod dd-agent-3hw6w
pod "dd-agent-3hw6w" deleted
+ sleep 30

License

MIT