JavaScript HTML CSS Shell
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
agent
docker Add .gitkeep to docker folder to prevent deletion Aug 12, 2017
example
server fix Jan 21, 2018
ssl
web
.editorconfig
.gitignore add .gitignore for product pm2.config, fix rpi docker-compose config Oct 13, 2017
.travis.yml
LICENSE.txt
README.md
RELEASE_NOTES.txt
config-example.json
docker-compose-rpi.yml fix docker-compose configs, fix travis build config Oct 14, 2017
docker-compose.config.json
docker-compose.yml
grafana-dashboard.json fix Jan 25, 2018
kibana-dashboard.json new metric Jan 21, 2018
kibana-graphs.json new metric Jan 21, 2018
package-lock.json Fix issue with exec modal not displaying textarea correctly Dec 27, 2017
package.json fix travis build test error, refactor docker-compose configs Oct 13, 2017
picluster-pm2.config-example.json
pictl Fix travis build error for pictl Aug 28, 2017

README.md

PiCluster

Pic

PiCluster is a simple way to manage Docker containers on multiple hosts. I created this because I found Docker Swarm not that good and Kubernetes was too difficult to install currently on ARM. PiCluster will only build and run images from Dockerfile's on the host specified in the config file. This software will work on regular x86 hardware also and is not tied to ARM.

Build Status License: GPL v3

Pic

Support us on Patreon

Video Demo

Community Chat

Slack

Features

  • Move containers to different hosts in the cluster
  • Run commands in parallel across Nodes
  • Heartbeat for services
  • Easily build and orchestrate Docker images across nodes
  • Web interface
  • Monitor host metrics (Disk, CPU, Memory)
  • HTTP interface
  • Virtual IP Manager
  • Rsyslog Analytics
  • Built-in web terminal to easily run commands on nodes
  • Integrate the Kibana dashboard into PiCluster
  • Integrates with Elasticsearch to store the PiCluster logs and host monitoring metrics .
  • Automatic container failover to different nodes
  • Pull container images from a registry
  • Upload Dockerfile archives to the entire cluster
  • Functions-as-a-Service (FaaS)

Prerequisites

  • Docker
  • Node.js
  • OpenSSL
  • pq
  • git
  • curl

Ubuntu

apt-get install openssl git node docker pq curl

Arch Linux

pacman -S openssl git node docker pq curl

If you are using Docker 1.12.x and earlier, please use PiCluster v1.0

Cloning this Repository

git clone https://github.com/picluster/picluster.git picluster

To clone the developer branch (not recommended unless you know what you're doing):

git clone -b dev https://github.com/picluster/picluster.git picluster

Config file reference

See Wiki

Try PiCluster in Docker

We included a compose file to evaluate PiCluster easily on your laptop. Simply Install Docker on your laptop and do the following:

cd picluster
docker-compose up -d

Finally, in your web browser go to http://127.0.0.1:3003

Installation

See Wiki

Upgrading

See Wiki

Functions-as-a-Service (FAAS)

See Wiki
Video Demo

Configuring and using the command-line client "pictl"

See Wiki

SSL/TLS

See Wiki

Using pm2 to init PiCluster on systemd

See Wiki

Automatic Container failover to other hosts

See Wiki

Authors and Contributions

Images

This work, "Raspy Whale", is a derivative of "raspberry" by Chanut is Industries from the Noun Project used under CC BY, "Sperm Whale" by Oksana Latysheva from the Noun Project used under CC BY, and "Sperm Whale" by Oksana Latysheva from the Noun Project used under CC BY. "Raspy Whale" is licensed under CC BY by Jordan Sinn.