GithubHelp home page GithubHelp logo

Kubernetes at home for fun and education

Homekube.org aims to set up a full operational kubernetes environment on a baremetal Ubuntu server. The focus is getting something done first and improve your kubernetes skills step by step along a happy path.

Following this tutorial you should have Kubernetes and a sample application installed along with the most useful and popular administration components on your local Ubuntu server(s):

App Tutorial Online
AMD64
Online
Raspberry
Online IAM
Keycloak
'Who am I' echo service whoami.md
Kubernetes dashboard dashboard.md
Grafana monitoring grafana.md
Prometheus metrics prometheus.md
Testing payloads and response times
*1)
workload-testing.md

Where logins are required use demo/demo. For a demonstration of different access levels logins also use simple-user/s3cr3t (supported by Keycloak SSO IAM)

Project philosophy

The idea of this project is to set up a fully functional kubernetes environment on budget hardware - a PC / Server or a Raspberry Pi. While learning step by step the final setup is a complete professional appliance with all major components integrated. All steps are explained in detail and accompanied by publicly accessible online demos.

There are many ways to install Kubernetes locally but for simplicity we'll follow Ubuntu's recommended MicroK8s installation recipes. With just a few commands we will setup a Kubernetes single node locally. For more complex setups including Multi-Host Multi-Cluster on a pile of Raspberrys see also the installation variants.

Requirements

  • A PC / Server or arm64 (e.g. Raspberry 4 or 5) or a Virtual Machine with 4GB memory (8GB recommended) *2)
  • When using a device without persistent memory (e.g. Raspberry) an external NAS drive supporting NFS filesystem.

Base Setup

This tutorial focuses on setting up a containerized environment using a container runtime. *3)
While its more complex than direct installation it offers the additional benefit of running multiple containers / instances of the target hardware.

Setup environment -> Provision container(s)

Service installation

Quick tour

Dashboard -> Helm I -> Helm / Echo Service -> Echo service II

Advanced tour I

Quick tour -> Ingress -> Dashboard II -> Nfs -> Prometheus Metrics -> Grafana

Advanced tour II

Advanced tour I -> Cert manager -> Testing response times and payloads

Pro tour

Advanced tour II -> Dashboard SSO / Oauth2-proxy -> Postgres Storage -> Keycloak installation -> Keycloak config


Footnotes

*1) -> open dashboard 'Request Handling Performance'
*2) An ethernet connection to the target device is required. WLAN does not work out of the box.
NOTE that if you want to use a VM on your developers workstation as a target the installation requires additional steps not covered in this tutorial.
*3) If you prefer a simpler approach follow skipping containers

homekube's Projects

homekube icon homekube

Install and learn Kubernetes at home with hands-on examples and live demos for popular add-ons like Dashboard, Ingress, Grafana, Prometheus, Nfs, Cert-manager, Oauth2-proxy, Postgres and Keycloak

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.