Delete Pod
Delete Pod
Keep Deployment's pods down
Check what happens when all pods of a Kubernetes deployment aren't coming up again.
Motivation
Typically, Kubernetes tries to keep as many pods running as desired for a Kubernetes deployment. However, some circumstances may prevent Kubernetes from achieving this, like missing resources in the cluster, problems with the deployment's probes, or a CrashLoopBackOff. You should validate what happens to your overall provided service when a given deployment is directly affected by this or one of the upstream services used by your deployment.
Structure
To keep the pods down for a given deployment, we first kill all the pods in the deployment. Simultaneously, we will scale down the Kubernetes deployment to 0 to simulate that these pods can't be scheduled again. At the of the experiment, we automatically roll back the deployment's scale to the initial value.
Reasonable recovery time when losing a pod
When deleting a pod, Kubernetes should bring up a new pod to ensure system stability.
Motivation
Deleting a pod simulates situations in which, for any reason, a pod stops working properly and needs to be rescheduled. This experiment makes sure that rescheduling works as expected and newly scheduled pods become ready within the expected timeframe.
Structure
All pods should be ready to accept traffic at the beginning of the experiment. Rescheduling should start as soon as a pod is deleted. Eventually, after the allotted time, all pods should be ready again.
Keep StatefulSet's pods down
Check what happens when all pods of a Kubernetes StatefulSet aren't coming up again.
Motivation
Typically, Kubernetes tries to keep as many pods running as desired for a Kubernetes StatefulSet. However, some circumstances may prevent Kubernetes from achieving this, like missing resources in the cluster, problems with the StatefulSet's probes, or a CrashLoopBackOff. You should validate what happens to your overall provided service when a given StatefulSet is directly affected by this or one of the upstream services used by your StatefulSet.
Structure
To keep the pods down for a given StatefulSet, we first kill all the pods in the StatefulSet. Simultaneously, we will scale down the Kubernetes StatefulSet to 0
to simulate that these pods can't be scheduled again.
At the of the experiment, we automatically roll back the StatefulSet's scale to the initial value.