Setup - AWS
Setting up a Kubernetes Cluster with AWS
Deploy a Kubernetes cluster in AWS using EKS service.
Requirements
AWS account
CLI and AWS credentials configured
AWS IAM Authenticator
kubectlwget(required for EKS module)
LINUX/MAC is the preferred method of setup.
Windows should choose either:
Deploy a THORNode from a Linux VPS.
Use Windows Subsystem for Linux - https://docs.microsoft.com/en-us/windows/wsl/about****
Steps
Firstly, clone and enter the cluster-launcher repository. All commands in this section are to be run inside this repo.
git clone https://gitlab.com/thorchain/devops/cluster-launcher
cd cluster-launcherThen install the terraform CLI:
Install Terraform:
brew install terraformAWS CLI
In order for Terraform to run operations on your behalf, you must install and configure the AWS CLI tool. ****To install the AWS CLI, follow these instructions, or choose a package manager based on your operating system.
Use the package manager homebrew to install the AWS CLI.
brew install awscli
aws configureYou will be asked for you AWS access credentials (retrieve from AWS IAM from the AWS web console.)
IAM -> User -> Security Credentials -> Create Access Key.
Make sure you handle your secrets securely!
AWS IAM Authenticator
You also must install and configure the AWS IAM Authenticator tool. ****To install, follow these instructions, or choose a package manager based on your operating system.
Use the package manager homebrew to install the AWS IAM Authenticator.
brew install aws-iam-authenticatorKubernetes Control Tool
You must install and configure the Kubernetes CLI tool (kubectl). ****To install kubectl , follow these instructions, or choose a package manager based on your operating system.
Use the package manager homebrew to install kubectl.
brew install kubernetes-cliwget && jq
You also need wget and jq, follow these instructions, or choose a package manager based on your operating system.
Use the package manager homebrew to install wget and jq &#xNAN;Note: You most likely have these installed already.
brew install wget
brew install jqDeploy Kubernetes Cluster
Use the commands below to deploy an AWS EKS cluster. You can run the make command that automates those command for you like this:
make awsDuring the deploy, you will be asked to enter information about your cluster:

Name
AWS Region -- see valid List of Regions
Confirm
yes


Or manually:
cd aws/
terraform init
terraform plan # to see the plan
terraform applyFinal success message: Apply complete! Resources: 30 added, 0 changed, 0 destroyed.
CONFIGURE kubectl
This is done automatically during provisioning. To configure authentication from the command line, use the following command. It will get the access credentials for your cluster and automatically configure kubectl in case you need to manually reconfigure kubectl.
make kubeconfig-awsOr get your kubeconfig file manually:
(cd aws && aws eks --region $(terraform output -raw region) update-kubeconfig --name $(terraform output -raw cluster_name))To verify, run this, and check the status is "Ready":
kubectl version
kubectl cluster-info
kubectl get nodesYou are now ready to deploy a THORNode.
BACKUPS (OPTIONAL)
Once your node is running, use the following command to automatically backup the Persistent Volumes for your Kubernetes cluster. This may help in recovering your node in the event of a disaster.
Enable backups:
make aws-backupsDisable backups:
make aws-destroy-backupsLast updated