etherkube icon indicating copy to clipboard operation
etherkube copied to clipboard

Ethereum Kubernetes Sandbox

Ethereum Kubernetes Sandbox

The purpose of the project is to simplify the process of launching a private Ethereum cluster, with the main use case which is testing Ethereum protocol modifications, private Dapp testing or for running a private blockchain.

Features:

  • supports Parity or Geth
  • run different versions in same cluster
  • fast sync or full sync mode
  • blockchain monitoring tools
  • cluster monitoring tools
  • scheduled operations over the cluster (backup, restore, etc)
  • secure access

System requirements

Docker

You need Docker to build container images, download Docker for your platform: https://www.docker.com/products/overview

Kubernetes

Currently EtherKube is being tested against Google Cloud Container, and you have to download latest Gcloud SDK tool from https://cloud.google.com/sdk/downloads

Then install Kubernetes command line client:

gcloud components install kubectl

Rust Compiler

You need Rust compiler and Cargo tool to build Etherkube command line utility. Most simple way would be to install Rustup from https://www.rustup.rs/, which will install and will help you to manage all required Rust components.

Usage

0. Compile tools


make

1. Setup Cloud provider

To start you have to create a new Google Cloud project with a Cloud Containers cluster.

  • Google Cloud - https://console.cloud.google.com
  • Cloud Containers (GKE) - https://console.cloud.google.com/kubernetes/list?project=

2. Configure EtherKube

For Google Cloud project Id is my_project_id and a Cloud Container Cluster named test-cluster-1 run following:


cp etherekube-config.samle.yaml etherekube-config.yaml vim etherekube-config.yaml ./bin/etherkube init

3. Copy binaries

Copy Geth compiled binary for Linux in ./containers/geth-provided/ directory

4. Deploy Geth to the cloud


./bin/etherkube deploy geth-provided

5. Watch how it works


kubectl logs --tail=10 -f <node-geth-XXXX>

(it's safe to Ctrl-C at any moment, to detach from remote log)

License

All configurations and running scripts are provided under Apache 2.0 license