Defining Course Requirements
The tools required for following along with this course are mentioned in this lesson.
We'll cover the following
Before we jump into practical exercises and start creating chaos, there are a few requirements that you should be aware of.
Git
You will need Git. I’m sure that you have it. Everyone does.
Note for Windows users
If you’re a Windows user, I strongly recommend that you run all the commands from a Git Bash terminal. It is available through the Git setup. If you don’t have it already, I recommend that you re-run Git installation. You’ll see a checkbox that, when selected, will install Git Bash. If you have something against Git Bash, then any other Bash should do. You could, theoretically, run your commands in PowerShell or Windows terminal, but then there would be some differences when compared with the commands in this course. So, if you’re a Windows user, to have parity with Mac and Linux users, I strongly recommend running the commands from Git Bash or another Bash terminal.
kubectl and Kubernetes cluster
Since we’re going to work with Kubernetes, you will need kubectl as well as a Kubernetes cluster. The cluster can be:
- Docker Desktop
- Minikube
- GKE
- EKS
- AKS
I provide instructions on how to create those. It can also be any other distribution. However, bear in mind that I tested only those five. Everything should work in any other Kubernetes flavor, as long as you’re aware that you might need to modify some commands every once in a while.
While we’re on the subject of Kubernetes distributions, if you do prefer Minikube or Docker Desktop, please know that a few of the examples that deal with nodes will not work. In those cases, you’ll need to observe the outputs from the course to understand what’s happening. This is because Minikube and Docker Desktop are single-node clusters, with both the worker node and the control plane mixed together. As you can probably guess, destroying the only node is not something we can recuperate from. All in all, most of the things we cover will work in local Kubernetes distributions (Minikube or Docker Desktop).
Helm
If you’re using EKS, you will need Helm v3.x. We will set up Cluster Autoscaler, which is probably easiest to deploy with Helm.
Python v3.x
Soon, we will install Chaos Toolkit, which requires Python v3.x and pip. The latter is typically installed during Python setup.
In addition to these requirements, I might ask you to install other things throughout the course. But for now, these requirements are all you need. If you’re already working with Kubernetes (as I hope you are), you should already have all the executables on your laptop. The exception might be Python.
Every section, and this one is no exception, has an associated Gist with all the commands. That way, you can be lazy and copy and paste them instead of typing them in your terminal.
All the commands from this section are available in the 02-setup.sh Gist.
The full list of the requirements is as follows.
- Git
- GitBash (if Windows)
- kubectl
- A Docker Desktop, Minikube, GKE, EKS, AKS, or any other Kubernetes cluster (not tested)
- Helm v3.x (if EKS)
- Python v3.x
- pip
With that out of the way, we can proceed and install Chaos Toolkit.
In the next lesson, the instructions for installing the Chaos Toolkit are given.
Get hands-on with 1400+ tech skills courses.