From 5158ac3d981b30611d8a89f51dc5e49f640e9c50 Mon Sep 17 00:00:00 2001 From: Bridget Kromhout Date: Sun, 22 Apr 2018 15:49:32 -0500 Subject: [PATCH 1/2] Clarify rollout params --- slides/kube/rollout.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/slides/kube/rollout.md b/slides/kube/rollout.md index aa8eb0f9..8aa7df09 100644 --- a/slides/kube/rollout.md +++ b/slides/kube/rollout.md @@ -33,6 +33,23 @@ --- +## Checking current rollout parameters + +- Recall how we build custom reports with `kubectl` and `jq`: + +.exercise[ + +- Show the rollout plan for our deployments: + ```bash + kubectl get deploy -o json | + jq ".items[] | {name:.metadata.name} + .spec.strategy.rollingUpdate" + ``` + +] + +--- + + ## Rolling updates in practice - As of Kubernetes 1.8, we can do rolling updates with: @@ -141,6 +158,24 @@ Our rollout is stuck. However, the app is not dead (just 10% slower). --- +## Why 10% slower? + +- We start with 10 pods running for the `worker` deployment + +- Current settings: MaxUnavailable=1 and MaxSurge=1 + +- When we start the rollout: + + - one replica is taken down (as per MaxUnavailable=1) + - another is created (with the new version) to replace it + - another is created (with the new version) per MaxSurge=1 + +- Now we have 9 replicas up and running, and 2 being deployed + +- Our rollout is stuck at this point! + +--- + ## Recovering from a bad rollout - We could push some `v0.3` image @@ -222,6 +257,8 @@ spec: minReadySeconds: 10 " kubectl rollout status deployment worker + kubectl get deploy -o json worker | + jq "{name:.metadata.name} + .spec.strategy.rollingUpdate" ``` ] From 0305c3783f21806bb5d23c6b3bda4c56bf3f0443 Mon Sep 17 00:00:00 2001 From: Bridget Kromhout Date: Mon, 23 Apr 2018 10:52:29 -0500 Subject: [PATCH 2/2] Adding an overview; marking clarification as extra --- slides/kube/rollout.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/slides/kube/rollout.md b/slides/kube/rollout.md index 8aa7df09..a6120b9f 100644 --- a/slides/kube/rollout.md +++ b/slides/kube/rollout.md @@ -158,7 +158,21 @@ Our rollout is stuck. However, the app is not dead (just 10% slower). --- -## Why 10% slower? +## What's going on with our rollout? + +- Why is our app 10% slower? + +- Because `MaxUnavailable=1`, so the rollout terminated 1 replica out of 10 available + +- Okay, but why do we see 2 new replicas being rolled out? + +- Because `MaxSurge=1`, so in addition to replacing the terminated one, the rollout is also starting one more + +--- + +class: extra-details + +## The nitty-gritty details - We start with 10 pods running for the `worker` deployment