
Explanation:
Option B is the correct choice because it ensures the image rendering microservice has access to the necessary CPU resources by utilizing compute-optimized nodes, without impacting the performance of other microservices running on general-purpose nodes. Option A is incorrect as higher pod priority doesn't optimize resource usage but affects scheduling during contention. Option C is incorrect because general-purpose nodes may not meet the high CPU demands of the image rendering service. Option D is insufficient as it doesn't guarantee efficient resource usage across the entire cluster. For more details, refer to Google Kubernetes Engine documentation on node pools and Kubernetes documentation on scheduling.
Ultimate access to all questions.
No comments yet.
You've developed a complex microservices-based application on Kubernetes Engine. Among these, one microservice dedicated to rendering images demands significant CPU time and an average amount of memory. Your cluster currently uses n2-type nodes, which are well-suited for the other microservices. What strategy would you employ to optimize resource usage across your cluster?
A
Allocate a higher pod priority to the image rendering microservice's pods compared to others, to influence scheduling during resource contention.
B
Create a dedicated node pool with compute-optimized machine-type nodes for the image rendering microservice, and use general-purpose machine-type nodes for the remaining microservices.
C
Assign the image rendering microservice to the general-purpose machine-type node pool, and set up a separate node pool with compute-optimized machine-type nodes for the other microservices.
D
Specify the CPU and memory requirements in the resource requests section of the image rendering microservice's deployment, leaving other microservices' resource requests at default settings.