POD Design - Deployment Strategies Flashcards
1
Q
What other strategies than RollingUpdate and Recreate exist?
A
- Blue/Green
- Canary
2
Q
What can the other strategies than RollingUpdate and Recreate be implemented?
A
- best implemented with Service Meshes
3
Q
What is BlueGreen Deployment strategy?
A
- we have the new version deployed alongside the new version
- old: blue
- new: green
- 100% of traffic is routed to blue
- once all tests on green are passed, we switch traffic routing to green all at once
4
Q
How does BlueGreen work in Detail?
A
- Deployment blue with label version=v1
- same label as selector on routing service
- then second deployment green created with label version=v2
- once all tests are passed we switch selector label on service to version=v2
5
Q
What is the Canary Deployment strategy?
A
- deploy the new version and route only a small part of the traffic the the new version
- when this looks good, we upgrade the original version of the application (with RollingUpdate for instance)
- then we delete the canary deployment
6
Q
How do you implement the Canary Deployment Strategy with Kubernetes only?
A
- original version of the deployment deployed (Deployment - primary)
- pods there labeled version: v1
- create new deployment (Deployment - canary) with version: v2 pods
- new label for both Deployment Pods (app: front-end)
- reduce the amount of pods in Deployment - canary to minimal/small value (like 1)
- Change Selector label in service to select app: front-end
- ## since a Service distributes requests to all pods equally, a small amount of users will connect with canary instance
7
Q
What is a caveat of a Canary Deployment with just Kubernetes Deployments and Services?
A
Limited Control of the split between each Deployment
Split-rate will always be dependent on the ratio of pods between the deployments
7
Q
How does a Service Mesh improve the Canary Deployment?
A
- improved control over split ratio
- exact percentage to be distributed can be specified