From 6016dc92afb835179d7a594c6a0f56e5612b116c Mon Sep 17 00:00:00 2001 From: Tim Wall Date: Fri, 8 May 2026 14:02:55 +0200 Subject: [PATCH] UI + Windows --- Praxisbericht.tex | 8 ++++++++ literatur.bib | 31 ++++++++++++++++++++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/Praxisbericht.tex b/Praxisbericht.tex index d664a70..b04dcc3 100644 --- a/Praxisbericht.tex +++ b/Praxisbericht.tex @@ -178,6 +178,14 @@ Nachdem Graylog auf dem Cluster lief und ein initiales Verständnis für Kuberne Generell ist der selektron-Chart Modular aufgebaut und erlaubt in einer Zentralen Datei das Ändern aller relevanten Parametern. Durch die hohe Konfigurabilität und Helms Unterstützung von \glqq{}Overlays\grqq{}, partiellen Konfigurationsdateien welche mit der Kern-Konfiguration zusammengeführt werden, um Wiederholungen zu vermeiden, können Änderungen einfach und gezielt vorgenommen werden. +Eine weitere Anforderung ist eine Verwaltungsübersicht für das Kubernetes-Cluster, da Werkzeuge wie \texttt{kubectl} und \texttt{Helm} zwar alle Funktionalitäten von Kubernetes abdecken, sich jedoch Personalschulung als aufwändig erweist und der Aufwand für simple und repetetive Aufgaben größer ist als Notwendig. Als Visualisierung wurde sich auf Headlamp\cite{uiHeadlamp}, den offiziellen Nachfolger des Kubernetes-Dashboards\cite{uiHeadlampDeprecated} und k9s\cite{uiK9s}, ein grafisches Kommandozeilentool geeinigt. k9s ist dabei besonders auf Geschwindigkeit und Tastaturbasiertes bedienen getrimmt, vergleichbar mit dem Text-Editor vim, und umfässt eher Aufgaben im Bereich des Developments von einzelnen Komponenten auf dem Cluster (Komponenten anzeigen \& editieren, Logs durchforsten). Headlamp bringt dagegen mehr Bedienkomfort, eine Standardmäßige Auflistung aller existierenden Kubernetes-Komponenten und CRDs (anstatt k9s' Such-basiertes Modell zur Komponentenauswahl), eine Map, welche existierende Komponenten miteinander Verbindet um sie Logisch zu gruppieren, und Plugin-Support. Da beide mit Kubeconfigs arbeiten, sind sie sofern \texttt{kubectl} eingerichtet ist, ohne weiteren Konfigurationsaufwand benutzbar. Besonders Headlamp hat für Überzeugung im Team gesorgt, da es auch ohne Kubernetes-Grundlagen vergleichsweise sehr einfach zu bedienen ist. + +Kernbestandteil der mir initial gegebenen Anforderungsliste war die Evaluation der Nutzbarkeit von Kubernetes auf Windows-basierten Systemen. Während Kubernetes unterstützt, Worker-Nodes auf Windows laufen zu lassen, gibt es keine Control-Plane die für Windows konzipiert ist, da Windows im Umfeld der Containerisierung keine Vorteile gegenüber Linux bietet, und der Mehraufwand nicht rechtfertigbar ist. Die Problemstellung lässt sich trotzdem lösen, da der Windows-Kernel seit Windows 10 bzw. Windows-Server 2016 Hyper-V mitliefert\cite{windowsHyperVIntro}. Hyper-V ist Microsofts Type-1 (Bare-Metal) Hypervisor, vergleichbar mit Linux' KVM. Hypervisor sind Software, die es erlauben, auf Host-Systemen mehrere Virtuelle Maschinen (VMs), sogenannte Guest-Systeme, laufen zu lassen. Dabei unterscheidet man zwischen Type-1 und Type-2 Hypervisorn. Der Vorteil von Type-1 Hypervisorn ist, dass diese parallel zum Kernel laufen und unabhängig Userspace des Host-Systems sind, während Type-2 Hypervisor auf dem Host-Betriebssystem laufen. Damit sind Type-2 Hypervisor einfacher zu bedienen, jedoch langsamer und unsicherer. Der Clou ist, mithilfe von Hyper-V eine Linux-VM aufzusetzen auf welcher das Cluster läuft. Nachteil bei dieser Konfiguration ist, dass durch die Virtualisierung ein Performance-Overhead, besonders in I/O-Operationen entsteht, sowie dass Networking innerhalb Hyper-V sehr fragil ist, weswegen nur externe Switches wie erwartet funktionieren. Diese müssen jedoch innerhalb der Kundenfirewall als externes Gerät eingerichtet werden, was die Kundentoleranz maßgeblich senkt. Da ein nicht zu unterschätzender Anteil der Kunden auf Windows-basierte Serversysteme setzt, könnte dies eine große Einschränkung bei Portierung von selektron erweisen. + + +Eine klassische Serviceaufgabe wäre das Neustarten und Stoppen von Containern. + + \section{Methodik Erkenntnisse} diff --git a/literatur.bib b/literatur.bib index 7fe5657..04182c5 100644 --- a/literatur.bib +++ b/literatur.bib @@ -44,7 +44,6 @@ urldate = {2026-05-04}, date = {2025-11-24} } - @online{k8sGatewayAPI, author = {Kubernetes SIG-Network}, title = {\glqq Introduction: Kubernetes Gateway API\grqq}, @@ -52,6 +51,36 @@ urldate = {2026-05-07}, } +@online{uiHeadlamp, + author = {Kubernetes SIG-UI}, + title = {\glqq Headlamp\grqq}, + url = {https://headlamp.dev/}, + urldate = {2026-05-08}, + year = 2026 +} +@online{uiHeadlampDeprecated, + author = {Kubernetes}, + title = {\glqq Deploy and Access the Kubernetes Dashboard\grqq}, + url = {https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/}, + urldate = {2026-05-08}, + date = {2026-02-03} +} +@online{uiK9s, + author = {Imhotep Software LLC}, + title = {\glqq K9s - Manage Your Kubernetes Clusters in Style\grqq}, + url = {https://k9scli.io/}, + urldate = {2026-05-08}, + year = 2025 +} + +@online{windowsHyperVIntro, + author = {Microsoft}, + title = {\glqq Hyper-V virtualization in Windows Server and Windows\grqq}, + url = {https://learn.microsoft.com/en-us/windows-server/virtualization/hyper-v/overview}, + urldate = {2026-05-08}, + date = {2025-08-05} +} + @misc{rsFaq, author = {Rust Community},