Lightning Kube provides a simple way to deploy a Lightning Node into Kubernetes.
This project is confirmed to work for regtest, simnet, testnet and mainnet on a minikube instance and a gke instance.
This project implements a Lightning Node running in Kubernetes using Lightning Network Daemon (LND) and BTCD deployed by Jenkins X.
- Kubernetes is a container management system. If a project is Dockerized Kubernetes simplifies your project lifecycle.
- Lightning Network Daemon (LND) is a complete implementation of a Lightning Network node.
- Bitcoind is an implementation of a full bitcoin node from bitcoin core.
- BTCD is an implementation of a full bitcoin node written in Go.
- Jenkins X is a CI/CD solution for applications on Kubernetes.
LND currently requires a connection to a full bitcoin node. Lightning Kube consists of the following Kubernetes/Jenkins X ready projects:
You have two options for your full bitcoin node, Bitcoind Kube or BTCD Kube. Currently Bitcoind is recommended as it appears to sync with the entire blockchain faster than BTCD.
If you do not currently have and instance of Kubernetes an excellent place to start is to deploy it locally with Minikube. A new installation of Jenkins X will offer to install Minikube for you but you may want to give Minikube Easy a look as it can simplify and enhance your Minikube installation. Once you're ready to run your Lighting Node on mainnet Google Kubernetes Engine (GKE) is an easy to use cloud based Kubernetes Cluster.
This project itself is actually a Kubernetes/Jenkins X ready implementation of Markserv to allow for real time github style rendering and editing of this README.md file locally. Deploying this project to your own Kubernetes instance would be a simple way to get acquainted with Kubernetes and Jenkins X. There is probably no reason to deploy this project to a production environment. It is intended strictly for learning purposes. If you are already familiar with kubernetes and Jenkins X or just want to get going now then you can move on to installing LND Kube and BTCD Kube.
To install this project:
- Stand up a Kubernetes Cluster and Install Jenkins X.
- Make the directory that will hold this project in you home directory:
mkdir -p ~/Developer/projects
Your installation of this project will look for this directory. If you need to change it the modification can be made in deployment.yaml - Clone this project.
git clone https://github.com/kevinstl/lightning-kube ~/Developer/projects/lightning-kube
- Change to project directory
cd ~/Developer/projects/lightning-kube
- Import this project into your Jenkins X instance.
jx import
If the installation is successful and you installed via Minikube Easy then Jenkins X should have deployed this README.md into your kubernetes cluster.