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

zyria.de Webseite

Inhaltsverzeichnis

zyria.de Webseite
#

Diese Anwendung stellt die statische Webseite für zyria.de bereit. Der Inhalt wird aus einem Git-Repository mittels git-sync synchronisiert.

Status
#

Status
Uptime
Ping
Avg Response Time
Certificate Expiration
Response Time

Deployment
#

Argo Deployment

Quelle
#

Die Anwendung wird als generisches app-template Helm-Chart von BJW-S Labs bereitgestellt. Es wird ein Webserver (Nginx) installiert, welcher eine statische Seite ausliefert.

Dokumentation
#

Der Quellcode der Webseite befindet sich im Git-Repository pyrox/zyria_de auf der internen Forgejo-Instanz.

Funktion
#

Dieser Dienst stellt die Webseite zyria.de mithilfe des Git-Sync-Musters bereit. Er besteht aus zwei Containern, die sich ein Volume teilen:

  1. git-sync: Dieser Sidecar-Container klont in regelmäßigen Abständen (alle 60 Sekunden) den pages-Branch des pyrox/zyria_de-Git-Repositories in ein geteiltes Volume.
  2. Nginx: Der Hauptcontainer, der als Webserver dient und die vom git-sync-Container bereitgestellten Dateien aus dem geteilten Volume ausliefert.

Dieses Muster stellt sicher, dass Änderungen an der Webseite, die in das Git-Repository gepusht werden, automatisch und ohne Neustart des Pods live geschaltet werden.

Lokale Anpassungen
#

Die Konfiguration erfolgt über die values.yaml-Datei.

Wichtige Einstellungen
#

  • Git-Sync: Die Startargumente des gitsync-Containers definieren das Repository, den Branch und das Synchronisationsintervall.
  • Ingress: Der Zugriff auf die Webseite wird über einen Ingress mit den Hostnamen zyria.de und www.zyria.de ermöglicht.
  • Speicher: Ein emptyDir-Volume wird verwendet, um die geklonten Dateien zwischen den beiden Containern zu teilen. Die Daten sind nicht persistent über Pod-Neustarts hinweg, werden aber bei jedem Start neu geklont.

Installation
#

Die Anwendung wird mittels Kustomize und Helm durch ArgoCD im Kubernetes-Cluster bereitgestellt. Die Konfiguration befindet sich im apps/zyria-de-Verzeichnis. Eine manuelle Installation kann mit folgendem Befehl durchgeführt werden:

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

Abhängigkeiten
#

  • Ein laufender Kubernetes-Cluster.
  • Ein konfigurierter Ingress-Controller (z.B. Traefik).
  • Eine Zertifikatsmanagement-Lösung (z.B. cert-manager) zur Bereitstellung von TLS-Zertifikaten.
Per E-Mail antworten
Fabrice Kirchner
Autor
Fabrice Kirchner
stolzer Vater, Nerd, Admin