Ein Kubernetes-basierter Web Stack ermöglicht skalierbare, hochverfügbare und containerisierte Web-Anwendungen. Durch die Nutzung von Ingress-Ressourcen, TLS-Zertifikaten und strategisch geplanten Deployments können Webanwendungen performant und sicher betrieben werden. Dieser Leitfaden richtet sich an Einsteiger, IT-Studierende und Junior Network Engineers und erklärt praxisnah, wie ein Kubernetes Web Stack aufgebaut und konfiguriert wird.
Kubernetes Cluster Voraussetzungen
- Kubernetes 1.27+ Cluster (Minikube, K3s, oder Cloud Provider wie GKE/AKS/EKS)
- kubectl CLI installiert
- Helm 3 für Chart-Management
- Root- oder Cluster-Admin-Zugriff
- Namespace für die Web-Anwendung:
webstack
Namespace erstellen
kubectl create namespace webstack
Deployments für App und Datenbank
Eine typische Web-Anwendung benötigt einen Application Server (z. B. PHP-FPM, Node.js, Django) und eine Datenbank (MySQL, PostgreSQL).
App Deployment Beispiel
apiVersion: apps/v1
kind: Deployment
metadata:
name: webapp
namespace: webstack
spec:
replicas: 3
selector:
matchLabels:
app: webapp
template:
metadata:
labels:
app: webapp
spec:
containers:
- name: webapp
image: myregistry/webapp:latest
ports:
- containerPort: 3000
env:
- name: DB_HOST
value: "db"
- name: DB_USER
valueFrom:
secretKeyRef:
name: db-credentials
key: username
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: db-credentials
key: password
Datenbank Deployment Beispiel
apiVersion: apps/v1
kind: Deployment
metadata:
name: db
namespace: webstack
spec:
replicas: 1
selector:
matchLabels:
app: db
template:
metadata:
labels:
app: db
spec:
containers:
- name: db
image: postgres:15
ports:
- containerPort: 5432
env:
- name: POSTGRES_DB
value: "webapp"
- name: POSTGRES_USER
valueFrom:
secretKeyRef:
name: db-credentials
key: username
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: db-credentials
key: password
volumeMounts:
- name: db-data
mountPath: /var/lib/postgresql/data
volumes:
- name: db-data
persistentVolumeClaim:
claimName: db-pvc
Secrets für Datenbank-Zugang
kubectl create secret generic db-credentials
--namespace webstack
--from-literal=username=webuser
--from-literal=password=Str0ngP@ss
Persistent Volume Claims
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: db-pvc
namespace: webstack
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
Service Ressourcen
Services abstrahieren die Pods und ermöglichen eine stabile interne Kommunikation.
apiVersion: v1
kind: Service
metadata:
name: webapp-svc
namespace: webstack
spec:
selector:
app: webapp
ports:
- protocol: TCP
port: 80
targetPort: 3000
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
name: db-svc
namespace: webstack
spec:
selector:
app: db
ports:
- protocol: TCP
port: 5432
targetPort: 5432
type: ClusterIP
Ingress Ressourcen für HTTP/HTTPS
Ingress stellt den Zugriff von außen bereit, inklusive TLS-Termination und Host-basiertem Routing.
Ingress Controller installieren
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.14.0/deploy/static/provider/cloud/deploy.yaml
Ingress Ressource konfigurieren
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: webapp-ingress
namespace: webstack
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
ingressClassName: nginx
tls:
- hosts:
- example.com
secretName: webapp-tls
rules:
- host: example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: webapp-svc
port:
number: 80
TLS Zertifikate
Für HTTPS können TLS-Zertifikate manuell oder per Let’s Encrypt via cert-manager bereitgestellt werden.
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.14.0/cert-manager.yaml
ClusterIssuer für Let’s Encrypt
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
email: admin@example.com
privateKeySecretRef:
name: letsencrypt-prod
solvers:
- http01:
ingress:
class: nginx
Deployments und Rollouts
Für Zero-Downtime Deployments empfiehlt sich die Nutzung von Rolling Updates.
spec:
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
Netzwerk- und Subnetzplanung
Bei Multi-Node Clustern sollten ClusterIP, NodePort und LoadBalancer-Dienste sinnvoll auf IPv4/IPv6 Subnetzen geplant werden.
Beispiel IPv4 Subnetz
<math>
WebApp-Pod-IP = 10.244.1.10/24
DB-Pod-IP = 10.244.2.10/24
Ingress-IP = 10.244.0.5/24
Subnetzadresse = 10.244.0.0
Broadcastadresse = 10.244.0.255
</math>
Beispiel IPv6 Subnetz (optional)
<math>
WebApp-Pod-IP = fd00:abcd:1::10/64
DB-Pod-IP = fd00:abcd:2::10/64
Ingress-IP = fd00:abcd:0::5/64
Subnetzadresse = fd00:abcd::0
Broadcastadresse = fd00:abcd::ffff:ffff:ffff:ffff
</math>
Best Practices
- Namespaces für Trennung von Umgebungen (Dev/Prod) nutzen
- Secrets und ConfigMaps für sensible Daten und Konfigurationen
- Rolling Updates für Deployments konfigurieren
- Ingress TLS für HTTPS erzwingen
- Health Checks für Pods definieren (
readinessProbeundlivenessProbe) - Ressourcenlimits (CPU/RAM) für Pods setzen
- Monitoring via Prometheus/Grafana implementieren
- Logs zentralisieren (ELK Stack oder Loki)
- Netzwerk-Policies für interne Sicherheit nutzen
- Backup-Strategien für Datenbanken und Persistent Volumes planen
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.











