Steadybit logoResilience Hub
Try SteadybitGitHub icon
Steadybit logoResilience Hub

Rollout Restart Deployment

Attack

Attack

execute a rollout restart for a Kubernetes deployment
Install now

Rollout Restart Deployment

execute a rollout restart for a Kubernetes deployment
Attack

Attack

Install now

Rollout Restart Deployment

Attack

Attack

execute a rollout restart for a Kubernetes deployment
Install now

Rollout Restart Deployment

execute a rollout restart for a Kubernetes deployment
Attack

Attack

Install now
Go back to list
Experiment editor showing how a rollout restart attack may be supported by a variety of checks.Experiment editor showing how a rollout restart attack may be supported by a variety of checks.

Introduction

The rollout restart attack helps simulate the rollout of a Kubernetes deployment. More specifically, the attack issues a kubectl rollout restart command. This command adds an annotation with the current time to the Kubernetes deployment, which then forces the ReplicaSet to reconcile the state, i.e., update all pods.

Use Cases

  • Check that a service remains available during rollouts, e.g., with the help of rolling rollouts.
  • Verify how upstream services behave during a rollout of downstream services.
  • Check that load balancer configurations update after updates.
  • See whether persistent connections to a restarting service get re-established.

Rollback

No rollback possible.

Blog Posts

Parameters

NameRequiredDescription
WaitNoWhether to wait for the rollout to complete before completing the step.
Statistics
-Stars
Tags
Kubernetes
Rolling Update
Homepage
hub.steadybit.com/extension/com.steadybit.extension_kubernetes
License
MIT
MaintainerSteadybit
Install now

Useful Templates

See all
Faultless redundancy during rolling update

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 a minimum number of pods remain available when a new release is deployed. 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, e.g., Kubernetes 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 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.

Solution Sketch

  • Kubernetes liveness, readiness, and startup probes
  • Kubernetes deployment strategy
Rolling Update
Restart
Kubernetes

Kubernetes cluster

Kubernetes deployments

More Kubernetes Deployment Actions

See all
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
© 2024 Steadybit GmbH. All rights reserved.
Twitter iconLinkedIn iconGitHub icon