Blog
Blockchain and Kubernetes: Stories of Orchestrated Chaos

Blockchain and Kubernetes: Stories of Orchestrated Chaos

Olha Diachuk
May 9, 2024

Have you ever been to Tokyo? The first thing that mesmerized me was the way the subway works (yes, this tautology was made on purpose :) ). This time-obsessed organization of personnel, trains, passengers, its cleaning routine, arrivals, departures based on strict discipline is one of the most important infrastructure arteries of the non-sleeping Tokyo-san. I imagined the whole city wrapped up in the perpetually working net, reminding me of blockchain networks.

In particular, all this subway thing is the perfect analogy for the “blockchain-Kubernetes” relations. Such a complex distributed system needs to be synchronized at each knot, each station, and within each train with zero latency. It needs a special management style that assumes strict rules yet freedom to act. K8s works here as both a communication system for dispatchers, a service delivery rulebook, and a technical guide for the infrastructure of rails, trains, etc.

So, since you’re reading a Dysnix blog, not my imaginary travel blog, we’ll explore the theme of blockchain and Kubernetes in more detail. We’ll examine the most popular cases from the Dysnix portfolio to discover how Kuber solves the challenges of decentralized applications.

What blockchain for Kubernetes is: A wide field for applying k8s

Blockchain networks are a symphony of components—validator nodes, smart contracts, consensus mechanisms—each playing a crucial role. Traditionally, deploying and managing these components and manually managing the version repository was a manual slog.

We get used to imagining the blockchain as an immutable, secure, decentralized, and distributed system, but nobody asked what it costs to make it this way. From the hardware basis—to the extra layers of applications and APIs, each blockchain network or application built on top of it go through the same procedure of deployment, launch, maintenance, and support. Managing those distributed ledgers can be a nightmare of sprawling deployments, manual scaling, and constant monitoring. So, to keep everything working before the k8s appeared, much manual work was required for the fabric network. 

It took hours for operations that require seconds today, thanks to k8s.

What is Kubernetes for blockchain—and why blockchain DevOps like it so much

Kubernetes makes the operational routine simpler, faster, and more controllable. Later, your system becomes more self-sufficient, and you just spend time observing it working with no failure.

Containerize all the node mess and send it on-chain!

This is a DevOps dream. With K8s, we can wrap all blockchain components into containers, lightweight, portable units that package everything an application needs to run. Imagine deploying your entire blockchain network with a single YAML file using kubectl apply -f my-blockchain.yaml. Boom! 

Your validator nodes are up and running across your Kubernetes cluster, pre-configured with the right resources. Need to add a new smart contract? Just build a new container image and deploy it alongside the others. K8s handles the heavy lifting, ensuring consistency and repeatability across deployments.

Here's an example of a code snippet for a basic Kubernetes deployment of a validator node:


YAML
apiVersion: apps/v1
kind: Deployment
metadata:
  name: validator-node
spec:
  replicas: 3 # Scale your validator nodes easily
  selector:
    matchLabels:
      app: validator-node
  template:
    metadata:
      labels:
        app: validator-node
    spec:
      containers:
      - name: validator-node
        image: my-validator-node:latest # Replace with your image
        ports:
        - containerPort: 8080
      resources:
        requests:
          cpu: 100m
          memory: 256Mi

It’s that easy, just a few lines of code. This example of a validator node deployment reminded me of our Nansen case that used k8s:

The infrastructure of Nansen.ai 

Scaling on autopilot

Blockchain traffic can be unpredictable. One minute, it's a trickle of transactions, the next, it's a tsunami. Manually scaling validator nodes to keep up is a recipe for burnout. K8s to the rescue! We can define Horizontal Pod Autoscalers (HPA) that automatically adjust the number of validator node replicas based on predefined metrics like CPU usage or transaction volume.

Imagine a scenario where transaction volume spikes. The HPA detects the increased load and automatically spins up additional validator nodes to handle the surge. Once the traffic subsides, the HPA scales down the nodes, saving precious resources. This kind of intelligent scaling keeps your network performant and cost-effective.

Self-healing features

Stuff happens. Nodes crash, containers fail. But with K8s, you don't have to scramble to fix things manually. K8s employs self-healing mechanisms like liveness and readiness probes to constantly monitor the health of your blockchain network. If a node goes rogue, K8s automatically restarts the container, ensuring your network remains operational with minimal downtime.

Or you might not even know about any troubles because your DevOpses from Dysnix set up node rotating as a self-healing routine; thus, you have 100% healthy nodes on production. Always-availability is a rule for our projects.

Real-world example: Hyperledger Fabric on k8s

Hyperledger Fabric, a popular blockchain framework, leverages K8s for streamlined deployments and management. Fabric components like chaincode and peers are containerized, allowing for easy scaling and versioning. K8s takes care of resource allocation, health checks, and self-healing, freeing developers to focus on building innovative blockchain applications.

What are the alternatives for k8s in blockchain?

