Keycloak deployen
Zuletzt aktualisiert: 27. März 2026
Keycloak ist eine quelloffene Identity- und Access-Management-Lösung. Mit dem lowcloud Helm Release deployst du Keycloak in deinem Kubernetes-Cluster – inklusive eingebetteter PostgreSQL-Datenbank, Ingress-Unterstützung und optionalem Realm-Import.
Chart-Registry: oci://registry-1.docker.io/cloudpirates/keycloak
Das Helm Release wird von den Cloud Pirates bereitgestellt und gepflegt.
Voraussetzungen
- Ein lowcloud-Account mit aktivem Cluster
- Zugriff auf das lowcloud Dashboard
Quick Start
Minimale Konfiguration, um Keycloak schnell zum Laufen zu bringen:
keycloak:
adminUser: admin
adminPassword: your-secure-password
hostname: https://auth.example.com
proxyHeaders: xforwarded
postgres:
enabled: true
auth:
password: your-db-password
keycloak.proxyHeaders: xforwarded, wenn Keycloak hinter einem nginx-Ingress oder einem anderen Reverse Proxy betrieben wird. Ohne diesen Parameter funktionieren Redirects und Token-Validierungen nicht korrekt.Konfiguration
Die wichtigsten Konfigurationsoptionen im Überblick:
| Parameter | Beschreibung | Default |
|---|---|---|
keycloak.adminUser | Benutzername des Keycloak-Admins | admin |
keycloak.adminPassword | Passwort des Admins (oder existingSecret nutzen) | — |
keycloak.hostname | Öffentliche URL der Keycloak-Instanz | — |
keycloak.proxyHeaders | Proxy-Header-Modus (xforwarded oder forwarded) | — |
keycloak.production | Produktionsmodus (start) oder Dev-Modus | true |
postgres.enabled | Eingebettete PostgreSQL aktivieren | true |
postgres.auth.password | Passwort für die eingebettete Datenbank | — |
ingress.enabled | Ingress aktivieren | false |
ingress.className | Ingress-Klasse (z.B. nginx) | — |
cache.stack | Cache-Modus (local oder ispn für Multi-Replica) | local |
Schritt-für-Schritt Anleitung
1. Service hinzufügen
Navigiere im lowcloud Dashboard zu Add Service und wähle Helm Release aus. Suche im Popup nach der Keycloak-Registry:
oci://registry-1.docker.io/cloudpirates/keycloak
Wähle anschließend die gewünschte Version aus. Die Option "latest" ist in den meisten Fällen eine gute Wahl.
2. Values konfigurieren
Gib dem Service einen aussagekräftigen Namen (z.B. keycloak). Passe dann die Values an:
keycloak:
adminUser: admin
adminPassword: your-secure-password
hostname: https://auth.example.com
proxyHeaders: xforwarded
postgres:
enabled: true
auth:
password: your-db-password
ingress:
enabled: true
className: nginx
hosts:
- host: auth.example.com
paths:
- path: /
pathType: Prefix
3. Deployment starten
Öffne den erstellten Service und klicke auf Deploy. Warte, bis das Label im Dashboard auf "Deployed" wechselt. Keycloak ist anschließend über die konfigurierte Hostname-URL erreichbar.
Erweiterte Values
Für den produktiven Einsatz empfiehlt sich eine vollständige Konfiguration mit Persistence, Resource Limits und TLS:
keycloak:
adminUser: admin
adminPassword: your-secure-password
hostname: https://auth.example.com
proxyHeaders: xforwarded
production: true
postgres:
enabled: true
auth:
password: your-db-password
primary:
persistence:
enabled: true
size: 10Gi
resources:
requests:
cpu: 250m
memory: 256Mi
limits:
cpu: 500m
memory: 512Mi
ingress:
enabled: true
className: nginx
hosts:
- host: auth.example.com
paths:
- path: /
pathType: Prefix
tls:
- secretName: auth-tls
hosts:
- auth.example.com
resources:
requests:
cpu: 500m
memory: 512Mi
limits:
cpu: '2'
memory: 1Gi
Realm-Import
Du kannst beim Start automatisch einen Realm importieren. Hinterlege deine Realm-Konfiguration als Kubernetes Secret und referenziere sie:
realm:
import: true
existingSecret: my-realm-secret
Das Secret muss einen Key realm.json mit dem Realm-JSON-Inhalt enthalten.
Externe Datenbank
Falls du eine bereits vorhandene PostgreSQL-Instanz nutzen möchtest, deaktiviere die eingebettete Datenbank und konfiguriere die externe Verbindung:
postgres:
enabled: false
database:
type: postgres
host: my-postgres-service
port: '5432'
name: keycloak
username: keycloak
password: your-db-password