docs/k8s_presentation.org
2022-11-02 13:49:05 +01:00

166 lines
2.4 KiB
Org Mode

#+TITLE: K8s & Homelabbing
* Hva er kubernetes?
#+ATTR_ORG: :width 900
[[./images/k8s-logo.png]]
** "An Operating system for the cloud"
- Mange distribusjoner!
- Massevis av "kubernetes programmer"
** Distribuert konfigurasjonssystem
- Nodes
- Master nodes
- Worker nodes
- Komponenter som leser konfigurasjonen
- kubelet
- overlay network
- service proxy
- load balancer
- storage manager
- ingress manager
- ...
* Hvorfor kjøre homelab?
- Læring
- Kostnad
- Privacy
- Morro!
[[./images/nextcloud.png]]
* Hva kjører i min homelab?
- Nextcloud
- Gitea
- Drone cicd
- chat-bots
- aur repo
- openldap
- bitwarden
- mail server
- backup
- jellyfin (soon(tm))
- k8s componenter!
- k3s
- openebs
- cert-manager
- loki
- prometheus
- grafana
- container registry
- nginx ingress controller
- FluxCD
* Hvordan kjøre din egen k8s?
- k3s
- rancher
- k0s
- minikube
- ...
** Med docker!
- k3d
- kind
** Yaml, yaml, yaml, yaml...
* Hardware
- Single machine
- Raspberry pi cluster
- online vps
- Virtuelle maskinger
- Cross-cloud
- Hybrid cloud
** Hva hvis nodes ikke er på samme nettverk?
Wireguard!
* K3s
** Kommer med mye essentials ut av boksen
- Flannel overlay
- Traefik ingress
- KlipperLB LoadBalancer
- LocalProvisioner StorageClass
- CoreDNS
** Lightweight og Customizable
- Single Binary
- Nesten alle komponenter kan byttes ut
** Bygget mer for "utradisjonelle" k8s miljø
- Flannel
- KlipperLB
* Hvordan putter jeg ting i clusteret?
** Manuelt
- docker hub
- MER YAML!
** Helm!
- artifacthub
** Fluxcd!
* 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
* 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