---
title: "Zero Downtime Migration of EKS Node Groups"
description: "Creates an EKS cluster with node groups and a workload. Then covers how to add an additional node group, and use it to migrate the workload with zero downtime."
url: "https://www.pulumi.com/dev/examples/aws-ts-eks-migrate-nodegroups/"
image: "https://www.pulumi.com/assets/og/dev/examples/aws-ts-eks-migrate-nodegroups.png"
---

# Zero Downtime Migration of EKS Node Groups

Creates an EKS cluster with node groups and a workload. Then covers how to add an additional node group, and use it to migrate the workload with zero downtime.

- Source on GitHub: https://github.com/pulumi/examples/tree/master/aws-ts-eks-migrate-nodegroups

## Get started with this example

This example lives in the [pulumi/examples](https://github.com/pulumi/examples/tree/master/aws-ts-eks-migrate-nodegroups) repo. Pull down just this directory to follow along:

```bash
git clone --filter=blob:none --sparse https://github.com/pulumi/examples pulumi-examples
git -C pulumi-examples sparse-checkout set aws-ts-eks-migrate-nodegroups
cd pulumi-examples/aws-ts-eks-migrate-nodegroups
```

Creates an EKS cluster with node groups and a workload, and showcases adding a
node group to use for workload migration with zero downtime.

This is a Kubernetes Day 2 operations walkthrough: it stands up two worker node groups with different instance types and AMIs, deploys the [NGINX Ingress Controller](https://github.com/kubernetes/ingress-nginx) and a simple echoserver app across them, then migrates NGINX onto a new, larger node group with zero downtime before decommissioning the original one.

The migration relies on Pulumi's create-before-delete model and autonaming — the replacement node group is created and workloads are shifted onto it before the original is drained and deleted — combined with Kubernetes high-availability settings (rolling updates, scheduling affinity, and graceful pod termination) so that in-flight requests keep returning `HTTP 200` throughout.

For step-by-step instructions, check out the [tutorial][tutorial-migrate-nodegroups].

[tutorial-migrate-nodegroups]: https://www.pulumi.com/docs/tutorials/kubernetes/eks-migrate-nodegroups/
