You are working for a Travel company and your travel portal application is a collection of microservices that run on Oracle Cloud Infrastructure Container Engine for Kubernetes.
As per the recent security overview, you have noticed that Oracle has published a newer image of the Operating System used by the worker nodes.
You want to make sure that your application doesn't face any downtime but at the same time the worker nodes gets upgraded to the latest version of the Operating System.
What should you do to get this upgrade done without application downtime? (Choose the best answer.)
Click on the arrows to vote for the correct answer
A. B. C. D.D.
The best answer is B. Here's why:
Option A recommends shutting down the worker nodes, which will result in application downtime. Therefore, it's not the best option.
Option B recommends creating a new node pool using the latest available Operating System image, running kubectl cordon <node name> against all the worker nodes in the old pool to stop any new application pods from getting scheduled, running kubectl drain <node name> """"delete""local""data """"force """"ignore""daemonsets to evict any Pods that are running, and finally deleting the old node pool. This option ensures that new pods get scheduled on the new node pool and existing pods on the old node pool are gracefully terminated before the old node pool is deleted. This approach will result in zero downtime for the application, as the old worker nodes will continue running until all the application pods are migrated to the new worker nodes.
Option C recommends creating a new node pool using the latest available Operating System image, tainting all nodes with a role.kubernetes.io/master taint, and deleting the old node pool. This option doesn't guarantee zero downtime for the application because it doesn't consider the application pods' migration to the new node pool.
Option D recommends draining the worker nodes, downloading patches for the new Operating System image, and patching the worker nodes to the latest Operating System image. This approach doesn't guarantee zero downtime for the application because patching the worker nodes will require them to reboot, resulting in downtime. Also, this option doesn't consider the new node pool's creation and migration of application pods to the new node pool.