This repository showcases using Terraform to provision a new VPC and Elastic Kubernetes Service (EKS) cluster with nodes within.
By default, this will create a highly available cluster using public and private subnets, a best practise for production environments.
In terraform.tfvars
set the variables you'd like.
name
and region
must be defined, everything else is optional.
terraform init
terraform apply
See this guide on setting up authentication.
kubectl get nodes -o wide
terraform destroy
Documentation to check out:
Other things you may wish to do:
- Set up the Kubernetes dashboard
- Set up cluster autoscaler
- Set up an ingress controller like nginx ingress controller
- Set up Prometheus and Grafana monitoring
- Set up CI like Jenkins X
- Set up ExternalDNS for integration with Route 53
- Configure control plane logging
- Use Calico for network policy enforcement
- Restrict access to Kubernetes API server