6.5 KiB
Gamified chaos engineering tool for Kubernetes. It is like Space Invaders but the aliens are pods or worker nodes.
Table of Contents
- Description
- Installation
- Usage
- Known Problems
- Metrics
- Security
- Community
- Community blogs and videos
- License
Description
Through KubeInvaders you can stress a Kubernetes cluster in a fun way and check how it is resilient.
Installation
Install to Kubernetes with Helm (v3+)
helm repo add kubeinvaders https://lucky-sideburn.github.io/helm-charts/
kubectl create namespace kubeinvaders
helm install kubeinvaders --set-string target_namespace="namespace1\,namespace2" \
-n kubeinvaders kubeinvaders/kubeinvaders --set ingress.hostName=kubeinvaders.io --set image.tag=v1.9
Usage
Watch YouTube How To
Show Special Keys
Press 'h' or select 'Show Special Keys' from the menu.
Zoom In / Out
Press + or - buttons to increase or decrease the game screen.
Do Kube-linter Lint
It is possibile using kube-linter through KubeInvaders in order to scan resources looking for best-practices or improvements to apply.
Commands and metrics
At the top you will find some metrics, the start button for automatic pilot and the rand-factor bar for increasing or decreasing speed of automatic shots.
Current Replicas State Delay is a metric that show how much time the cluster takes to coming back at the desired state of pods replicas.
Show / Hide pods name
Press the button "Hide Pods Name" or "Show Pods Name" to control labels under the aliens.

Chaos Containers for masters and workers nodes
- Select from the menu "Show Current Chaos Container for nodes" for watching which container start when you fire against a worker node (not an alien, they are pods).
- Select from the menu "Set Custom Chaos Container for nodes" for using your preferred image or configuration against nodes.
Known problems
- It seems that KubeInvaders does not work with EKS because of problems with ServiceAccount. Work in progress!
Hands-on Tutorial
To experience KubeInvaders in action, try it out in this free O'Reilly Katacoda scenario, KubeInvaders.
Prometheus Metrics
KubeInvaders exposes metrics for Prometheus through the standard endpoint /metrics
This is an example of Prometheus configuration
scrape_configs:
- job_name: kubeinvaders
static_configs:
- targets:
- kubeinvaders.kubeinvaders.svc.cluster.local:8080
Example of metrics
| Metric | Description |
|---|---|
| chaos_jobs_node_count{node=workernode01} | Total number of chaos jobs executed per node |
| chaos_node_jobs_total | Total number of chaos jobs executed against all worker nodes |
| deleted_pods_total 16 | Total number of deleted pods |
| deleted_namespace_pods_count{namespace=myawesomenamespace} | Total number of deleted pods per namespace |
Security
In order to restrict the access to the Kubeinvaders endpoint add this annotation into the ingress.
nginx.ingress.kubernetes.io/whitelist-source-range: <your_ip>/32
Community
Please reach out for news, bugs, feature requests, and other issues via:
- Following us on Twitter @kubeinvaders & @luckysideburn
- New features are published on YouTube too in this channel
Community blogs and videos
- Kubernetes.io blog: KubeInvaders - Gamified Chaos Engineering Tool for Kubernetes
- Flant:Open Source solutions for chaos engineering in Kubernetes
- Reeinvent: KubeInvaders - gamified chaos engineering
- Adrian Goins: K8s Chaos Engineering with KubeInvaders
- dbafromthecold: Chaos engineering for SQL Server running on AKS using KubeInvaders
- Pklinker: Gamification of Kubernetes Chaos Testing
- Openshift Commons Briefings: OpenShift Commons Briefing KubeInvaders: Chaos Engineering Tool for Kubernetes
- Devoptribe.it: In an awesome-kubernetes
- William Lam: Interesting Kubernetes application demos
License
KubeInvaders is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.



