Windows nodes

Enable Windows support

This procedure only works for clusters that were created with eksctl and assumes that your eksctl version is 0.58.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 \
    --approve

Launch self-managed Windows nodes

Create your node group with the following command

mkdir ~/environment/windows

cat << EoF > ~/environment/windows/windows_nodes.yaml
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
  name: eksworkshop-eksctl
  region: ${AWS_REGION}

nodeGroups:
  - name: windows-ng
    amiFamily: WindowsServer2019CoreContainer
    desiredCapacity: 1
    instanceType: t2.large
    ssh:
      enableSsm: true
EoF

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

You can verify that the Windows node has been added to your cluster by using the command line

kubectl get nodes -l kubernetes.io/os=windows -L kubernetes.io/os

Notice the Operating system in the OS column


NAME                                           STATUS   ROLES    AGE     VERSION              OS
ip-192-168-95-199.us-east-2.compute.internal   Ready    <none>   6h33m   v1.21.5-eks-bc4871b   windows

Or by using the AWS EC2 console

Windows EC2 node