4.3 KiB
4.3 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! - Men altså… how did we get here?
- Men altså… how did we get here?
- Bare-metal og vps!
- Docker! … og en del nginx og ruter-mikk…
- wireguard!
- … er k8s løsningen?
- Men hvilken distro skal jeg velge?
- Men hvilken distro skal jeg velge?
- Utfordring: NAT
- helm magic!
- Git-ops & fluxcd!
- Så hva kjører jeg?
- Hva ville jeg gjort anderledes?
- Gode ressurser / Ting å google
- Demo?
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!

Men altså… how did we get here?
Men altså… how did we get here?

Bare-metal og vps!
!pragma layout smetana
actor meg
package Vps {
agent vpsNginx
}
package Hjemme {
boundary ruter
package Server {
agent serverNginx
agent nextcloud
}
}
meg -> vpsNginx
vpsNginx -ri-> ruter : port-forward
ruter -ri-> serverNginx
serverNginx -> nextcloud

Docker! … og en del nginx og ruter-mikk…
!pragma layout smetana
actor meg
package Vps {
agent vpsNginx
}
package Hjemme {
boundary ruter
package Server {
agent serverNginx
package Docker {
agent nextcloud
}
}
}
meg -> vpsNginx
vpsNginx -ri-> ruter : port-forward
ruter -ri-> serverNginx
serverNginx -> nextcloud : expose-port

wireguard!
!pragma layout smetana
actor meg
package Vps {
agent vpsNginx
}
package Hjemme {
package Server {
agent serverNginx
package Docker {
agent nextcloud
}
}
}
meg -> vpsNginx
vpsNginx -ri-> serverNginx : wireguard
serverNginx -> nextcloud : expose-port

veldig enkel måte å sette opp vpn på!
… er k8s løsningen?

- 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
!pragma layout smetana
actor meg
package Vps {
agent k8sController
}
package Hjemme {
package Server {
agent k8sAgent
}
}
meg -> k8sController
k8sController <-> k8sAgent : wireguard

boundary k8sController
package k8s {
agent nginxIngress
agent nextcloud
}
k8sController -> nginxIngress
nginxIngress -> nextcloud

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
- /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