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 DO using DOKS service.
  • Requirements
  • Steps
  • Deploy Kubernetes Cluster
  • CONFIGURE
Export as PDF
  1. THORNodes
  2. Cluster Launcher

Setup - Digital Ocean

Setting up a Kubernetes Cluster with Digital Ocean (DO)

PreviousSetup - HCloudNextSetup - AWS

Last updated 1 year ago

Deploy a Kubernetes cluster in DO using DOKS service.

Requirements

  1. DO account

  2. doctl and DO credentials configured

  3. kubectl

  4. homebrew

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

Then install the :

Install Terraform:

brew install terraform

DOCTL

brew install doctl
doctl auth init --context <NAME>
doctl auth switch --context <NAME>
doctl account get

You will be asked for a Personal Access Token with read/write priveleges (retrieve from the API Panel in the Digital Ocean web console.)

API -> Tokens/Keys -> Create Token.

Make sure you handle your secrets securely! You will need this token twice more for setup and if you navigate away from the API web console it will not be displayed again.

Kubernetes Control Tool

brew install kubernetes-cli

DO Droplet Limit

You will need to increase your Droplet Limit if you get an error like this:

Error: Error creating Kubernetes cluster: POST https://api.digitalocean.com/v2/kubernetes/clusters: 422 (request "8b639077-b8d3-4913-b3ec-8e70283dea49") validation error: worker_node_pool_specs[0].invalid droplet size

On the Digital Ocean web console (Settings > Team > Droplet Limit) you will be able to request the Droplet Limit be increased. 10 Droplets is the default limit, request 25 to begin with.

Check the versions of kubectl that are supported by DO

doctl kubernetes options versions

Make sure that you have installed a version of kubectl that is supported by DO.

wget && jq

brew install wget
brew install jq

Deploy Kubernetes Cluster

Use the commands below to deploy a DOKS cluster:

make do

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

  • Name

  • Confirm yes

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

Deploying a cluster takes ~10 minutes

CONFIGURE

Now that you've provisioned your DOKS cluster, you need to configure kubectl. Customize the following command with your cluster name and region.

doctl kubernetes cluster kubeconfig save <use_your_cluster_name>
kubectl version

If successful, you will see:

Notice: Adding cluster credentials to kubeconfig file found in "/home/user/.kube/config"
Notice: Setting current-context to do-<region_name>-<cluster_name>

Test this configuration,

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.6", GitCommit:"dff82dc0de47299ab66c83c626e08b245ab19037", GitTreeState:"clean", BuildDate:"2020-07-16T06:30:04Z", GoVersion:"go1.14.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.6", GitCommit:"dff82dc0de47299ab66c83c626e08b245ab19037", GitTreeState:"clean", BuildDate:"2020-07-15T16:51:04Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}

To verify, run this, and check the status is "Ready":

kubectl get nodes

NAME                          STATUS   ROLES    AGE     VERSION
<cluster_name>-pool-5xhc1     READY    <none>   6m      v1.18.6

You are now ready to deploy a THORNode.

The allows you to manage your DO services.

Use the package manager to install the doctl.

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.

DO Region -- see valid (use lower-case)

https://docs.microsoft.com/en-us/windows/wsl/about
cluster-launcher repository
terraform CLI
Digital Ocean Control tool
homebrew
these instructions
homebrew
these instructions
homebrew
List of Regions
Kubernetes Availability (note, use lower-case in the terminal)