/eks-cloudformation

Create an Amazon EKS cluster with CloudFormation in a single command

Primary LanguageShell

Amazon EKS Cluster Creation

This repository contains the following files:

  • eks.yml: a CloudFormation template that defines an EKS cluster, including a VPC, the EKS control plane (master nodes) and the EKS worker nodes.
  • up.sh: a Bash script that applies the CloudFormation template to your AWS account and finalises the cluster creation, including kubectl configuration.

Usage

Prerequisites

  • Install the AWS CLI:
    pip install awscli
  • Install the AWS IAM Authenticator:
    go get -u -v github.com/kubernetes-sigs/aws-iam-authenticator/cmd/aws-iam-authenticator
  • Install kubectl:
    brew install kubernetes-cli

Run

  1. Edit parameters in up.sh:

    • NUM_WORKER_NODES: number of worker nodes for your EKS cluster
    • WORKER_NODES_INSTANCE_TYPE: EC2 instance type for the worker nodes
    • STACK_NAME: name of the CloudFormation stack for your EKS cluster
    • KEY_PAIR_NAME: name of an existing EC2 key pair for connecting to the worker nodes with SSH
  2. Run:

    ./up.sh

Note

Any arguments that you pass to up.sh will be forwarded to the AWS CLI commands within the script. Thus, it is possible to specify an explicit region fo the cluster as follows:

./up.sh --region eu-west-1