Windows nodes

Enable Windows support

This procedure only works for clusters that were created with eksctl and assumes that your eksctl version is 0.24.0 or later.

You can check your version with the following command

eksctl version

The next command will deploy the VPC resource controller and VPC admission controller webhook that are required on Amazon EKS clusters to run Windows workloads.

eksctl utils \
    install-vpc-controllers \
    --cluster eksworkshop-eksctl \

Launch self-managed Windows nodes

Create your node group with the following command

mkdir ~/environment/windows

cat << EoF > ~/environment/windows/windows_nodes.yaml
kind: ClusterConfig

  name: eksworkshop-eksctl
  region: ${AWS_REGION}

  - name: windows-ng
    amiFamily: WindowsServer2019FullContainer
    desiredCapacity: 2
    instanceType: t2.large

eksctl create nodegroup -f ~/environment/windows/windows_nodes.yaml

You can verify that 2 Windows nodes have been added to your cluster by using the command line

kubectl get nodes \
  -L \
  --sort-by=".status.conditions[?(@.reason == 'KubeletReady' )].lastTransitionTime"

Notice the Operating system in the OS column

NAME                                           STATUS   ROLES    AGE     VERSION              OS   Ready    <none>   10d     v1.17.7-eks-bffbac   linux    Ready    <none>   9d      v1.17.7-eks-bffbac   linux   Ready    <none>   9d      v1.17.7-eks-bffbac   linux   Ready    <none>   6h33m   v1.17.6-eks-4e7f64   windows    Ready    <none>   6h32m   v1.17.6-eks-4e7f64   windows

Or by using the AWS EC2 console

Windows EC2 nodes