Pre-requisites
Let’s now walk through how to deploy a production-grade Kubernetes cluster in AWS, fully defined and managed as code, using the Gruntwork Infrastructure as Code Library.
This walkthrough has the following pre-requisites:
Gruntwork Infrastructure as Code Library
This guide uses code from the Gruntwork Infrastructure as Code Library, as it implements most of the production-grade design for you out of the box. Make sure to read our Introduction to Gruntwork.
caution
You must be a Gruntwork subscriber to access the Gruntwork Infrastructure as Code Library.
Terraform
This guide uses Terraform to define and manage all the infrastructure as code. If you’re not familiar with Terraform, check out A Comprehensive Guide to Terraform, A Crash Course on Terraform, and our Introduction to Gruntwork.
Python and Kubergrunt
Some of the Terraform modules used in this guide call out to Python code and/or
kubergrunt to fill in missing features in Terraform. Make sure you have
Python and kubergrunt
installed on any computer where you will be running Terraform.
Docker and Packer
This guide assumes you are deploying a Kubernetes cluster for use with Docker. The guide also uses Packer to build VM images. If you’re not familiar with Docker or Packer, check out A Crash Course on Docker and Packer and our Introduction to Gruntwork.
AWS accounts
This guide deploys infrastructure into one or more AWS accounts. Check out the How to configure a production-grade AWS account structure guide for instructions. You will also need to be able to authenticate to these accounts on the CLI: check out A Comprehensive Guide to Authenticating to AWS on the Command Line for instructions.