picluster/README.md

122 lines
3.7 KiB
Markdown
Raw Normal View History

2021-08-25 08:44:55 -06:00
# PiCluster
2022-07-20 11:37:02 -06:00
![Pic](https://git.pooper.social/verita84/picluster/raw/branch/master/images/piclusterLogo.png)
2021-08-25 08:44:55 -06:00
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.
2021-10-28 19:38:17 -06:00
[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](http://www.gnu.org/licenses/gpl-3.0)
2021-08-25 08:44:55 -06:00
2022-07-20 11:37:02 -06:00
![Pic](https://git.pooper.social/verita84/picluster/raw/branch/master/images/picluster-mainscreen.png)
2021-08-25 08:44:55 -06:00
## Features
- Move containers to different hosts in the cluster
- Container Load Balancer
- Run commands in parallel across Nodes
- Heartbeat for services
- Easily build and orchestrate Docker images across nodes
- Web interface
- CLI interface
- Monitor host metrics (Disk, CPU, Memory)
- HTTP interface
- Virtual Networking via Swarm
- 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
```
## Cloning this Repository
```
git clone https://git.rage.lol/verita84/picluster.git picluster
```
To clone the developer branch (not recommended unless you know what you're doing):
```
git clone -b dev https://git.rage.lol/verita84/picluster.git picluster
```
## Config file reference
2022-07-20 11:37:02 -06:00
[See Wiki](https://git.pooper.social/verita84/picluster/wiki/Config-Reference)
2021-08-25 08:44:55 -06:00
## 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
2022-07-20 11:37:02 -06:00
[See Wiki](https://git.pooper.social/verita84/picluster/wiki/Installation)
2021-08-25 08:44:55 -06:00
## Container Load Balancer
[See Wiki](https://git.rage.lol/verita84/picluster/wiki/Container-Load-Balancer)
## Upgrading
2022-07-20 11:37:02 -06:00
[See Wiki](https://git.pooper.social/verita84/picluster/wiki/Upgrading)
2021-08-25 08:44:55 -06:00
## Functions-as-a-Service (FAAS)
2022-07-20 11:37:02 -06:00
[See Wiki](https://git.pooper.social/verita84/picluster/wiki/Serverless-%28FaaS%29)
2021-08-25 08:44:55 -06:00
<br>
## Configuring and using the command-line client "pictl"
2022-07-20 11:37:02 -06:00
[See Wiki](https://git.pooper.social/verita84/picluster/picluster/wiki/Pictl)
2021-08-25 08:44:55 -06:00
## SSL/TLS
2022-07-20 11:37:02 -06:00
[See Wiki](https://git.pooper.social/verita84/picluster/wiki/SSL-Configuration)
2021-08-25 08:44:55 -06:00
## Using pm2 to init PiCluster on systemd
2022-07-20 11:37:02 -06:00
[See Wiki](https://git.pooper.social/verita84/picluster/wiki/PM2)
2021-08-25 08:44:55 -06:00
## Automatic Container failover to other hosts
2022-07-20 11:37:02 -06:00
[See Wiki](https://git.pooper.social/verita84/picluster/wiki/Automatic-Container-failover-to-other-hosts)
2021-08-25 08:44:55 -06:00
# Authors and Contributions
2022-07-20 11:37:02 -06:00
* Project created by [Verita84](https://git.pooper.social/verita84).
2021-08-25 08:44:55 -06:00
* [TokinRing](https://github.com/TokinRing), core developer.
* [AidanHarris](https://github.com/aidanharris), core developer.
* PiCluster Logos by chzbacon.
## 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.