etherkube
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