While Kubernetes (K8s) has become a popular choice for managing blockchain networks, some alternatives should be considered depending on your specific needs.

  • Cloud-based blockchain services:

    Amazon Managed Blockchain, Azure Blockchain Service, and IBM Blockchain Platform offer pre-configured environments for deploying and managing blockchain networks.
  • Custom deployment solutions:

    This approach takes you back before k8s to the manual building of your infrastructure and automation scripts for deploying and managing the blockchain network.
  • Other container orchestration platforms:

    While not as widely used as K8s in the blockchain space, platforms like Docker Swarm and Mesos also offer container orchestration for Web3 projects.

But how to choose? Let’s find out by comparing these tools and approaches (TL;DR below):

Feature

Kubernetes

Cloud-based Services (CBS)

Custom deployment solutions

Alternative container orchestrators

Deployment

Manual (YAML) or automated tools

Pre-configured environments

Requires development and scripting

Manual (YAML or platform-specific)

Flexibility

High-customizable

Low, limited by platform

High, full control

Depends on platform

Scalability

High-automatic with Horizontal Pod Autoscaler (HPA)

High, managed by platform

High, requires custom scripting

Depends on the platform

Security

Requires configuration with best practices

Managed by platform (shared responsibility model)

Requires custom security implementation

Requires configuration with best practices

Monitoring & Logging

Requires integration with external tools

Managed by platform (limited access)

Requires custom implementation

Requires integration with external tools

Cost

Varied based on infrastructure and resources

Subscription-based pricing

Requires upfront development and infrastructure costs

Varied based on infrastructure and licensing

Ease of use

Moderate, requires some technical expertise

Easy, minimal technical knowledge required

Challenging, requires significant development expertise

Depends on platform familiarity, typically moderate

Vendor lock-In

No, open-source platform

Yes, locked into a specific cloud provider

No, full control over the environment

Depends on the chosen platform

Community & support

Large and active community support

Support provided by cloud vendor

Limited to in-house expertise

Depends on the chosen platform

  • Cloud-based services are a good option for beginners or those who want a quick and easy solution. However, they lack the flexibility and customization offered by K8s or custom solutions.
  • Custom deployment solutions offer the most control but require the most development effort. They are best suited for large organizations with dedicated DevOps teams.
  • Alternative container orchestrators can be a good fit if your team already has experience with them or has specific requirements not met by K8s. However, they may have a smaller community and fewer features specifically designed for blockchain management.
  • In all other cases—Kubernetes is your perfect choice

5 most popular ways how Kubernetes is used for blockchain apps based on unique k8s features

Kubernetes (K8s) has become a game-changer for managing blockchain applications due to its unique features. Here are 5 of the most popular ways K8s empowers blockchain apps:

Simplified, repeatable deployments (Declarative Configuration)

Declarative configuration with YAML files allows you to define the desired state of your blockchain network (e.g., number of validator nodes, resource allocation). It leads to streamlined deployments across environments.

Version control of YAML files ensures consistency and repeatability, which is crucial for blockchain network stability. Imagine deploying a complex multi-node blockchain network with a single kubectl apply command.

Elastic scaling based on demand (HPA)

HPAs automatically scale deployments (e.g., validator nodes) based on predefined metrics like CPU usage or transaction volume. 

This ensures smooth performance during periods of high transaction volume and avoids resource wastage during low traffic periods. Imagine your blockchain network automatically scaling up validator nodes to handle a sudden surge in cryptocurrency transactions.

We at Dysnix went even further and invented our improved version of HPA—the predictive autoscaler that uses AI to mention and react to the first signs of future traffic spikes. 

Predictive autoscaler feature comparison table

Liveness & Readiness probes for high availability

K8s continuously monitors container health using liveness and readiness probes. If a node malfunctions, K8s automatically restarts the container, ensuring high availability.

This feature minimizes downtime and maintains network integrity. A rogue validator node doesn't bring down your entire blockchain network. K8s detects the issue and restarts the container, ensuring continuous operation.

Modularization and isolation with containerization

K8s containers provide isolation and ensure consistent execution environments. This simplifies development, testing, and deployment. Changes to a specific component (e.g., smart contract) are isolated within its container, minimizing cascading failures. 

With k8s, you can easily update a smart contract without affecting other components of your blockchain network.

Declarative network policies & pod security policies

K8s enforces security policies at the network and pod level, restricting communication channels and access privileges. It strengthens overall blockchain security by controlling communication between components and preventing unauthorized access. 

Imagine defining network policies to restrict validator nodes from communicating with untrusted entities, enhancing the security of your blockchain network.

Setting the synchronizing beat for decentralized systems

So there you have it. We hope you like our small journey to the blockchain and Kubernetes relationship. If you have any questions, please feel free to continue our talk on our official X page.

We also invite you to take a closer look at our cases. Dysnix sets up custom tracking for almost every project we work on. Nansen, PancakeSwap, and GotBit are our favorites when it comes to blockchain-k8s synergy.

We kindly invite you to our Web3 chatting lounge, where top C-level blockchain enthusiasts are sharing their challenges and solutions, or just drop us a line directly. We’re always open to new opportunities.

And as always, thank you for reading 🙂

Olha Diachuk
Writer at Dysnix
10+ years in tech writing. Trained researcher and tech enthusiast.
Copied to Clipboard
Paste it wherever you like