mirror of
https://github.com/lucky-sideburn/kubeinvaders.git
synced 2026-04-09 11:56:53 +00:00
c0b02b84bf81109e7bfb3e91e1f494790846eeab
Gamified chaos engineering tool for Kubernetes. It is like Space Invaders but the aliens are pods or worker nodes.
Table of Contents
- Description
- New Version
- Special Input Keys and features
- Prometheus metrics and Grafana
- Installation
- Notes for large clusters
- Configuration
Description
Through KubeInvaders you can stress a Kubernetes cluster in a fun way and check how it is resilient.
New Version
KubeInvaders is now fully open-source. However, it is still possibile to use the legacy version made with Defold.
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.4
Install legacy version
helm install kubeinvaders --set-string target_namespace="namespace1\,namespace2" \
-n kubeinvaders kubeinvaders/kubeinvaders --set ingress.hostName=kubeinvaders.io --set image.tag=legacy
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.
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 Notes
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
Description
Gamified Chaos Engineering Tool for Kubernetes
alienschaoschaos-engineeringgamehacktoberfestkubeinvaderskubeinvaders-containerkube-linterkubernetesopenshiftpodsworkstation
Readme
GPL-3.0
64 MiB
Languages
JavaScript
39.1%
HTML
20.6%
Python
17.1%
Lua
15.8%
Shell
3.5%
Other
3.9%


