In meinem privaten Kubernetes-Lab (K3s auf kompakten Wyse D10 T-48 Thin Clients) gab es heute eine spannende Troubleshooting-Session: Vom blockierten Port bis hin zur funktionierenden WordPress-Instanz.
đ Problem 1: Port 6444 blockiert & Connection Refused
Beim Versuch, den Cluster via kubectl abzufragen, verweigerte der K3s-API-Server den Dienst:
Plaintext
dial tcp 127.0.0.1:6443: connect: connection refused
Ein Blick in den Status zeigte: k3s.service war gecrasht. Grund dafĂŒr war ein Port-Konflikt auf der internen Supervisor-Schnittstelle:
Plaintext
failed to listen on 127.0.0.1:6444: listen tcp 127.0.0.1:6444: bind: address already in use
[ Systemd ] âââș versucht k3s.service (Server) zu starten âââââ
âââș đ„ PORT 6444 KONFLIKT
[ Systemd ] âââș startet k3s-agent.service (Worker) âââââââââââ
đĄ Die Ursache & Lösung
Auf dem betroffenen Worker-Node (3-dietpi-trac) lief fÀlschlicherweise sowohl der k3s-agent.service als auch der k3s.service (Server/Control Plane).
Da ein Worker-Node keinen Control-Plane-Server benötigt und beide Instanzen um Port 6444 stritten, haben wir den Server-Dienst auf dem Worker deaktiviert:
Bash
sudo systemctl stop k3s
sudo systemctl disable k3s
Ergebnis: Port 6444 war frei, der k3s-agent verband sich wieder sauber mit dem Control-Plane-Node (1-dietpi-tik), und alle Nodes standen wieder auf Ready!
đ Problem 2: MySQL 8.0 vs. Ăltere Thin-Client-Hardware
Nachdem der Cluster wieder stabil lief, sollte ein einfaches WordPress-Deployment her. Modernes MySQL 8.0 setzt jedoch neuere CPU-BefehlssĂ€tze (wie SSE4.2) voraus, die Ă€ltere Wyse Thin Client Prozessoren nicht unterstĂŒtzen.
[ MySQL 8.0 ] âââș FEHLER: Fehlende CPU-Instruktionen / Ressourcen-Hunger
â
âŒ
[ MariaDB 10.5 ] âââș LIGHTWEIGHT & ABSOLUT KOMPATIBEL đ
Die Lösung: Wechsel auf MariaDB 10.5. Das verbraucht deutlich weniger Arbeitsspeicher, lÀuft auch auf betagter x86-Hardware extrem performant und ist vollstÀndig zu WordPress kompatibel.
đŒïž Der Cluster im Ăberblick (Headlamp)

đ Das verwendete Kubernetes-Manifest
Das komplette Manifest fĂŒr WordPress inkl. MariaDB und Anbindung ĂŒber NodePort 30080:
YAML
apiVersion: v1
kind: Service
metadata:
name: wordpress-mariadb
spec:
ports:
- port: 3306
selector:
app: wordpress
tier: mariadb
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress-mariadb
spec:
selector:
matchLabels:
app: wordpress
tier: mariadb
template:
metadata:
labels:
app: wordpress
tier: mariadb
spec:
containers:
- image: mariadb:10.5
name: mariadb
env:
- name: MYSQL_ROOT_PASSWORD
value: secretpassword
- name: MYSQL_DATABASE
value: wordpress
- name: MYSQL_USER
value: wordpress
- name: MYSQL_PASSWORD
value: wordpress
ports:
- containerPort: 3306
---
apiVersion: v1
kind: Service
metadata:
name: wordpress
spec:
type: NodePort
ports:
- port: 80
targetPort: 80
nodePort: 30080
selector:
app: wordpress
tier: frontend
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress
spec:
selector:
matchLabels:
app: wordpress
tier: frontend
template:
metadata:
labels:
app: wordpress
tier: frontend
spec:
containers:
- image: wordpress:latest
name: wordpress
env:
- name: WORDPRESS_DB_HOST
value: wordpress-mariadb:3306
- name: WORDPRESS_DB_USER
value: wordpress
- name: WORDPRESS_DB_PASSWORD
value: wordpress
- name: WORDPRESS_DB_NAME
value: wordpress
ports:
- containerPort: 80
đŻ Fazit
Mit ein wenig Troubleshooting und der richtigen Auswahl an schlanken Docker-Images lassen sich selbst Ă€ltere Wyse Thin Clients noch hervorragend als produktives K3s-Kubernetes-Home-Lab nutzen! Digitale SouverĂ€nitĂ€t und Self-Hosting im Kleinformat. đ»âš
Schreibe einen Kommentar