Accelerate Blockchain Deployment with Kubernetes + Pantheon

DISCLAIMER: As of September 2019, Pantheon has been renamed to Hyperledger Besu. In posts prior to September 2019, we refer to the Ethereum client as Pantheon.

Probably our most common request at PegaSys since we started has been providing tooling for Kubernetes. That said, we’re very excited to have a new infrastructure/DevOps team working up not just Kubernetes, but also Ansible, along with improvements to our Docker images to make production “easy” (in quotes, because we know production is never easy!). Our goal for having multiple tools is to make deployment of Pantheon nodes as fast and as simple as possible.

Kubernetes, in particular, supports our mission of getting Pantheon into production-ready, highly available networks. Specifically, it is a good fit for blockchain networks often running on multiple clouds and on-premise. Blockchain networks, especially private networks running IBFT, require different types of nodes - validators, bootnodes, and normal network nodes, so you can configure those arrangements easily for your cluster.

In this post, we’ve provided tools for kubetcl, Helm, and Helmfile, depending on whether you prefer to use the command line or Helm Charts. For using any of these examples, we recommend considering carefully your network needs such as topology, data volume, and logging to ensure each is configured correctly prior to starting any of the tutorials. You can see all of our Kubernetes tooling in our repo.

The following screenshots show an IBFT cluster running using our Helm chart here.

We’re excited to be shipping these tools with new tooling for monitoring via Prometheus, pre-made dashboards in Grafana, with the ability to alert, to provide a full suite of services to keep networks alive and healthy. Our example templates will get these services installed and running automatically as part of the cluster.

The following illustration shows Prometheus monitoring the Pantheon nodes as well as parts of the Kuberntes cluster, so you can then watch for anomalies not only on the nodes, but also on the cluster itself.

The customised Grafana dashboard shows the state of the private network (based on the data that Prometheus scrapes).

We’ll also be putting templates in the marketplaces for Amazon Web Services (AWS) and Microsoft Azure soon, so look out for that! 

For the tutorial on using an IBFT network with kubetcl, start here.

To use Helm, start here.

For Helmfile, start here.

This blog post was written by PegaSys Protocol Engineer Joshua Fernandes with help from Strategy and Business Development Lead, Faisal Khan.

Want the latest PegaSys updates straight to your inbox? Join our mailing list.

PegaSys is a thought leader in the Enterprise Ethereum space. Want to join the team? Check out our list of open roles.