โ— LIVE
OpenAI releases GPT-5 APIIndia AI startup raises $120MBitcoin ETF hits record inflowsMeta Llama 4 benchmarks leakedOpenAI releases GPT-5 APIIndia AI startup raises $120MBitcoin ETF hits record inflowsMeta Llama 4 benchmarks leaked
๐Ÿ“… Sun, 29 Mar, 2026โœˆ๏ธ Telegram
AiFeed24

AI & Tech News

๐Ÿ”
โœˆ๏ธ Follow
๐Ÿ Home๐Ÿค–AI๐Ÿ’ปTech๐Ÿš€Startupsโ‚ฟCrypto๐Ÿ”’Security๐Ÿ‡ฎ๐Ÿ‡ณIndiaโ˜๏ธCloud๐Ÿ”ฅDeals
โœˆ๏ธ News Channel๐Ÿ›’ Deals Channel
Home/Cloud & DevOps/Terraform Modular EKS + Istio โ€” Part 4
โ˜๏ธCloud & DevOps

Terraform Modular EKS + Istio โ€” Part 4

EKS Node Groups (Where Your Cluster Actually Gets Compute) In the previous part, we created the EKS control plane. At that point: Kubernetes API exists Cluster is reachable But: ๐Ÿ‘‰ There are no machines to run workloads Thatโ€™s where Node Groups come in. This module creates the actual EC2 instances t

โšกQuick SummaryAI generating...
P

POTHURAJU JAYAKRISHNA YADAV

๐Ÿ“… Mar 27, 2026ยทโฑ 6 min readยทDev.to โ†—
โœˆ๏ธ Telegram๐• TweetWhatsApp
๐Ÿ“ก

Original Source

Dev.to

https://dev.to/jayakrishnayadav24/-terraform-modular-eks-istio-part-4-3p8h
Read Full โ†—

EKS Node Groups (Where Your Cluster Actually Gets Compute)

In the previous part, we created the EKS control plane.

At that point:

  • Kubernetes API exists
  • Cluster is reachable

But:

๐Ÿ‘‰ There are no machines to run workloads

Thatโ€™s where Node Groups come in.

This module creates the actual EC2 instances that:

  • join the cluster
  • run pods
  • execute your applications

๐Ÿ“‚ Module Files

modules/eks-nodes/
โ”œโ”€โ”€ main.tf
โ”œโ”€โ”€ variables.tf
โ””โ”€โ”€ outputs.tf

๐Ÿ“„ variables.tf

variable "cluster_name" {
  description = "Name of the EKS cluster"
  type        = string
}

variable "node_group_name" {
  description = "Name of the EKS node group"
  type        = string
}

variable "node_role_arn" {
  description = "ARN of the EKS node group IAM role"
  type        = string
}

variable "subnet_ids" {
  description = "List of subnet IDs"
  type        = list(string)
}

variable "instance_types" {
  description = "List of instance types"
  type        = list(string)
  default     = ["t3.large"]
}

variable "desired_size" {
  description = "Desired number of nodes"
  type        = number
  default     = 1
}

variable "max_size" {
  description = "Maximum number of nodes"
  type        = number
  default     = 2
}

variable "min_size" {
  description = "Minimum number of nodes"
  type        = number
  default     = 1
}

variable "max_unavailable" {
  description = "Maximum number of nodes unavailable during update"
  type        = number
  default     = 1
}

variable "labels" {
  description = "Key-value map of Kubernetes labels"
  type        = map(string)
  default     = {}
}

๐Ÿง  What these variables control

This module is completely configurable:

  • cluster โ†’ which EKS cluster to join
  • instance_types โ†’ what machines to use
  • scaling โ†’ how many nodes
  • labels โ†’ Kubernetes scheduling

Example thinking

dev โ†’ small nodes (t3.medium)
prod โ†’ bigger nodes (m5.large)

๐Ÿ‘‰ Same code, different behavior.

๐Ÿ“„ main.tf

1. Node Group Resource

