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)