Scale Deployment
Scale Deployment
Up-/Downscale a Kubernetes DeploymentScale Deployment
Scale Deployment
Up-/Downscale a Kubernetes DeploymentKeep 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.
Faultless scaling of Kubernetes Deployment
Ensure that you can scale your deployment in a reasonable time without noticeable errors.
Motivation
For an elastic and resilient cloud infrastructure, ensure that you can scale your deployments without user-visible errors and within a reasonable amount of time. Long startup times, hiccups in the load balancer, or resource misallocation are undesirable but sometimes unnoticed and unexpected.
Structure
For the duration of the experiment and the deployment's upscaling, verify that a user-visible endpoint offered is responding within expected success rates and that no monitors are alerting. As soon as the deployment is scaled up, the newly scheduled pod should be ready to receive traffic within a reasonable time, e.g., 60 seconds.