Browse the Repo
Browse the Repo
Deploy a Kubernetes cluster on top of Amazon EC2 Kubernetes Service (EKS).
Deploy a fully-managed control plane
Deploy worker nodes in an Auto Scaling Group or using Managed Node Groups
Deploy Pods using Fargate instead of managing worker groups
Zero-downtime, rolling deployment for updating worker nodes
IAM to RBAC mapping
Auto scaling and auto healing
Fine-grained IAM roles for Pods
Deploy Helm securely with automated TLS certificate management
Heterogeneous worker groups that use different instance configurations (e.g AMIs, instance types, security groups, etc).
ALB ingress controller support
External DNS integration with Route 53
|This repo is a part of the Gruntwork Infrastructure as Code Library, a collection of reusable, battle-tested, production ready infrastructure code. If you’ve never used the Infrastructure as Code Library before, make sure to read How to use the Gruntwork Infrastructure as Code Library!|
Kubernetes and EKS core concepts: learn about Kubernetes architecture (control plane, worker nodes), access control (authentication, authorization), resources (pods, controllers, services, config, secrets), and more.
Kubernetes in Action: the best book we’ve found for getting up and running with Kubernetes.
ECS vs EKS: A detailed comparison of EKS with ECS, two Docker orchestration tools available on AWS.
Tradeoffs between Managed Node Groups and Self-Managed ASGs: An overview of the tradeoffs to consider when picking your worker pools.
There are a number of pre-requisites that need to be met prior to attempting to deploy this module. See the Getting Started document to ensure pre-requisites are met prior to attempting to deploy any of the examples or leveraging the EKS modules directly.
If you just want to try this repo out for experimenting and learning, check out the following resources:
examples folder: The
examples folder contains sample code optimized for learning, experimenting, and testing (but not production usage).
If you want to deploy this repo in production, check out the following resources:
How to deploy a production-grade Kubernetes cluster on AWS: A step-by-step guide for deploying a production-grade EKS cluster on AWS using the code in this repo.
EKS Cluster: Production-ready example code from the Reference Architecture:
If you need help with this repo or anything else related to infrastructure or DevOps, Gruntwork offers Commercial Support via Slack, email, and phone/video. If you’re already a Gruntwork customer, hop on Slack and ask away! If not, subscribe now. If you’re not sure, feel free to email us at email@example.com.
Contributions to this repo are very welcome and appreciated! If you find a bug or want to add a new feature or even contribute an entirely new module, we are very happy to accept pull requests, provide feedback, and run your changes through our automated test suite.
Please see Contributing to the Gruntwork Infrastructure as Code Library for instructions.
We're here to talk about our services, answer any questions, give advice, or just to chat.