- Veröffentlicht am
- • How2-Tipps
Keycloak in Docker & Kubernetes – Skalierbare Authentifizierung für Cloud-Umgebungen
- Autor
-
-
- Benutzer
- tmueller
- Beiträge dieses Autors
- Beiträge dieses Autors
-
In modernen Cloud-Architekturen zählt Identitätsmanagement zu den zentralen Bausteinen. Anwendungen laufen verteilt über Container, Microservices kommunizieren über APIs – und irgendwo muss sichergestellt werden, dass nur berechtigte Nutzer Zugriff haben. Genau hier kommt Keycloak ins Spiel: Eine Open-Source-Lösung für Authentifizierung, Autorisierung und Single Sign-On (SSO).
In diesem Artikel zeigen wir, wie man Keycloak in Docker und Kubernetes deployt – inklusive Load-Balancing, Persistenz und automatischen Updates.
Warum Keycloak in der Cloud?
Keycloak ist von Haus aus für Skalierung gemacht. In Kombination mit Docker und Kubernetes entsteht eine flexible, hochverfügbare Authentifizierungsplattform, die:
- automatisch skaliert, wenn mehr Nutzer sich anmelden,
- Ausfallsicherheit durch Replikation bietet,
- CI/CD-kompatibel ist (z. B. mit ArgoCD, Flux oder GitOps),
- und zentral administrierbar bleibt – selbst bei Dutzenden Apps.
Kurz: Cloud-native Authentifizierung ohne Lizenzkosten.
Voraussetzungen
Bevor du startest, solltest du Folgendes haben:
- Linux- oder Windows-Server mit Docker (bzw. ein Kubernetes-Cluster)
- Zugriff auf die Kommandozeile (
kubectl,docker,helm) - Eine Domain, z. B.
auth.example.de - Optional: TLS-Zertifikat (z. B. über Let’s Encrypt oder Traefik)
Teil 1: Keycloak mit Docker starten
Der schnellste Einstieg ist ein einzelner Keycloak-Container.
docker run -d \
--name keycloak \
-p 8080:8080 \
-e KEYCLOAK_ADMIN=admin \
-e KEYCLOAK_ADMIN_PASSWORD=MeinSicheresPasswort \
quay.io/keycloak/keycloak:26.0.2 start-dev
Danach erreichbar unter: http://localhost:8080
Login mit den oben gesetzten Admin-Credentials.
Mit Persistenz (Docker Compose)
Damit Daten (z. B. Realms, Benutzer, Clients) erhalten bleiben, empfiehlt sich Docker Compose:
version: '3.8'
services:
postgres:
image: postgres:15
environment:
POSTGRES_USER: keycloak
POSTGRES_PASSWORD: secret
POSTGRES_DB: keycloak
volumes:
- ./data/postgres:/var/lib/postgresql/data
keycloak:
image: quay.io/keycloak/keycloak:26.0.2
environment:
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: MeinSicheresPasswort
KC_DB: postgres
KC_DB_URL_HOST: postgres
KC_DB_USERNAME: keycloak
KC_DB_PASSWORD: secret
command: ["start", "--hostname-strict=false"]
ports:
- 8080:8080
depends_on:
- postgres
Start:
docker compose up -d
Nun läuft Keycloak dauerhaft mit PostgreSQL-Datenbank.
Teil 2: Keycloak in Kubernetes deployen
In produktiven Umgebungen empfiehlt sich die Installation via Helm-Chart.
Repository hinzufügen
helm repo add codecentric https://codecentric.github.io/helm-charts
helm repo update
Namespace anlegen
kubectl create namespace keycloak
Installation starten
helm install keycloak codecentric/keycloak \
--namespace keycloak \
--set keycloak.username=admin \
--set keycloak.password=MeinSicheresPasswort \
--set replicas=2 \
--set ingress.enabled=true \
--set ingress.hostname=auth.example.de
Nach wenigen Minuten steht Keycloak als skalierte Anwendung bereit.
Load-Balancing und Skalierung
Kubernetes sorgt automatisch für:
- Lastverteilung über alle Keycloak-Pods
- Selbstheilung bei Ausfällen
- Rolling Updates für neue Versionen
Manuelle Skalierung ist ebenfalls möglich:
kubectl scale deployment keycloak --replicas=3 -n keycloak
Mit einem Ingress-Controller (z. B. Traefik, NGINX) lässt sich Keycloak per HTTPS öffentlich bereitstellen.
Automatische Updates
Für automatische Updates kannst du:
Watchtower in Docker nutzen:
docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower- oder ArgoCD/FluxCD in Kubernetes konfigurieren, um Keycloak bei neuen Versionen automatisch zu aktualisieren.
So bleibt dein Auth-System immer aktuell – ohne manuelle Eingriffe.
Best Practices für produktive Umgebungen
- HTTPS erzwingen – SSL über Ingress oder Proxy
- Externe Datenbank verwenden (PostgreSQL oder MySQL)
- Backups automatisieren – regelmäßig Realms exportieren
- Keycloak-Cluster überwachen – z. B. mit Prometheus/Grafana
- Config as Code – Realms und Clients über JSON/YAML importieren
Keycloak lässt sich mit Docker in Minuten starten – und mit Kubernetes zu einem hochverfügbaren, skalierbaren Authentifizierungs-Cluster ausbauen. Durch standardisierte Protokolle wie OpenID Connect und SAML lässt sich Keycloak in nahezu jede App integrieren.
Wer digitale Identitäten sicher und souverän verwalten möchte, hat mit Keycloak in Docker & Kubernetes eine zukunftssichere, Cloud-native Lösung in der Hand.