What Does Node pool Mean?
On This Page
Quick Definition
A node pool is a collection of worker machines (nodes) in a Kubernetes cluster that are all set up the same way. You can create different node pools for different workloads, like one pool with big machines for memory-heavy apps and another with smaller, cheaper machines for test environments. This helps you organize your cluster resources and scale groups of nodes together.
Commonly Confused With
A cluster is the entire Kubernetes environment, including the control plane and all worker nodes (across all pools). A node pool is just a subset of worker nodes within that cluster. The cluster is the whole system; a node pool is a group of nodes with shared configuration.
Think of a cluster as an entire orchestra, while a node pool is the section of string instruments. The orchestra (cluster) includes strings, brass, and percussion (various node pools).
A node selector is a field in a Pod specification that restricts which nodes a Pod can be scheduled on. Node pools are groups of nodes. Node selectors are used to target a pod to a specific node pool by matching labels that exist on those nodes. One is a configuration property of the Pod, the other is a group of nodes.
A node selector is like a filter that says 'only run on nodes with label gpu:true'. A node pool is the group of nodes that actually have that label. Without a node pool, you could still have nodes with that label, but they wouldn't be managed as a group.
A namespace is a logical isolation boundary within a Kubernetes cluster for resources like Pods and Services, but it does not separate compute resources. A node pool is a physical separation of compute nodes. Multiple namespaces can share the same node pool, and a single namespace can use multiple node pools.
Namespaces are like different departments in a company (HR, IT, Finance) that all use the same building floor (node pool). Node pools are different buildings or entire floors dedicated to specific purposes.
Must Know for Exams
Node pools are a frequent topic in certification exams for Kubernetes and cloud platforms, especially at the intermediate and professional levels. In the Certified Kubernetes Administrator (CKA) exam, node pools are relevant under the 'Cluster Architecture, Installation & Configuration' domain, which includes understanding how to manage cluster nodes. While CKA focuses more on bare-metal or self-managed clusters, cloud-based Kubernetes concepts like node pools appear in the context of configuring and maintaining cluster nodes efficiently. The CKA exam may present scenario-based questions where you need to schedule pods to specific node pools using nodeSelectors, taints, and tolerations. You might be asked to add a new node pool to an existing cluster and then deploy a workload that uses that pool. Understanding node pool configuration helps you answer questions about node upgrades, scaling, and resource optimization.
In the Certified Kubernetes Application Developer (CKAD) exam, node pools appear less directly but are still relevant. CKAD tests your ability to define pod specifications and resource requirements. You may need to define a pod that requires a specific node pool via node affinity or nodeSelector. Knowing that node pools exist helps you understand why a pod might not schedule if there is no matching pool. Exams often ask 'Why is this pod stuck in Pending?' and the answer could be that the node pool with the requested label is full or does not exist.
For cloud-specific exams like the Google Associate Cloud Engineer (ACE) and Professional Cloud Architect, node pools are a core topic. In GKE, creating a cluster with multiple node pools is a recommended best practice. The exam may ask how to create a node pool with a specific machine type, how to set autoscaling, or how to migrate workloads from one pool to another. Scenarios often involve cost optimization, where you need to choose the right machine type for a node pool based on workload characteristics.
In AWS Certified Solutions Architect (SAA) and AWS Certified DevOps Engineer exams, node pools are discussed in the context of Amazon EKS. Questions may require you to configure managed node groups (the AWS term for node pools) with launch templates, instance types, and scaling policies. You may also need to set up custom AMIs or security groups per node group. The exam could ask how to isolate sensitive workloads using separate node groups with different IAM roles.
Microsoft Azure Administrator (AZ-104) and Azure Solutions Architect (AZ-305) exams cover Azure Kubernetes Service (AKS) node pools. They test your ability to create user node pools vs. system node pools, scale them, and apply node selectors. Expect questions on upgrading an entire node pool or using availability zones per pool.
Regardless of the exam, typical question types include: 'Which node pool configuration would reduce costs for a batch processing workload?', 'How do you ensure that a Pod runs only on nodes with GPU?', and 'A cluster autoscaler is not adding nodes. What configuration is missing?' The key is to always think in terms of workload characteristics, resource requirements, and cost constraints. Understanding node pools gives you a direct path to answering these questions correctly.
node pools are tested in almost every Kubernetes-related certification, and the depth of understanding required increases with the certification level. Even foundational exams expect you to know the concept and be able to apply it in practical scenarios.
Simple Meaning
Think of a node pool like a fleet of delivery trucks that a company uses. Each truck is a node in your cluster. A node pool is a group of trucks that are all the same model, have the same cargo capacity, and are meant for similar delivery routes. If you need to deliver more packages in a certain area, you can add more trucks of that same model without changing anything else. Similarly, if you have a special type of delivery that needs refrigerated trucks, you create a separate pool of those refrigerated trucks. In the world of containers and Kubernetes, a node pool lets you group virtual machines (VMs) with the same CPU, memory, and storage settings. Each VM in the pool is a node that can run your containerized applications. When your application needs more computing power, the node pool can automatically add more VMs to handle the load. This is called autoscaling. Different node pools can have different machine types or operating systems. For example, one pool might use machines with powerful GPUs for machine learning tasks, while another uses regular machines for a web server. This separation keeps your resources organized and cost-efficient. You can also apply different security settings or labels to each pool, making it easier to manage access controls and deployment rules. A node pool is a logical grouping of nodes in a container cluster that share identical specifications and are managed together, providing flexibility, scalability, and better resource utilization.
Node pools are particularly important because they allow you to isolate workloads. For instance, you might have a production node pool with high-performance machines and a development node pool with standard machines. This ensures that a spike in development activity does not affect production stability. You can also set different scaling limits for each pool, so low-priority jobs can be scaled down automatically when not needed. From a billing perspective, node pools help you track costs per workload, as you can see exactly how many resources each pool consumes. Many cloud providers, like Google Kubernetes Engine (GKE), Amazon EKS, and Azure Kubernetes Service (AKS), offer node pool management as a built-in feature, simplifying cluster administration.
In plain English, a node pool is your way of separating different kinds of work in your cluster so that each type of work gets the right amount of resources and behaves as expected.
Full Technical Definition
A node pool is a collection of compute instances within a Kubernetes cluster that share identical configuration parameters, including machine type (vCPU count, memory, GPU), boot disk size and type, operating system image (e.g., Container-Optimized OS, Ubuntu), metadata, and any custom node labels or taints. Node pools are a fundamental concept in managed Kubernetes services such as Google Kubernetes Engine (GKE), Amazon Elastic Kubernetes Service (EKS), Azure Kubernetes Service (AKS), and IBM Cloud Kubernetes Service. They enable cluster operators to logically separate different workloads, apply distinct scaling policies, and optimize resource allocation without needing to manage individual nodes.
From a technical perspective, when you create a node pool, the cloud provider uses a node template or launch configuration to provision a set of VMs that become the worker nodes in the cluster. Each VM in the pool registers itself with the cluster's control plane and is automatically assigned to the pool based on its configuration. The Kubernetes scheduler then places Pods onto these nodes according to Pod resource requests and any node affinity rules, taints, or tolerations associated with the pool.
Node pools interact with several Kubernetes and cloud-native components. The cluster autoscaler, for instance, monitors the resource utilization of each node pool and automatically adds or removes nodes based on the demands of pending Pods. If a Pod cannot be scheduled because of insufficient resources in the current nodes, the autoscaler triggers the creation of a new VM in that node pool. Conversely, if a node is underutilized for a configurable duration, the autoscaler drains it and terminates it. This scaling happens at the node pool level, not the individual node level, ensuring consistency.
In terms of networking, nodes within a node pool typically share the same virtual private cloud (VPC) subnet, though advanced configurations can stretch across multiple subnets for high availability. The node's IP address is allocated from that subnet, and the node pool can be placed in a specific region or zone for data locality or fault tolerance.
Security aspects include node-level identity management via service accounts, which grant each node pool permissions to access cloud resources like storage buckets or container registries. You can also apply custom security policies, such as read-only root filesystems, to all nodes in a pool. Operating system level security updates can be managed via node pool upgrade strategies, where new VMs are created with the latest image and the old ones are drained and removed.
A node pool's lifecycle includes creation, resizing (vertical or horizontal), upgrading (rolling or surge), and deletion. During upgrades, the cloud provider spins up new nodes with the updated image, then cordons and drains the old nodes to migrate Pods with minimal downtime. This rolling update ensures availability.
From an exam perspective, node pools are tested in the context of cluster management, workload isolation, and autoscaling. You need to understand how to configure node pools with specific machine types, how to use node selectors and node affinity to target Pods to specific pools, and how to set proper resource quotas to avoid over-provisioning. Managed Kubernetes services often provide a default node pool upon cluster creation, but adding additional pools for different use cases is a best practice.
Real-world IT implementation includes using separate node pools for batch processing, data-intensive applications, and GPU-accelerated machine learning models. Organizations also create node pools for system components such as metrics-server or cluster add-ons to ensure they are isolated from user workloads.
Real-Life Example
Imagine you run a large restaurant kitchen. The 'nodes' are the chefs. Each chef has a specific set of skills and tools. A 'node pool' would be a group of chefs who all have the same training and equipment. For example, you could have a 'saute station pool' where all chefs have the same high-heat burners and are trained in quick pan-frying. Another pool could be the 'cold appetizer pool' where chefs use only knives and refrigeration and work on salads and cold platters. If you have a sudden rush of orders for pasta, you can quickly add more chefs to the saute pool because you know exactly what they need and how they work. But if you tried to put a cold appetizer chef in the saute station, they would be slow and might burn the food because they're not set up for it.
Now, map this to IT. The restaurant is your Kubernetes cluster. Each chef is a node (a VM). A node pool is a group of nodes that are exactly the same: same operating system, same amount of RAM, same number of CPU cores. If your application (the customer's order) needs a lot of memory, you want it to run on a 'memory-optimized node pool' where all nodes have large RAM. If another application is CPU-intensive, you put it in a 'compute-optimized pool'. This way, you don't waste money by putting a memory-hungry app on a machine with too little RAM, nor do you waste CPU capacity.
The autoscaler in Kubernetes is like the restaurant manager who watches the queue length. When the queue grows, they add more chefs to the right station (node pool) to handle the load. When it slows, they send some chefs home to save payroll. This ensures you have just the right number of chefs for the volume of orders, while keeping costs under control.
In a real cloud environment, you might have a node pool with 'standard' VMs for normal microservices, a node pool with 'high-CPU' VMs for compute tasks, and a node pool with 'GPU' VMs for machine learning. Each pool can scale independently based on the demands of the workloads that are scheduled to it. This is much more efficient than having one big pool of all-purpose nodes.
Why This Term Matters
Node pools matter because they give you fine-grained control over how your computing resources are used and paid for in a container orchestration environment. Without node pools, you would have a single set of homogeneous nodes, which would force you to run all workloads, whether memory-hungry databases or quick web servers, on the same machine types. This leads to either over-provisioning (wasting money on large machines for small jobs) or under-provisioning (poor performance for demanding apps). Node pools let you match computing power exactly to the needs of each workload group.
From a cost management perspective, node pools allow you to use different pricing models for different pools. For example, you can use preemptible (spot) instances for a pool dedicated to batch jobs that can be interrupted, reducing costs by 60-90%. Meanwhile, your production pool uses on-demand instances to ensure reliability. This hybrid approach optimizes your cloud bill.
Operationally, node pools simplify maintenance. If you need to update the operating system or apply a security patch, you can do it at the pool level. The cloud provider handles rolling upgrades without manual intervention. You can also set up automatic node repair, where unhealthy nodes in a pool are automatically replaced. This reduces the administrative burden on your IT team.
In terms of reliability, node pools allow you to distribute workloads across zones. You can create a node pool with nodes in multiple availability zones, which protects against a single data center failure. You can also separate system workloads (like logging and monitoring) into a dedicated pool so that they are not competing with user applications for resources.
Scalability is another key reason. When traffic spikes, the cluster autoscaler only scales the node pool that is experiencing demand. For instance, if only the front-end web service is getting heavy traffic, only the front-end node pool grows, leaving other pools untouched. This targeted scaling prevents unnecessary cost increases.
Finally, node pools enforce governance. You can apply different security policies, network rules, and compliance controls to each pool. For example, a node pool handling PCI data might have stricter networking and auditing than a pool for public content. This makes audits and security certifications easier to manage.
Overall, node pools are not just an optional feature but a crucial tool for building cost-efficient, resilient, and manageable Kubernetes clusters in production.
How It Appears in Exam Questions
Exam questions about node pools typically fall into several categories: configuration, scenario-based troubleshooting, cost optimization, and security isolation. One common pattern is a scenario where an administrator has created a Kubernetes cluster with a default node pool and now needs to deploy a workload that requires special hardware, such as GPUs or high memory. The question might ask: 'You need to run a machine learning training job on a GKE cluster. The job requires nodes with NVIDIA GPUs. What is the most efficient way to achieve this?' The correct answer would be to create a separate node pool with GPU machine type and configure the training job with a nodeSelector or node affinity to target that pool.
Another frequent question pattern involves autoscaling. For example: 'Your cluster includes two node pools: Pool A (standard VMs) and Pool B (high-memory VMs). The cluster autoscaler is enabled, but you notice that new Pods are not triggering the creation of nodes in Pool B even though Pool A is full. What is the likely cause?' The answer often involves incorrectly configured resource requests or missing node labels. The autoscaler scales a node pool only when Pods that can only be scheduled on that pool (due to node selectors or taints) are pending. If the Pod does not have a selector, it might be scheduled on Pool A, and the autoscaler won't scale Pool B.
Troubleshooting-style questions are also common. For instance: 'A Pod you deployed is stuck in Pending state. You check the Pod events and see '0/3 nodes are available: 3 node(s) didn't match Pod's node affinity/selector.' The Pod yaml has a nodeSelector: gpu: true. However, the cluster has one node pool with the label gpu: true only on nodes created last week. What action should you take?' The answer might be that the node pool was recently scaled down and the GPU nodes no longer exist, or perhaps the label was overwritten. You would need to either re-add the label or confirm the node pool exists.
Cost optimization questions also appear: 'Your company runs a non-production environment that does not require high availability. You want to reduce costs while using a managed Kubernetes service. Which node pool configuration should you recommend?' The correct answer often involves using preemptible VMs (spot instances) for that node pool, reducing the number of nodes, or choosing a smaller machine type.
Security isolation questions: 'You need to ensure that a set of Pods handling sensitive data run on nodes that are tightly controlled and not used by other workloads. What approach should you take?' The solution involves creating a dedicated node pool with taints (e.g., key=security, value=sensitive, effect=NoSchedule) and adding tolerations to the sensitive Pods. This prevents other Pods from landing on those nodes.
Some questions ask about node pools and upgrades: 'You have a node pool running an older operating system version. What is the safest way to upgrade the nodes in the pool without disrupting running applications?' The answer is to perform a rolling upgrade, where the cloud provider creates new nodes with the updated image, then drains and terminates old nodes one by one.
Finally, multi-zone node pools are a topic: 'Your application needs to be resilient to an entire availability zone failure. How should you configure your node pool?' The correct answer is to spread the node pool across multiple zones and ensure the application Pods have anti-affinity rules to distribute them across nodes.
When studying for exams, practice identifying the key constraints in the scenario: resource requirements, cost, security, or high availability. Then map those constraints to a specific node pool configuration. Most exam questions are designed so that only one answer correctly addresses all constraints.
Practise Node pool Questions
Test your understanding with exam-style practice questions.
Example Scenario
Your company, CloudEvents Inc., runs a microservices application on a Kubernetes cluster in Google Kubernetes Engine (GKE). The application has two types of services: a Python-based API server that needs moderate CPU and memory, and a TensorFlow model training service that requires nodes with powerful NVIDIA GPUs. You currently have a single node pool named 'default-pool' with 3 nodes, each having 2 vCPUs and 8 GB RAM. The model training service is not starting because it needs GPU resources that do not exist in the default pool.
To solve this, you need to create a new node pool named 'gpu-pool' with machine type 'n1-standard-8' plus 1 Tesla T4 GPU per node. You configure the pool to have a minimum of 1 node and a maximum of 5 nodes to handle varying training traffic. You also want to ensure that only the training service uses these GPU nodes, so you add a taint to the node pool with key 'gpu' and value 'true' and effect 'NoSchedule'. Then you update the training service Pod specification to include a toleration for that taint and a nodeSelector for 'gpu: true'. This way, the GPU nodes are reserved exclusively for the training workload.
After creation, you test the scenario. You deploy the training service and observe that it is pending until the cluster autoscaler adds a node in the 'gpu-pool'. Once the node is ready, the Pod gets scheduled on it. Meanwhile, your API servers remain on the default pool. Weeks later, the marketing team launches a campaign that causes a traffic spike to the API servers. The CPU utilization on the default pool nodes increases. The cluster autoscaler detects the pending API server Pods and adds an extra node to the default pool (since those Pods do not have the GPU taint toleration). This scaling happens independently from the GPU pool, keeping costs under control.
Later, you need to update the operating system on the default pool nodes due to a security vulnerability. You perform a manual upgrade of the node pool. The GKE process creates three new nodes with the updated OS image, then drains each old node one by one, ensuring zero downtime for your API service. The GPU pool remains untouched. This illustrates how separate node pools provide isolation and targeted management.
This scenario is a typical exam question where you need to identify that a single pool is insufficient, create a new pool with specialized hardware, configure taints and tolerations, and then understand how autoscaling and upgrades work independently per pool.
Common Mistakes
Thinking all nodes in a cluster belong to the same node pool.
A Kubernetes cluster can have multiple node pools, each with different configurations. Assuming a single pool exists can lead to misconfiguring resources or scaling incorrectly.
Check the cluster configuration to identify all existing node pools. Remember that you can create additional pools to meet specific workload requirements.
Assuming node pools automatically balance workloads across all nodes evenly.
Node pools are just groups of nodes with the same configuration. The Kubernetes scheduler decides where to place Pods based on resource requests, affinity rules, and taints, not based on which pool they belong to.
Set resource requests and limits on Pods and use node selectors or node affinity to target specific node pools when needed.
Believing that node pool autoscaling happens at the Pod level.
The cluster autoscaler adds or removes nodes in a pool based on pending Pods, not Pod-level metrics. It does not scale individual Pods; it scales the infrastructure to accommodate Pods.
Understand that Pod scaling is handled by the Horizontal Pod Autoscaler (HPA), while node pool scaling is done by the Cluster Autoscaler. They work together but at different levels.
Applying the same scaling policy to all node pools without considering workload characteristics.
Different workloads have different resource needs and scaling patterns. Using the same min/max node count for all pools can lead to either over-provisioning or under-provisioning.
Analyze each workload's peak utilization and setting appropriate scaling limits per node pool. For example, set a higher max for a pool handling batch jobs that may spike.
Assuming node pools are only relevant for managed Kubernetes services.
Even in self-managed clusters, you can simulate node pools by using node labels and taints to logically group nodes. Many organizations use this approach to organize heterogeneous nodes.
Use Kubernetes node labels and taints to achieve similar isolation and scheduling constraints, even without a cloud provider's managed node pool feature.
Not considering cost differences when choosing machine types for node pools.
Larger or GPU-enabled nodes cost more per hour. If you place an undemanding workload on an expensive pool, you waste money.
Match machine size to workload requirements. Use small, cheap nodes for low-resource services and specialized nodes only for workloads that need them.
Exam Trap — Don't Get Fooled
{"trap":"The exam presents a scenario where the cluster autoscaler is not working and asks why. The answer choices include many reasons, but the correct one is that the node pool has 'autoscaling' disabled in its configuration, even though the cluster itself has autoscaler enabled.","why_learners_choose_it":"Learners often assume that enabling autoscaling at the cluster level automatically enables it for all node pools.
They may also check Pod resource limits but overlook the node pool's own scaling settings.","how_to_avoid_it":"Always remember that autoscaling must be enabled specifically on each node pool. In GKE, use the '--enable-autoscaling' flag or set min/max values during pool creation.
In AWS EKS, configure the node group with scaling configuration. Verify the pool's settings before troubleshooting other issues."
Step-by-Step Breakdown
Identify workload requirements
Before creating a node pool, analyze the application's resource needs (CPU, memory, GPU, storage), lifecycle (long-running vs. batch), and any special security or compliance constraints. This determines the machine type, OS image, and scaling settings for the pool.
Create the node pool with cloud provider CLI or console
Use a cloud provider's tool (e.g., gcloud container node-pools create, eksctl create nodegroup, az aks nodepool add) to define the pool. Specify the machine type, number of nodes (initial count and min/max for autoscaling), disk size, and labels. This provisions the VMs and registers them with the cluster control plane.
Configure node labels and taints on the pool
Node pools can be created with custom labels and taints. Labels help identify nodes that belong to a pool (e.g., pool=highmem). Taints repel Pods that do not have matching tolerations, ensuring only specific workloads use that pool. This step is critical for workload isolation.
Deploy workloads that target the node pool
Write Pod or Deployment YAML files that include nodeSelector or nodeAffinity to match the pool's labels, and tolerations to match the pool's taints. Without these, Pods may be scheduled on any available node, defeating the purpose of dedicated pools.
Enable and configure cluster autoscaler for the pool
Set the minimum and maximum node count for the pool. The cluster autoscaler will then automatically add nodes when there are pending Pods that cannot be scheduled, and remove nodes when they are underutilized. This automation keeps costs aligned with demand.
Monitor and manage node pool health
Use tools like kubectl top nodes, cloud provider dashboards, or monitoring systems (Prometheus, Cloud Monitoring) to track utilization per pool. Perform upgrades when needed by triggering a rolling update of the pool. If nodes become unhealthy, the auto-repair feature can replace them automatically.
Scale or delete node pool as needed
Over time, workload patterns change. You can manually scale a node pool up or down, or delete it entirely if no longer needed. Before deletion, ensure all Pods are migrated or terminated gracefully. The control plane will handle draining and resource release.
Practical Mini-Lesson
In practice, managing node pools effectively requires a blend of cluster administration, cost analysis, and application awareness. Let's walk through a realistic example.
Imagine you are the DevOps lead for an e-commerce platform running on Google Kubernetes Engine. You have three environments: dev, staging, and production. Each environment is a separate cluster, but within your production cluster, you have multiple services: a user-facing storefront, a database backend, a machine learning recommendation engine, and a batch report generator. Each service has different resource requirements and uptime needs. Without node pools, you would have to choose a single machine type for all nodes, which would either be too costly or underpowered.
You decide to create three node pools in your production cluster: 1. 'default-pool' – use n2-standard-4 (4 vCPU, 16 GB RAM) for the storefront and other standard microservices. Set min=3, max=10, with autoscaling enabled. 2. 'db-pool' – use n2-highmem-8 (8 vCPU, 64 GB RAM) for the database backend. Set min=2, max=5, and attach local SSDs for high I/O. Taint with 'db=true:NoSchedule'. 3. 'ml-pool' – use n1-standard-8 with a T4 GPU for the recommendation engine. Set min=1, max=3, taint with 'gpu=true:NoSchedule'.
Now, you deploy your services. The storefront Deployment has no special nodeSelector, so it lands on the default-pool. The database StatefulSet has tolerations and nodeSelector for 'db=true', so it goes to db-pool. The ML service has tolerations and nodeSelector for 'gpu=true', so it goes to ml-pool. The batch report generator uses spot instances to save costs, so you create a fourth pool 'spot-pool' using preemptible VMs with a separate taint.
All goes well until Black Friday. The storefront traffic spikes dramatically. The cluster autoscaler detects pending storefront Pods and adds more nodes to the default-pool, scaling from 3 to 8 nodes. The database and ML pools remain stable because their workloads have not increased. This targeted scaling keeps costs predictable – you are not paying for GPU nodes that are idle.
Later, a security patch for the OS is released. You upgrade the default-pool using a rolling upgrade. GKE creates 8 new nodes with the patched image, then drains and terminates the old ones one by one. The storefront experiences no downtime because new Pods are scheduled on new nodes as they become available. The db-pool and ml-pool are unaffected.
A common mistake in this setup is forgetting to set resource requests and limits on Pods. If the storefront Pods do not have resource requests, the autoscaler may see them as empty and not trigger scaling. Another mistake is not setting the correct taint effect – if you use 'PreferNoSchedule' instead of 'NoSchedule', some Pods might still end up on the wrong pool.
Professionals also use node pools in combination with Pod Priority and Preemption. For critical system Pods (like monitoring agents), create a dedicated node pool with high priority and restrict other Pods via taints. This guarantees that system components always have compute resources.
Finally, consider using the 'budget' burst for node pools – this is a setting in GKE that controls how many nodes can be upgraded simultaneously. A lower budget (e.g., 10%) minimizes disruption but takes longer.
node pools give you surgical control over your cluster's infrastructure. By mastering them, you can build production-grade systems that are cost-effective, resilient, and easy to manage.
Memory Tip
Think 'Pool Party' – each pool has its own party type (machine type), guest list (taints/tolerations), and bouncer (autoscaler). You attend the right pool by showing the right invite (node selector).
Covered in These Exams
Current Exam Context
Current exam versions that test this topic — use these objectives when studying.
Related Glossary Terms
A 2-in-1 laptop is a portable computer that can switch between a traditional laptop form and a tablet form, usually by detaching or rotating the keyboard.
The 24-pin motherboard connector is the main power cable that connects the computer's power supply unit (PSU) to the motherboard, supplying electricity to the motherboard and its components.
Two-factor authentication (2FA) is a security method that requires two different types of proof before granting access to an account or system.
A 3D printer is a device that creates physical objects by depositing layers of material based on a digital model.
5G is the fifth generation of cellular network technology, designed to deliver faster speeds, lower latency, and support for many more connected devices than previous generations.
The 8-pin CPU connector is a power cable from the power supply that delivers dedicated electricity to the processor on a computer's motherboard.
802.1Q is the networking standard that allows multiple virtual LANs (VLANs) to share a single physical network link by tagging Ethernet frames with VLAN identification information.
802.1X is a network access control standard that authenticates devices before they are allowed to connect to a wired or wireless network.
Frequently Asked Questions
Can I change the machine type of an existing node pool?
No, you cannot change the machine type of an existing node pool directly. You must create a new node pool with the desired machine type, then migrate your workloads to it, and finally delete the old pool.
What is the difference between a system node pool and a user node pool?
In AKS, system node pools host critical system Pods (like CoreDNS, metrics-server) and are mandatory for cluster operations. User node pools are for your application workloads. They have different scaling and upgrade behavior to protect system components.
How do node pools help with high availability?
Node pools can be configured across multiple availability zones. Spreading nodes across zones ensures that if one zone fails, workloads can still run on nodes in other zones, providing fault tolerance.
Can I use node pools without autoscaling?
Yes, you can create a node pool with a fixed node count and disable autoscaling. The pool will always have that number of nodes. However, autoscaling is recommended for production to adapt to changes in demand.
What happens when I delete a node pool?
All nodes in the pool are removed. Before deletion, the control plane will drain and evict Pods from those nodes, attempting to reschedule them on other available nodes. If no nodes remain, Pods will become pending.
How do I ensure a Pod runs only on a specific node pool?
Use a nodeSelector in the Pod spec that matches a label assigned to the node pool (e.g., pool=gpu). Also, add tolerations if the node pool uses taints to repel other Pods.