Skip to content

blockchain-etl/tezos-kubernetes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tezos Node in Kubernetes

Tezos is a distributed consensus platform with meta-consensus capability. Tezos not only comes to consensus about the state of its ledger, like Bitcoin or Ethereum. It also attempts to come to consensus about how the protocol and the nodes should adapt and upgrade.

Introduction

This chart bootstraps a single Tezos node deployment on a Kubernetes cluster using the Helm package manager. Docker image was taken from tezos on Docker hub.

Prerequisites

  • Kubernetes 1.8+
  • Helm 2.16
  • PV provisioner support in the underlying infrastructure
  • gcloud

Creating GKE Kubernetes Cluster

CLUSTER_INDEX=0
CLUSTER_NAME=tezos-node-${CLUSTER_INDEX} && echo "Cluster name is ${CLUSTER_NAME}"
MASTER_ZONE=us-central1-a

gcloud container clusters create $CLUSTER_NAME \
    --num-nodes 1 \
    --enable-autoscaling --max-nodes=1 --min-nodes=1 \
    --machine-type=n1-standard-2 \
    --cluster-version latest \
    --enable-autorepair \
    --enable-ip-alias \
    --zone=$MASTER_ZONE

gcloud container clusters get-credentials $CLUSTER_NAME --zone=$MASTER_ZONE

kubectl create -f storageclass-ssd.yaml 
helm init
bash patch-tiller.sh

Installing the Chart

To install the chart with the release name tezos:

$ helm install --name tezos charts/tezos

Follow the instructions in the output of the command to connect to Tezos RPC.

The command deploys Tezos on the Kubernetes cluster in the default configuration. The configuration section lists the parameters that can be configured during installation.

Tip: List all releases using helm list

Uninstalling the Chart

To uninstall/delete the tezos deployment:

$ helm delete tezos --purge

The command removes all the Kubernetes components associated with the chart and deletes the release.

Configuration

The following table lists the configurable parameters of the Tezos chart and their default values.

Parameter Description Default
image.repository Image source repository name tezos/tezos
image.tag tezos release tag. latest-release
image.pullPolicy Image pull policy IfNotPresent
service.rpcPort RPC port 8732
service.p2pPort P2P port 9732
persistence.enabled Create a volume to store data true
persistence.accessMode ReadWriteOnce or ReadOnly ReadWriteOnce
persistence.size Size of persistent volume claim 200Gi
resources CPU/Memory resource requests/limits {}
terminationGracePeriodSeconds Wait time before forcefully terminating container 30

Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,

$ helm install --name tezos -f values.yaml charts/tezos

Tip: You can use the default values.yaml

Check a separate file for more details about additional troubleshooting.