Skip to content

Rolling Update Protection #83

@rhefner1

Description

@rhefner1

Currently when you update the RedisFailover settings (either sentinels or the main Redis nodes), the operator performs a rolling update. Each pod is updated and then Kubernetes waits for the readiness probe to pass before moving on.

The problem with this is that the readiness probe doesn't indicate that the node has joined the cluster and is actually an active node.

I propose the following changes in the statefulset or deployment YAML unless you think there's a better way to solve this:

spec:
  minReadySeconds: 120
  updateStrategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1
[...]

This makes sure that only one node is down during a rolling update and that it waits 120 seconds after the readiness probe passes before moving onto the next pod. There's no guarantee that the node will actually be ready after that time but it's better than not having it.

What do you think?

cc: @jchanam

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions