Skip to content
This repository has been archived by the owner on Oct 4, 2019. It is now read-only.

ethereumproject/etherkube

Repository files navigation

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.

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