Before we dive into practical examples, we’ll define a checklist of things we want to accomplish. What could be our goals?
To begin, we probably want to see what happens when we terminate an instance of an application, or we might want to see what happens when we partially terminate the network or delay network requests. Additionally, we might want to increase the latency of the network. We might also want to simulate denial of service attacks. We might want to drain or even delete a node.
We’re going to focus on instances of our applications, networking, and nodes. For all of these to be visible, we may need to create some reports as well as to send notifications to all those interested. Finally, we almost certainly want to target and run our experiments inside a Kubernetes cluster. The summary of the tasks we want to accomplish is as follows:
Terminate an instance of an app
Partially terminate a network
Increase latency
Simulate Denial of Service (DoS) attacks
Drain a node
Delete a node
Create reports
Send notifications
Run the experiments inside a Kubernetes cluster