As organizations increasingly rely on edge computing to process data closer to where it’s generated, ensuring high availability and reliability becomes crucial for mission-critical applications. In this article, we’ll explore how Radius Method leverages cutting-edge technologies like Zarf, Big Bang, and Iron Bank to deploy edge-ready, highly available Kubernetes clusters.
Radius Method built a new custom Zarf init package, building on top the principles mentioned in the previously released article title “Announcing an Open Sourced Zarf Init Package for Big Bang“. This new Zarf Init package allows for more robust configuration of bootstrapping a K3S cluster, as well as a smaller package that only contains K3S.
The Challenge: Edge Computing and Highly Availability Kubernetes
Edge computing involves processing data at the edge of the network, reducing latency and improving real-time decision-making. However, this distributed architecture introduces new challenges for ensuring high availability. Traditional approaches often rely on centralized management and single points of failure, making them vulnerable to outages and downtime. High availability relies on ensuring that there is not a single point of failure in order to withstand disaster scenarios.
The Solution: Zarf, Big Bang, and Iron Bank
Radius Method’s expertise in edge deployments, high availability, and Kubernetes has led us to develop a comprehensive package using Zarf, Big Bang, and Iron Bank. These technologies enable the creation of highly available, scalable, and secure edge clusters that can withstand failures and ensure business continuity.
Zarf, Big Bang and Iron Bank: Edge-Ready Kubernetes
Zarf is an open-source tool for deploying and managing Kubernetes at the edge. It provides a simple, yet powerful way to create and manage edge clusters, ensuring high availability and scalability.
Big Bang is an Air Force built and maintained open source collection of Helm charts that allow for rapidly deploying applications in a secure manner. Coupled with Iron Bank images, which are updated continuously and vetted against vulnerability scanners, organizations can rapidly focus on their mission rather than developing infrastructure. Think of it as a software factory framework and landing zone.
High Availability Zarf Init Package
The typical Zarf Init package contains much more than K3S because of its need to also install the Zarf Injector, Agent and so on. Because those deployments would already exist at the time of adding additional nodes to a cluster. This approach has two separate packages, one for the initial called “full” and one for subsequent nodes called “minimal”.
To get started you would move the “full” package to your edge device and run the following to install the initial control plane node.
ZARF_VERSION=0.34.0 # Download cosign public key curl -LO https://raw.githubusercontent.com/radiusmethod/zarf-init-bigbang/main/cosign.pub # Pull the full package for the initial cluster node and bootstrapping Zarf zarf package pull oci://ghcr.io/radiusmethod/zarf-init-bigbang-k3s-ha/full:v${ZARF_VERSION} --output-directory zarf-packages/ -k cosign.pub -a amd64 # Install K3S and bootstrap Zarf sudo zarf package deploy zarf-packages/zarf-init-amd64-v${ZARF_VERSION}.tar.zst --components=k3s,git-server -a amd64 -k cosign.pub --confirm --set K3S_ARGS=\"--cluster-init --token=somesharedtoken --disable=traefik --disable=metrics-server --disable=servicelb\"
Once the initial node is ready, you are able to add additional control plane nodes or agents. Take note of the private IP of the control plane node as you will need as an input for the commands below.
Move the minimal package to the next edge device and run the following:
ZARF_VERSION=0.34.0 # The IP of the initial control plane node SERVER_IP=10.10.0.1 # Pull the minimal package additional nodes zarf package pull oci://ghcr.io/radiusmethod/zarf-init-bigbang-k3s-ha/minimal:v${ZARF_VERSION} --output-directory zarf-packages/ -k cosign.pub -a amd64 # Install an agent node sudo zarf package deploy zarf-packages/zarf-init-amd64-v${ZARF_VERSION}.tar.zst -a amd64 -k cosign.pub --confirm --set K3S_CMD=\"agent\" --set K3S_ARGS=\"--token=somesharedtoken --server=https://${SERVERIP}:6443\"
This Zarf init package is open source and ready to use and/or contribute to.
Radius Method has Kubernetes, Zarf, Big Bang, and Iron Bank expertise and can help you with your journey. Contact us for more details.