* Hvordan kjøre k8s cluster på hytta for fun and profit! * Hvordan kjøre k8s cluster på hytta for fun +and profit!+ and savings! * Hvordan kjøre k8s cluster på hytta for fun +and profit!+ +and savings!+ uh.... and FUN! [[./images/server.jpg]] * Men altså... how did we get here? * Men altså... how did we get here? [[./images/minecraft.png]] * Bare-metal og vps! [[file:images/baremetal.png]] * Docker! ... og en del nginx og ruter-mikk... [[file:images/docker.png]] * wireguard! [[file:images/docker.png]] veldig enkel måte å sette opp vpn på! * ... er k8s løsningen? #+ATTR_ORG: :width 900 [[./images/k8s-logo.png]] - Distribuert! - Config management! - Mer enn bare containere! - og relevant for jobb! * Men hvilken distro skal jeg velge? * Men hvilken distro skal jeg velge? ** standard / kubeadm - bare base k8s, mangler mange componenter for å faktisk gjøre ting. ** k0s - veldig lightweight, må sette opp en del selv. ** Minikube - enkelt - lager egen vm, kun 1 node ** rancher rke & rke2 - Rke kjører over docker - Rke2 var ikke stabilt når jeg startet ** rancher k3s - egentlig laget for edge, men funker ganske greit for større ting og har mye ute av boksen! - funker i litt mer utradisjonelle k8s miljø * Utfordring: NAT [[file:images/kubeServer.png]] [[file:images/kubeInternal.png]] * helm magic! =helm install -f config.yaml= https://artifacthub.io/ docker hub for helm! * Git-ops & fluxcd! Skriv yaml -> commit til git -> *k8s magic* -> deployed! * Så hva kjører jeg? - Nextcloud - immich - Gitea - Drone cicd - chat-bots - archlinux pakke repo - openldap - bitwarden (vaultwarden) - mail server - jellyfin - k8s componenter! - k3s - openebs - cert-manager & trust-manager - loki / prometheus / grafana - container registry - stakater-reloader - nginx ingress controller - FluxCD * Hva ville jeg gjort anderledes? - all config i git fra starten av! - bruk gitops tidligere * Gode ressurser / Ting å google ** Youtube - Jeff Geerling - TechnoTim - Just me and opensource - Level1Techs ** Reddit - /r/selfhosted - /r/DataHoarder - /r/homelab - /r/HomeServer - /r/k3s - /r/rancher - /r/linux ** StackExchange ** eller, spør meg! * Demo? #+begin_src bash :results drawer replace k3d cluster delete k3d cluster create -p "8081:80@loadbalancer" --agents 2 #+end_src #+begin_src bash :results drawer replace kubectl get nodes #+end_src #+begin_src bash :results drawer replace kubectl get pods -A -o wide #+end_src #+begin_src bash :results drawer replace helm repo add podinfo https://stefanprodan.github.io/podinfo helm install podinfo podinfo/podinfo --set ingress.enabled=true #+end_src #+begin_src bash :results drawer replace curl -H 'Host: podinfo.local' localhost:8081 #+end_src