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

2.4 KiB

K8s & Homelabbing

Hva er kubernetes?

/andreas/docs/media/commit/9f26be5a100b42bc1c4558c4baab43821f5b0165/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!

/andreas/docs/media/commit/9f26be5a100b42bc1c4558c4baab43821f5b0165/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?

  k3d cluster delete
  k3d cluster create -p "8081:80@loadbalancer" --agents 2
  kubectl get nodes
  kubectl get pods -A -o wide
  helm repo add podinfo https://stefanprodan.github.io/podinfo

  helm install podinfo podinfo/podinfo --set ingress.enabled=true
  curl -H 'Host: podinfo.local' localhost:8081