Zum Hauptinhalt springen
  1. Beiträge/
  2. Kleines Homelab/
  3. k3s-prod: Kubernetes Cluster Konfiguration und Anwendungsbereitstellung/

hx53.de

Inhaltsverzeichnis

hx53.de
#

Stellt die statische Webseite für hx53.de bereit. Gebaut wird die Seite im Quell-Repository, hier wird nur ausgeliefert.

Quelle
#

Generisches app-template-Helm-Chart von BJW-S Labs mit dem Upstream-Image nginxinc/nginx-unprivileged und git-sync. Die nginx-Konfiguration kommt aus der Kustomize-Component components/static-site und ist für alle statischen Seiten im Cluster dieselbe.

Dokumentation
#

Der Quellcode der Webseite liegt im Repository pyrox/hx53_de auf der Forgejo-Instanz.

Funktion
#

git-sync klont alle 60 Sekunden den pages-Branch in ein gemeinsames emptyDir-Volume und hängt den Symlink html atomar auf den neuen Stand um. nginx liefert aus, was dahinter liegt. Ein neuer Seiteninhalt ist damit nach spätestens einer Minute live, ohne Neustart des Pods.

Beide Container laufen ohne Root-Rechte und mit schreibgeschütztem Root-Dateisystem. nginx lauscht auf Port 8080, der Service bildet Port 80 darauf ab.

Lokale Anpassungen
#

Die Konfiguration erfolgt über values.yaml.

Wichtige Einstellungen
#

Einstellung Ort Wert
Repository und Branch GITSYNC_REPO, GITSYNC_REF im Container gitsync pyrox/hx53_de, pages
Hostnamen Ingress hx53.de, www.hx53.de
nginx-Konfiguration components/static-site gemeinsam mit den anderen statischen Seiten

Das Repository ist öffentlich, git-sync braucht keine Zugangsdaten.

Installation
#

Bereitgestellt über ArgoCD mit Kustomize und Helm. Von Hand:

1kubectl kustomize --enable-helm apps/hx53-de | kubectl apply -n hx53-de -f -

Abhängigkeiten
#

  • Ingress-Controller (Traefik)
  • cert-manager für das TLS-Zertifikat
  • reloader, damit Änderungen an der nginx-Konfiguration ankommen
  • Forgejo-Instanz mit dem Quell-Repository. Fällt sie aus, liefert ein laufender Pod den zuletzt geholten Stand weiter aus.
Fabrice Kirchner
Autor
Fabrice Kirchner
stolzer Vater, Nerd, Admin