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