Keycloak deployen

Lerne, wie du Keycloak als Helm Release über lowcloud deployst – inklusive Datenbankanbindung, Ingress-Konfiguration und Realm-Import.

Zuletzt aktualisiert: 8. April 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:
    database: keycloak
    username: keycloak
    password: your-db-password
Setze 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:

ParameterBeschreibungDefault
image.tagKeycloak Image-Version26.5.6
keycloak.adminUserBenutzername des Keycloak-Adminsadmin
keycloak.adminPasswordPasswort des Admins (oder existingSecret nutzen)
keycloak.hostnameÖffentliche URL der Keycloak-Instanz
keycloak.proxyHeadersProxy-Header-Modus (xforwarded oder forwarded)xforwarded
keycloak.productionProduktionsmodus (start) oder Dev-Modustrue
database.typeDatenbanktyppostgres
postgres.enabledEingebettete PostgreSQL aktivierentrue
postgres.auth.databaseDatenbankname der eingebetteten PostgreSQLkeycloak
postgres.auth.usernameBenutzername der eingebetteten PostgreSQLkeycloak
postgres.auth.passwordPasswort der eingebetteten PostgreSQL
resources.requests.cpuCPU-Request250m
resources.requests.memoryMemory-Request512Mi
resources.limits.cpuCPU-Limit1000m
resources.limits.memoryMemory-Limit1024Mi
ingress.enabledIngress aktivierenfalse
ingress.classNameIngress-Klasse (z.B. nginx)
cache.stackCache-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:
    database: keycloak
    username: keycloak
    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:

image:
  tag: "26.5.6"

keycloak:
  adminUser: admin
  adminPassword: your-secure-password
  hostname: https://auth.example.com
  proxyHeaders: xforwarded
  production: true

database:
  type: postgres

postgres:
  enabled: true
  auth:
    database: keycloak
    username: keycloak
    password: your-db-password

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: 250m
    memory: 512Mi
  limits:
    cpu: 1000m
    memory: 1024Mi

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
Wenn du eine externe PostgreSQL-Instanz aus einem anderen Helm Release verwendest, verbinde die beiden Services über Helm Release Dependencies im lowcloud Dashboard.