You are ready to deploy a new feature of a web-based application to production. You want to use Google Kubernetes Engine (GKE) to perform a phased rollout to half of the web server pods. What should you do?
A. Use a partitioned rolling update.
B. Use Node taints with NoExecute.
C. Use a replica set in the deployment specification.
D. Use a stateful set with parallel pod management policy.
Disclaimer
This is a practice question. There is no guarantee of coming this question in the certification exam.
Answer
A
Explanation
A. Use a partitioned rolling update.
(A partitioned rolling update allows you to control the percentage of pods that are updated at a time, which allows you to perform a phased rollout. This way you can incrementally test and monitor the new feature, before it is deployed to all the pods. This approach is useful when you want to minimize the risk of introducing new bugs or breaking changes in your production environment, it allows you to have more control over the process, and it’s less likely to cause service disruption, or to have all the pods down at the same time.)
B. Use Node taints with NoExecute.
(Using Node taints with NoExecute could be used to prevent pods from being scheduled on certain nodes, but it would not be the best option for a phased rollout as it does not allow for a specific percentage or number of pods to be updated.)
C. Use a replica set in the deployment specification.
(A replica set in the deployment specification is used for ensuring that a specified number of replicas of a pod are running at any given time, but it does not provide a way to perform a phased rollout.)
D. Use a stateful set with parallel pod management policy.
(A stateful set with parallel pod management policy is used for managing stateful applications, but it also does not provide a way to perform a phased rollout.
The option A, Using a partitioned rolling update, allows you to specify the percentage of pods that should be updated at a time, so it is the best option for performing a phased rollout.)