aws-kubernetes-the-hard-way icon indicating copy to clipboard operation
aws-kubernetes-the-hard-way copied to clipboard

A fork of Kelsey Hightower's guide, modified for AWS

AWS Kubernetes The Hard Way

This fork is a modified version of Kelsey Hightower's Kubernetes The Hard Way for making a Kubernetes cluster on AWS. Kelsey's original guide focuses on GCP. The original will be more regularly updated so this fork is only intended to be a convenient reference of AWS-specific commands.

The commands are based on Kelsey's old AWS version of the tutorial, but they have been tweaked and made to fit a more recent version of his guide. The text of the guide has been slightly modified in some places, but my intent is to only modify it where necessary to work with AWS.


This tutorial walks you through setting up Kubernetes the hard way. This guide is not for people looking for a fully automated command to bring up a Kubernetes cluster. If that's you then check out Google Kubernetes Engine, or the Getting Started Guides.

Kubernetes The Hard Way is optimized for learning, which means taking the long route to ensure you understand each task required to bootstrap a Kubernetes cluster.

The results of this tutorial should not be viewed as production ready, and may receive limited support from the community, but don't let that stop you from learning!

Target Audience

The target audience for this tutorial is someone planning to support a production Kubernetes cluster and wants to understand how everything fits together.

Cluster Details

Kubernetes The Hard Way guides you through bootstrapping a highly available Kubernetes cluster with end-to-end encryption between components and RBAC authentication.

Labs

This tutorial assumes you have access to Amazon Web Services. While AWS is used for basic infrastructure requirements the lessons learned in this tutorial can be applied to other platforms.

  • Prerequisites
  • Installing the Client Tools
  • Provisioning Compute Resources
  • Provisioning the CA and Generating TLS Certificates
  • Generating Kubernetes Configuration Files for Authentication
  • Generating the Data Encryption Config and Key
  • Bootstrapping the etcd Cluster
  • Bootstrapping the Kubernetes Control Plane
  • Bootstrapping the Kubernetes Worker Nodes
  • Configuring kubectl for Remote Access
  • Provisioning Pod Network Routes
  • Deploying the DNS Cluster Add-on
  • Smoke Test
  • Cleaning Up