docs/presentation_kanzone.org

2.8 KiB

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!

/andreas/docs/media/commit/20ddd24d7e8509952c12a230d6a777a6605328fb/images/server.jpg

Men altså… how did we get here?

Men altså… how did we get here?

/andreas/docs/media/commit/20ddd24d7e8509952c12a230d6a777a6605328fb/images/minecraft.png

Bare-metal og vps!

/andreas/docs/media/commit/20ddd24d7e8509952c12a230d6a777a6605328fb/images/baremetal.png

Docker! … og en del nginx og ruter-mikk…

/andreas/docs/media/commit/20ddd24d7e8509952c12a230d6a777a6605328fb/images/docker.png

wireguard!

/andreas/docs/media/commit/20ddd24d7e8509952c12a230d6a777a6605328fb/images/docker.png

veldig enkel måte å sette opp vpn på!

… er k8s løsningen?

/andreas/docs/media/commit/20ddd24d7e8509952c12a230d6a777a6605328fb/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

/andreas/docs/media/commit/20ddd24d7e8509952c12a230d6a777a6605328fb/images/kubeServer.png

/andreas/docs/media/commit/20ddd24d7e8509952c12a230d6a777a6605328fb/images/kubeInternal.png

helm magic!

helm install <whatever> -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?

  k3d cluster delete
  k3d cluster create -p "8081:80@loadbalancer" --agents 2
  kubectl get nodes
  kubectl get pods -A -o wide
  helm repo add podinfo https://stefanprodan.github.io/podinfo

  helm install podinfo podinfo/podinfo --set ingress.enabled=true
  curl -H 'Host: podinfo.local' localhost:8081