When working with Google Kubernetes Engine (GKE), youβll come across two powerful concepts:
- π Node Pools
- π Node Selectors
These help you control how your workloads run on nodes inside your Kubernetes cluster. Letβs break them down step by step.
π’ Node Pools in GKE
A Node Pool is basically a group of nodes in a GKE cluster with the same configuration.
- When you create a cluster, GKE automatically creates a default node pool.
- You can add more node pools with different configurations depending on your workload needs.
π Each node in a pool has a label like this:
cloud.google.com/gke-nodepool: default-pool
cloud.google.com/gke-nodepool: linuxapps-pool
So, GKE automatically labels nodes by their pool name.
β¨ Why Node Pools are Useful?
You can categorize workloads by creating node pools with specific configurations. For example:
- π΄ Node pool with local SSDs for high I/O apps
- β‘ Node pool with minimum CPU platform for performance tuning
- π° Node pool with Spot VMs for cost savings
- π₯οΈ Node pool with a specific machine type (e.g., e2-standard-4)
- πΌοΈ Node pool with a specific node image (e.g., Container-Optimized OS vs Ubuntu)
π You can resize node pools by adding/removing nodes.
π You can enable Cluster Autoscaler so node pools automatically scale up/down based on usage.
β οΈ Important: You cannot change a single nodeβs config inside a node pool. Any change applies to the entire pool.
π‘ Kubernetes Node Selectors
A Node Selector is a simple way to tell Kubernetes where your Pod should run.
Itβs part of the Pod spec and works with key-value labels.
Example: If you want a Pod to run only in the linuxapps-pool node pool π
apiVersion: v1
kind: Pod
metadata:
name: my-linux-app
spec:
nodeSelector:
cloud.google.com/gke-nodepool: linuxapps-pool
containers:
- name: my-container
image: nginx
Hereβs what happens:
- Kubernetes looks at your cluster nodes.
- It finds nodes with the label cloud.google.com/gke-nodepool=linuxapps-pool.
- It schedules your Pod there. β
π Quick Recap
- Node Pools = groups of nodes with the same configuration.
- Node Selectors = simple rules to make sure Pods land on the right nodes.
Together, these give you fine-grained control over workload placement in GKE.
π Thanks for reading! If this post added value, a like β€οΈ, follow, or share would encourage me to keep creating more content.
β Latchu | Senior DevOps & Cloud Engineer
βοΈ AWS | GCP | βΈοΈ Kubernetes | π Security | β‘ Automation
π Sharing hands-on guides, best practices & real-world cloud solutions
Top comments (0)