Code Monkey home page Code Monkey logo

pi-cluster's Introduction

Raspberry Pi Kubernetes Cluster

pi-cluster-1.0

K3S Kubernetes Cluster using bare metal ARM-based nodes (Raspberry-PIs) automated with Ansible

This is an educational project to explore kubernetes cluster configurations using an ARM architecture and its automation using Ansible.

The entire process for creating this cluster at home, from cluster design and architecture to step-by-step manual configuration guides, has been documented and it is published in the project website: https://picluster.ricsanfre.com.

This repository contains the Ansible's source code (playbooks/roles) and Cloud-init's configuration files used for automated all manual tasks described in the documentation. The cluster can be re-deployed in minutes as many times as needed for testing new cluster configurations, new software versions or just take you out of any mesh you could cause playing with the cluster.

Scope

Automatically deploy and configure a lightweight Kubernetes flavor based on K3S and set of cluster basic services such as: 1) distributed block storage for POD's persistent volumes like LongHorn, 2) centralized monitoring tool like Prometheus 3) centralized log managemeent like EFK stack (Elasticsearch-Fluentbit-Kibana and 3) backup/restore solution for the cluster like Velero and Restic.

The following picture shows the set of opensource solutions used so far in the cluster, which installation process has been documented and its deployment has been automated with Ansible:

Cluster architecture and hardware

Home lab architecture, showed in the picture bellow, consist of a Kubernetes cluster of 4 nodes (1 master and 3 workers) and a firewall, built with another Raspberry PI, to isolate cluster network from your home network.

See further details about the architecture and hardware in the documentation

Official Site

You can browse more information about Pi Cluster Project on https://picluster.ricsanfre.com/.

The content of this website and the source code to build it (Jekyll static based website) are also stored in this repo: /docs folder.

Usage

Check in the documentation Quick Start guide to know how to use and tweak cloud-init files (/cloud-init folder) and Ansible playbooks contained in this report

About the Project

This project has been started in June 2021 by Ricardo Sanchez

pi-cluster's People

Contributors

ricsanfre avatar cjpf avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.