Merge pull request #232 from bridgetkromhout/rollout-params

Clarify rollout params
This commit is contained in:
Jérôme Petazzoni
2018-04-23 11:32:25 -05:00
committed by GitHub

View File

@@ -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,38 @@ Our rollout is stuck. However, the app is not dead (just 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
- 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 +271,8 @@ spec:
minReadySeconds: 10
"
kubectl rollout status deployment worker
kubectl get deploy -o json worker |
jq "{name:.metadata.name} + .spec.strategy.rollingUpdate"
```
]