add kanzone presentation

This commit is contained in:
andreas 2024-11-14 23:55:57 +01:00
parent 9f26be5a10
commit 22bec2c04a
7 changed files with 287 additions and 0 deletions

BIN
images/baremetal.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

BIN
images/docker.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
images/kubeInternal.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
images/kubeServer.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

BIN
images/minecraft.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
images/server.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 494 KiB

287
presentation_kanzone.org Normal file
View File

@ -0,0 +1,287 @@
* 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!
#+begin_src plantuml :file images/baremetal.png
!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
#+end_src
#+RESULTS:
[[file:images/baremetal.png]]
* Docker! ... og en del nginx og ruter-mikk...
#+begin_src plantuml :file images/docker.png
!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
#+end_src
#+RESULTS:
[[file:images/docker.png]]
* wireguard!
#+begin_src plantuml :file images/docker.png
!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
#+end_src
#+RESULTS:
[[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
#+begin_src plantuml :file images/kubeServer.png
!pragma layout smetana
actor meg
package Vps {
agent k8sController
}
package Hjemme {
package Server {
agent k8sAgent
}
}
meg -> k8sController
k8sController <-> k8sAgent : wireguard
#+end_src
#+RESULTS:
[[file:images/kubeServer.png]]
#+begin_src plantuml :file images/kubeInternal.png
boundary k8sController
package k8s {
agent nginxIngress
agent nextcloud
}
k8sController -> nginxIngress
nginxIngress -> nextcloud
#+end_src
#+RESULTS:
[[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