== Netzwerk

Für die Netzwerk-Infrastruktur wurde eine bereits vorhandene Umgebung verwendet. Diese besteht aus einer OPNsense-Firewall und einem vorinstallierten ESXi-Hypervisor. Um das Sitepulse-Netzwerk davon abzugrenzen, wurde ein neues VLAN (ID 1010) mit der Netzwerkadresse 10.0.10.0/24 erstellt. Die Firewall leitet die HTTP(S)-Anfragen mit der URL sitepulse.future-solutions.ch mittels eines NGINX Reverse-Proxy an die IP 10.0.10.10, welche durch einen der Nodes vertreten wird, weiter.

#figure(
  image("../Images/01/netzwerkplan.png", width: 80%),
  caption: [ Netzwerkplan Sitepulse Netzwerk ]
)

#figure(
  image("../Images/01/architecture.png", width: 80%),
  caption: [ K3s Cluster Aufbau ]
)

== Begründung Cilium VIP / Traefik
In unserer Architektur hätte man sich grundsätzlich die virtuelle IP-Adresse von Cilium und den Traefik Ingress Controller sparen können. Die Frontend und Backend Pods könnten direkt vom Nginx Reverse Proxy über einen `NodePort` bei den Nodes angesprochen werden. Nginx hätte alle Funktionälitäten des Traefik Ingress Controllers übernehmen können (Healthcheck, Basic Auth, Path- und Method-based Routing). 

Jedoch wollten wir das Setup so realitätsnah wie möglich gestalten. In der Praxis hat man (sofern keine WAF im Einsatz ist) keinen Reverse Proxy zusätzlich vor den Ingress Controller geschaltet. Der Ingress Controller ist in der Regel direkt über eine virtuelle IP-Adresse erreichbar, so ist es nun auch beim Setup dieses Projekts. Wir konnten so auch etwas dazulernen bei der Konfiguration von Cilium und Traefik mit Kubernetes CRDs. Beim Zugriff aus dem Internet über https://sitepulse.future-solutions.ch/ geht man einfach zuerst via Nginx Reverse Proxy, welcher Name-based Routing macht, auf die virtuelle IP-Adresse von Traefik.