THORChain Docs
DEVSNODES
  • Introduction
  • Using THORChain
    • Roles
      • Liquidity Providers (LPs)
      • Swappers
      • Arbitrageurs
      • Node Operators
    • RUNE
  • How It Works
    • Fees
    • Governance
    • Security
    • Incentive Pendulum
    • Emission Schedule
    • Constants and Mimir
    • THORChain Name Service
  • Ecosystem
  • Technology
    • Bifrost, TSS and Vaults
    • Midgard
    • Cosmos SDK
    • CosmWasm
    • IBC
    • THORChain & Cosmos
  • Frequently Asked Questions
    • Node Operators
    • Liquidity Providers
    • Asset Types
    • Savers
    • Lending
    • RUNEPool
  • THORChain Finance
    • Liquidity
    • Trade Assets
    • Secured Assets
    • TOR
    • RUNEPool
    • Synthetics
    • Savers
    • Lending
  • THORNodes
    • THORNode Overview
      • Node Operations
      • THORNode Stack
      • Risks, Costs and Rewards
    • Cluster Launcher
      • Setup - Linode
      • Setup - Azure
      • Setup - Hetzner Bare Metal
      • Setup - Google Cloud
      • Setup - HCloud
      • Setup - Digital Ocean
      • Setup - AWS
    • Deploying
    • Joining
    • Managing
    • Pooled THORNodes
    • Fullnode
      • Thornode - Kubernetes
      • Thornode - Linux
      • Thornode - Docker
      • Midgard - Linux
      • Midgard - Docker
      • Proxy Setup
    • Alerting
    • Leaving
    • 🛑Emergency Procedures
    • ✔️CHECKLIST
    • Multi-node Deployment
    • Developing
  • Website
  • Community Discord
  • Community Telegram
  • Developer Discord
Powered by GitBook
On this page
  • Deploy a Kubernetes cluster in AWS using EKS service.
  • Requirements
  • Steps
  • Deploy Kubernetes Cluster
  • CONFIGURE kubectl
  • BACKUPS (OPTIONAL)
Export as PDF
  1. THORNodes
  2. Cluster Launcher

Setup - AWS

Setting up a Kubernetes Cluster with AWS

PreviousSetup - Digital OceanNextDeploying

Last updated 9 months ago

Deploy a Kubernetes cluster in AWS using EKS service.

Requirements

  1. AWS account

  2. CLI and AWS credentials configured

  3. AWS IAM Authenticator

  4. kubectl

  5. wget (required for EKS module)

LINUX/MAC is the preferred method of setup.

Windows should choose either:

  1. Deploy a THORNode from a Linux VPS.

  2. Use Windows Subsystem for Linux - ****

Steps

Firstly, clone and enter the . All commands in this section are to be run inside this repo.

git clone https://gitlab.com/thorchain/devops/cluster-launcher
cd cluster-launcher

Install Terraform:

brew install terraform

AWS CLI

brew install awscli
aws configure

You 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

brew install aws-iam-authenticator

Kubernetes Control Tool

brew install kubernetes-cli

wget && jq

brew install wget 
brew install jq

Deploy 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 aws

During the deploy, you will be asked to enter information about your cluster:

  • Name

  • Confirm yes

Or manually:

cd aws/
terraform init
terraform plan # to see the plan
terraform apply

Final success message: Apply complete! Resources: 30 added, 0 changed, 0 destroyed.

If you are a returning node operator and you wish to use the same node name, the Cloudwatch log files from your previous session will block this step. You need to manually delete the logs from your console:

Cloudwatch / Cloudwatch Logs / Log Groups -> "delete"

Deploying a cluster takes ~10 minutes

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 to manually reconfigure kubectl.

make kubeconfig-aws

Or 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 nodes

You 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-backups

Disable backups:

make aws-destroy-backups

Then install the :

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 , or choose a package manager based on your operating system.

Use the package manager to install the AWS CLI.

You also must install and configure the AWS IAM Authenticator tool. ****To install, follow , or choose a package manager based on your operating system.

Use the package manager to install the AWS IAM Authenticator.

You must install and configure the Kubernetes CLI tool (kubectl). ****To install kubectl , follow , or choose a package manager based on your operating system.

Use the package manager to install kubectl.

You also need wget and jq, follow , or choose a package manager based on your operating system.

Use the package manager to install wget and jq Note: You most likely have these installed already.

AWS Region -- see valid

https://docs.microsoft.com/en-us/windows/wsl/about
cluster-launcher repository
terraform CLI
these instructions
homebrew
these instructions
homebrew
these instructions
homebrew
these instructions
homebrew
List of Regions
Regions
Note: AWS EKS is not available in some regions