Courseiva
Planning and Configuring a Cloud SolutionhardMultiple ChoiceObjective-mapped

Google ACE Planning and Configuring a Cloud Solution Practice Question

An organization needs to deploy a microservices application on Google Kubernetes Engine. Each microservice has different resource requirements, and the team wants to optimize costs by using a mix of spot (preemptible) and regular nodes. They also need to ensure that critical services run on regular nodes. Which GKE feature allows this separation?

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

Use node pools with taints and tolerations on the pods

Node pools in GKE allow you to have groups of nodes with different configurations (e.g., machine type, preemptible vs on-demand). You can then use node affinity or taints/tolerations to schedule pods onto the appropriate node pool.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • Use resource quotas to limit namespace resource usage

    Why it's wrong here

    Resource quotas (ResourceQuota) constrain aggregate CPU, memory, and object counts within a namespace; they do not influence pod-to-node scheduling decisions. A quota cannot distinguish a spot node from a standard node, so it cannot prevent critical pods from landing on preemptible infrastructure. To segregate by hardware lifecycle, you need node-level mechanisms, not namespace-level limits.

  • Use separate clusters for critical and non-critical services

    Why it's wrong here

    Separate clusters for critical and non-critical services isolate control planes and failure domains, but they multiply operational overhead: more clusters mean more control-plane costs, more monitoring, and more complex networking and SRE workflows. In GKE the standard pattern is to use multiple node pools—spot and regular—inside one cluster and separate workloads with taints, tolerations, and node affinity. Cluster separation is a heavier, costlier solution than the targeted node-level approach.

  • Use node pools with taints and tolerations on the pods

    Why this is correct

    Create two node pools, e.g. a regular pool for critical services and a spot/preemptible pool for non-critical work, then taint the spot pool with a key such as spot=true:NoSchedule. Critical pods are deployed without the matching toleration, so the Kubernetes scheduler will never place them on spot nodes; non-critical pods include the toleration and can use the cheaper spot capacity. This precisely controls placement while keeping a single cluster and simplifying operations.

  • Use vertical pod autoscaling

    Why it's wrong here

    Vertical Pod Autoscaling (VPA) analyzes historical usage and updates CPU/memory requests (and sometimes limits) to right-size pods; it has no notion of node lifecycle, taints, or hardware pools. Because VPA only changes resource quantities, it cannot steer pods toward or away from spot nodes. In fact, VPA may resize a pod so it still lands on whatever node matches its existing scheduling constraints—it is a sizing tool, not a placement tool.

About these practice questions

One of 769 original ACE practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

This ACE practice question is part of Courseiva's free Google Cloud certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the ACE exam.