Skip to content

Commit

Permalink
Drive by copy edit of blog post (kubernetes#18881)
Browse files Browse the repository at this point in the history
* Medium copy edit.

* more fixes
  • Loading branch information
craigbox authored and wawa0210 committed Mar 2, 2020
1 parent d0b2ca5 commit 335d33a
Showing 1 changed file with 31 additions and 48 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,22 @@ Commons Briefing session. Kubenvaders is a Gamified Chaos Engineering
tool for Kubernetes and Openshift and helps test how resilient your
Kubernetes cluster is, in a fun way.

It is like space invaders but the aliens are PODs.
It is like Space Invaders, but the aliens are pods.

![](https://github.com/lucky-sideburn/KubeInvaders-kubernetes-post/raw/master/img1.png)

During my presentation at Codemotion Milan 2019, I started saying "of
course you can do it with few lines of bash but it is boring."
course you can do it with few lines of Bash, but it is boring."

![](https://github.com/lucky-sideburn/KubeInvaders-kubernetes-post/raw/master/img2.png)

Using the code above you can kill random PODs across a K8s cluster but I
think it is much funnier with the spaceship of Kubeinvaders.
Using the code above you can kill random pods across a Kubernetes cluster, but I
think it is much more fun with the spaceship of KubeInvaders.

I published the code at
[https://github.com/lucky-sideburn/KubeInvaders](https://github.com/lucky-sideburn/KubeInvaders)
and there is a little community that is growing gradually. Some people
love to use it for demo sessions killing PODs on the big screens.
love to use it for demo sessions killing pods on a big screen.

![](https://github.com/lucky-sideburn/KubeInvaders-kubernetes-post/raw/master/img3.png)

Expand All @@ -44,84 +45,66 @@ I defined multiples modes to install it:
3. Manual Installation for Kubernetes
[https://github.com/lucky-sideburn/KubeInvaders\#install-kubeinvaders-on-kubernetes](https://github.com/lucky-sideburn/KubeInvaders#install-kubeinvaders-on-kubernetes)

The preferred way, of course, is with a Helm chart.

----------------------------------------------------------------------------------------------------------------------------------------------------
The preferred way, of course, is with a Helm chart:

```
# Please set target_namespace to set your target namespace!
helm install --set-string target_namespace="namespace1,namespace2" \
--name kubeinvaders --namespace kubeinvaders ./helm-charts/kubeinvaders
```
----------------------------------------------------------------------------------------------------------------------------------------------------

## How to use KubeInvaders

Once it is installed on your cluster you can use the following
functionalities:

a. Key 'a' =\> Switch to automatic pilot;

b. Key 'm' =\> Switch to manual pilot;

c. Key 'i' =\> Show pod\'s name. Move the ship towards an alien;

d. Key 'h' =\> Print help;

e. Key 'n' =\> Jump between; different namespaces (my preferred feature!)
* Key 'a' — Switch to automatic pilot
* Key 'm' — Switch to manual pilot
* Key 'i' — Show pod's name. Move the ship towards an alien
* Key 'h' — Print help
* Key 'n' — Jump between different namespaces (my favorite feature!)

## Tuning KubeInvaders

At Codemotion Milan 2019, my colleagues and I organized a desk with a
game station for playing KubeInvaders. People had to fight with K8s to
game station for playing KubeInvaders. People had to fight with Kubernetes to
win a t-shirt.

If you have PODs that require a few seconds to start, you may lose. It
If you have pods that require a few seconds to start, you may lose. It
is possible to set the complexity of the game with these parameters as
env var in the K8s deployment:

a. ALIENPROXIMITY =\> Reduce this value to increase the distance between aliens;
environmment variables in the Kubernetes deployment:

b. HITSLIMIT =\> Seconds of CPU time to wait before shooting;
* ALIENPROXIMITY — Reduce this value to increase the distance between aliens;
* HITSLIMIT — Seconds of CPU time to wait before shooting;
* UPDATETIME — Seconds to wait before updating pod status (you can set also 0.x Es: 0.5);

c. UPDATETIME =\> Seconds to wait before update PODs status (you can set also 0.x Es: 0.5);

The result is a harder game experience against the machine :D
The result is a harder game experience against the machine.

## Use cases

Adopting chaos engineering strategies for your production environment is
really useful because it is the only way to test if a system supports
really useful, because it is the only way to test if a system supports
unexpected destructive events.

KubeInvaders is a game so please do not take it too seriously but it has
KubeInvaders is a game so please do not take it too seriously! — but it demonstrates
some important use cases:

- Test how resilient K8s clusters are on unexpected PODs deletion;

- Collect metrics like PODs restart time;
* Test how resilient Kubernetes clusters are on unexpected pod deletion
* Collect metrics like pod restart time
* Tune readiness probes

- Tuning readiness probes;

## Next step
## Next steps

I want to continue to add some cool features and integrate it into a
Kubernetes dashboard because I am planning to transform it into a
"Gamified Chaos Engineering and Development Tool for Kubernetes".

For "Development Tool for Kubernetes" I mean something that help
developers to interact with deployments in a K8s environment. For
"Gamified Chaos Engineering and Development Tool for Kubernetes", to help
developer to interact with deployments in a Kubernetes environment. For
example:

a. Point to the aliens to get PODs logs;

b. Deploy Helm charts shooting some particular objects;

c. Read message stored in a specific label present in a deployment;
* Point to the aliens to get pod logs
* Deploy Helm charts by shooting some particular objects
* Read messages stored in a specific label present in a deployment

Please feel free to contribute to
[https://github.com/lucky-sideburn/KubeInvaders](https://github.com/lucky-sideburn/KubeInvaders)
and stay updated following \#kubeinvaders news on Twitter
([https://twitter.com/luckysideburn](https://twitter.com/luckysideburn))

Thanks!
and stay updated following \#kubeinvaders news [on Twitter](https://twitter.com/luckysideburn).

0 comments on commit 335d33a

Please sign in to comment.