jakubhajek / terraform-aws-simple-eks

Simple Terraform module to manage an AWS EKS cluster

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Simple EKS Module

Selecting an Instance Type for EKS Clusters

Several factors need to be considered when choosing an instance type for an EKS cluster:

  • Number of vCPUs
  • Amount of memory
  • Networking capacity
  • Cost

Another important criteria is the maximum number of pods the cluster can concurrently run. In a cluster using native VPC networking the maximum number of pods is limited by the number of network interfaces in an instance. Here you can find a list of pod count limits per instance type.

Alernative pod networking solutions exist that lift the pod density limitation. This module supports using Calico CNI to allow for a much higher number of pods per node. This is especially useful when many pods are expected to be running on the cluster, but they will be mostly idle.

Development

Testing

We use Terratest to run integration tests.

Before running the tests the following environment variables must be set:

  • AWS_PROFILE: the AWS profile to use for the test
  • AWS_DEFAULT_REGION: region where the test cluster will be created
  • SIMPLE_EKS_TEST_VPC_NAME: VPC to be used by the test cluster

Then, go into test folder and run:

go test -v -timeout 30m

References

Calico

Launch templates are needed for Calico:

About

Simple Terraform module to manage an AWS EKS cluster

License:Other


Languages

Language:HCL 86.6%Language:Go 13.4%