Steadybit logoResilience Hub
Try SteadybitGitHub icon
Steadybit logoResilience Hub

Rolling Update of a Kubernetes Deployment Works Error-Free Under Load

Kubernetes features a rolling update strategy to deploy new releases without downtime. When being under load this only works reliably when your load balancer and the Kubernetes readiness probe are configured properly and DNS caches are up-to-date.
Download now

Rolling Update of a Kubernetes Deployment Works Error-Free Under Load

Kubernetes features a rolling update strategy to deploy new releases without downtime. When being under load this only works reliably when your load balancer and the Kubernetes readiness probe are configured properly and DNS caches are up-to-date.
Download now

Rolling Update of a Kubernetes Deployment Works Error-Free Under Load

Kubernetes features a rolling update strategy to deploy new releases without downtime. When being under load this only works reliably when your load balancer and the Kubernetes readiness probe are configured properly and DNS caches are up-to-date.
Download now

Rolling Update of a Kubernetes Deployment Works Error-Free Under Load

Kubernetes features a rolling update strategy to deploy new releases without downtime. When being under load this only works reliably when your load balancer and the Kubernetes readiness probe are configured properly and DNS caches are up-to-date.
Download now
Go back to list
The experiment editor showing the visual structure of the experiment.The experiment editor showing the visual structure of the experiment.

Intent

Kubernetes features a rolling update strategy to deploy new releases without downtime. When being under load this only works reliably when your load balancer and the Kubernetes readiness probe are configured properly and DNS caches are up-to-date.

Motivation

The Kubernetes rolling update strategy ensures that during the deployment of a new release a minimum set of pods remain available. This implies that a new pod with a new release is started and needs to be ready before an old pod is evicted. Even so, this process may result in degraded performance and user-facing errors in the case, e.g., Kubernetes is sending requests to pods indicated as ready but not able to respond properly or evicted pods are still retained in the load balancer.

Structure

Before performing the rolling update all desirable pods of the deployment need to be in the “ready”-state, and a load-balanced user-facing HTTP endpoint is expected to respond successfully while being under load. As soon as the rolling update takes place the HTTP endpoint under load may suffer from a degraded performance (e.g. lower success rate or higher response time). Even so, this should be within the boundaries of your SLA. After the rolling update, the number of desirable pods matches the actual pods of the deployment and the performance of the user-facing HTTP endpoint is similar to before the update.

Environment Example

The Kubernetes deployment gateway consists of two pods and exposes an HTTP endpoint. We validate whether this HTTP endpoint is working with a success rate of at least 95% while updating both pods.

Solution Sketch


Download now

.json (5 kB)

It's quick and easy

  1. 1.

    Download .json file
  2. 2.

    Upload it inside Steadybit
  3. 3.

    Start your experiment!
Screenshot showing the Steadybit UI elements to import the experiment.json file into the Steadybit platform.
Tags
Kubernetes
Restart
Rolling rollout
GitHub
steadybit/reliability-hub-db/tree/main/recipes/kubernetes-deployment.rolling-rollout
License
MIT
MaintainerSteadybit

Used Actions

See all
HTTP check periodically

Execute HTTP calls and verify responses periodically.

Check

Check

Start Using Steadybit Today

Get started with Steadybit, and you’ll get access to all of our features to discover the full power of Steadybit. Available for SaaS and on-prem!

Are you unsure where to begin?

No worries, our reliability experts are here to help: book a demo with them!

Steadybit logoResilience Hub
Try Steadybit
HubActionsTargetsAdviceExtensionsRecipes
© 2024 Steadybit GmbH. All rights reserved.
Twitter iconLinkedIn iconGitHub icon