add kanzone presentation
This commit is contained in:
parent
9f26be5a10
commit
22bec2c04a
BIN
images/baremetal.png
Normal file
BIN
images/baremetal.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.7 KiB |
BIN
images/docker.png
Normal file
BIN
images/docker.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
BIN
images/kubeInternal.png
Normal file
BIN
images/kubeInternal.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.8 KiB |
BIN
images/kubeServer.png
Normal file
BIN
images/kubeServer.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.4 KiB |
BIN
images/minecraft.png
Normal file
BIN
images/minecraft.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 20 KiB |
BIN
images/server.jpg
Normal file
BIN
images/server.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 494 KiB |
287
presentation_kanzone.org
Normal file
287
presentation_kanzone.org
Normal 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
|
||||
Loading…
Reference in New Issue
Block a user