Git Product home page Git Product logo

kubernetes-homelab's Introduction

kubernetes-homelab

A set of configuration files I use to run my homelab on Kubernetes.

To Do

  • Use security context to allow containers to use non-root users
  • Use containers that exclusively use non-root users

Services

  • Authelia - single sign-on with multi-factor
  • Cert Manager - retrieves Let's Encrypt certificates for exposed services
  • Dynamic DNS - updates a DNS record with my home IP, to avoid paying for a static IP
  • Nginx Ingress - expose services to the internet, and internally
  • MetalLB - assign load balancer services IPs internally on my network
  • Monitoring - InfluxDB, Grafana, Telegraf, Speedtest.net and UDM data
  • Plex - for playing back media I've ripped off DVDs

Quirks

Sealed Secrets

I'm using Sealed Secrets to store secrets on GitHub without exposing credentials.

Nginx Ingress

I run two separate deployments of the Nginx Ingress controller. One is for internal traffic, and the other is for external traffic.

Each controller has a LoadBalancer service, which are assigned IPs by MetalLB. This allows me to port-forward one LB for external traffic, while leaving the other for accessing services internally.

Each deployment has it's own Ingress class, nginx and nginx-internal. When creating a new Ingress, I can choose whether it should be exposed internally or externally.

In a nutshell: external ingresses are available over the internet, but internal ingresses are only available via Wireguard (a VPN).

kubernetes-homelab's People

Contributors

hugomd 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.