WebServer
Obsah
Instalace
K3S přeinstalovaný
K3S už má součástí traefik nainstalovaný, konfigurační soubory jdou najít v /var/lib/rancher/k3s/server/manifests/traefik.yaml, ty ale při aktualizaci se přepíšou, proto se musí vytvořit externí soubor
Helm
helm repo add traefik https://traefik.github.io/charts helm repo update helm install traefik traefik/traefik
Pokud chceme už změnit nějaký nastavení v helmu tak můžeme pomocí dodatečného souboru (override.yml)
helm install traefik-dev traefik/traefik -f override.yaml
Konfigurace Helm configu
Vytvoříme si soubor v /var/lib/rancher/k3s/server/manifests/
sudo touch /var/lib/rancher/k3s/server/manifests/traefik-config.yaml sudo nano /var/lib/rancher/k3s/server/manifests/traefik-config.yaml
Základní struktura configu je
apiVersion: helm.cattle.io/v1 kind: HelmChartConfig metadata: name: traefik namespace: kube-system spec: valuesContent: |-
config se uplatní po restartu nebo aplikování
kubectl apply -f /var/lib/rancher/k3s/server/manifests/traefik-config.yaml
HTTP/3
experimental: http3: true entryPoints: name: http3: advertisedPort: 443
Problém s duplicitním treafikem
kubectl api-resources | grep traefik
Pokud se zde nachází dva ty APIVERSION traefiku, znamená to že se zde nachází buď 2 traefiky a nebo jeden byl odstraněn bez smazání api resources, je dobré to smazat a mít jenom ten co funguje, pokud budeme vytvářet middlewares/routes/tls tak si musíme dát pozor na apiversion viz: https://traefik.io/v1alpha1
Aktualizace
Již stažené verze Traefiku pomocí Helm můžeme vidět v /var/lib/rancher/k3s/server/static/charts
sudo ls /var/lib/rancher/k3s/server/static/charts
Let's encrypt
https://doc.traefik.io/traefik/https/acme/
Dashboard
apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: traefik-dashboard spec: routes: - match: Host(`dashboard.clazzor.eu`) kind: Rule services: - name: api@internal kind: TraefikService middlewares: - name: test-auth --- apiVersion: traefik.io/v1alpha1 kind: Middleware metadata: name: test-auth spec: basicAuth: secret: clazzor-auth --- apiVersion: v1 kind: Secret metadata: name: clazzor-auth namespace: default data: users: YWRtaW46JDEkY1E0WWl2NWIkS0hQMGFSZkhkTXVGd2Q5RVVyNGZOLgo=