resource "aws_eks_node_group" "nodes" {
  cluster_name    = var.cluster_name
  node_group_name = var.node_group_name
  node_role_arn   = var.node_role_arn
  subnet_ids      = var.subnet_ids

What this does

Creates:

๐Ÿ‘‰ EC2 instances managed by EKS

These instances:

  • automatically join the cluster
  • register as Kubernetes nodes

Important inputs

  • cluster_name โ†’ which cluster to join
  • node_role_arn โ†’ permissions for nodes
  • subnet_ids โ†’ where nodes are created

Subnet choice

You are passing:

๐Ÿ‘‰ private subnets

This means:

  • nodes do NOT have public IP
  • more secure
  • traffic goes through NAT

2. Instance Types

instance_types = var.instance_types

What this controls

Defines:

  • CPU
  • Memory
  • cost

Example:

t3.large โ†’ 2 vCPU, 8GB RAM

3. Scaling Configuration

scaling_config {
  desired_size = var.desired_size
  max_size     = var.max_size
  min_size     = var.min_size
}

Meaning

  • desired_size โ†’ current running nodes
  • min_size โ†’ minimum nodes
  • max_size โ†’ maximum nodes

Example

min = 1
desired = 2
max = 5

๐Ÿ‘‰ Cluster can scale between 1โ€“5 nodes

4. Update Configuration

update_config {
  max_unavailable = var.max_unavailable
}

Why this matters

Controls rolling updates.

Example:

max_unavailable = 1

๐Ÿ‘‰ Only 1 node can be down during update

Why important

  • prevents downtime
  • controls deployment safety

5. Labels

labels = var.labels

What labels do

Labels are used by Kubernetes for:

  • scheduling
  • targeting workloads

Example:

env = dev
type = backend

๐Ÿ‘‰ Later you can do:

nodeSelector:
  type: backend

6. Dependency

depends_on = [var.node_role_arn]

Why this is needed

Even though role is passed:

Terraform might not always guarantee order.

So this ensures:

๐Ÿ‘‰ IAM role exists before node creation

๐Ÿ“„ outputs.tf

output "node_group_arn" {
  description = "Amazon Resource Name (ARN) of the EKS Node Group"
  value       = aws_eks_node_group.nodes.arn
}

output "node_group_status" {
  description = "Status of the EKS Node Group"
  value       = aws_eks_node_group.nodes.status
}

๐Ÿง  Why outputs matter

These outputs help in:

  • debugging
  • monitoring
  • integration with other modules

๐Ÿ”ฅ What You Actually Built

EKS Control Plane
        โ”‚
        โ”‚
Managed Node Group (EC2 Instances)
        โ”‚
        โ”‚
Kubernetes Pods run here

โš ๏ธ Real Issues People Face

  • Wrong subnet โ†’ nodes canโ€™t join
  • Missing IAM role โ†’ node creation fails
  • No NAT โ†’ nodes canโ€™t pull images
  • Too small instance โ†’ pods crash

๐Ÿง  Key Takeaways

  • Node group = actual compute layer
  • Control plane alone is useless without nodes
  • Scaling config controls capacity
  • Labels help in workload placement

๐Ÿš€ Next

In Part 5:

๐Ÿ‘‰ Addons + CSI Driver
๐Ÿ‘‰ How storage works in EKS
๐Ÿ‘‰ Why IRSA becomes critical

At this point, your cluster is alive โ€” now we make it usable.

Tags:#cloud#dev.to

Found this useful? Share it!

โœˆ๏ธ Telegram๐• TweetWhatsApp

Read the Full Story

Continue reading on Dev.to

Visit Dev.to โ†—

Related Stories

โ˜๏ธ
โ˜๏ธCloud & DevOps

Stop Copying Skills Between Claude Code, Cursor, and Codex

about 3 hours ago

โ˜๏ธ
โ˜๏ธCloud & DevOps

Agentic Architectures โ€” Article 2: Advanced Coordination and Reasoning Patterns

about 3 hours ago

โ˜๏ธ
โ˜๏ธCloud & DevOps

Agentic Architectures โ€” Article 1: The Agentic AI Maturity Model

about 3 hours ago

โ˜๏ธ
โ˜๏ธCloud & DevOps

Reimagining Creativity: Inside IdeaForge

about 3 hours ago

๐Ÿ“ก Source Details

Dev.to

๐Ÿ“… Mar 27, 2026

๐Ÿ• 3 days ago

โฑ 6 min read

๐Ÿ—‚ Cloud & DevOps

Read Original โ†—

Web Hosting

๐ŸŒ Hostinger โ€” 80% Off Hosting

Start your website for โ‚น69/mo. Free domain + SSL included.

Claim Deal โ†’

๐Ÿ“ฌ AiFeed24 Daily

Top 5 AI & tech stories every morning. Join 40,000+ readers.

โœฆ 40,218 subscribers ยท No spam, ever

Cloud Hosting

โ˜๏ธ Vultr โ€” $100 Free Credit

Deploy cloud servers in 25+ locations. From $2.50/mo. No contract.

Claim $100 Credit โ†’
AiFeed24

India's AI-powered technology news platform. Curated from 60+ trusted sources, updated every hour.

โœˆ๏ธ @aipulsedailyontime (News)๐Ÿ›’ @GadgetDealdone (Deals)

Categories

๐Ÿค– Artificial Intelligence๐Ÿ’ป Technology๐Ÿš€ Startupsโ‚ฟ Crypto๐Ÿ”’ Security๐Ÿ‡ฎ๐Ÿ‡ณ India Techโ˜๏ธ Cloud๐Ÿ“ฑ Mobile

Company

About UsContactEditorial PolicyAdvertiseDealsAll StoriesRSS Feed

Daily Digest

Top AI & tech stories every morning. Free forever.

Privacy PolicyTerms & ConditionsCookie PolicyDisclaimerSitemap

ยฉ 2026 AiFeed24. All rights reserved.

Affiliate disclosure: We earn commissions on qualifying purchases. Learn more