159 lines
2.8 KiB
Org Mode
159 lines
2.8 KiB
Org Mode
* 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 <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?
|
|
|
|
#+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
|