This tutorial leverages the Amazon Web Services to streamline provisioning of the compute infrastructure required to bootstrap a Kubernetes cluster from the ground up.
The compute resources required for this tutorial exceed the Amazon Web Services free tier.
In this tutorial we use CloudFormation, which enables you to provision AWS resources as a code (YAML file).
As a best practice you should consider using Nested Stacks to combine associated CloudFormation stacks together. However, in this tutorial we provision AWS resources one by one via separated CloudFormation stacks for learning purpose.
All CloudFormation templates are in cloudformation directory of this repository.
Follow the AWS documentation Installing the AWS CLI version 1 to install and configure the aws
command line utility.
$ aws --version
This tutorial assumes a default region and credentials. To configure the AWS CLI, you can follow this instruction: Configuring the AWS CLI - AWS Command Line Interface
$ aws configure
AWS Access Key ID [None]: AKIxxxxxxxxxxxxxMPLE
AWS Secret Access Key [None]: wJalrXUxxxxxxxxxxxxxxxxxxxxxxxxxxxxLEKEY
Default region name [None]: us-west-2
Default output format [None]: json
tmux can be used to run commands on multiple compute instances at the same time. Labs in this tutorial may require running the same commands across multiple compute instances, in those cases consider using tmux and splitting a window into multiple panes with synchronize-panes enabled to speed up the provisioning process.
The use of tmux is optional and not required to complete this tutorial.
Enable synchronize-panes by pressing
ctrl+b
followed byshift+:
. Next typeset synchronize-panes on
at the prompt. To disable synchronization:set synchronize-panes off
.