1.051
Bearbeitungen
KKeine Bearbeitungszusammenfassung |
KKeine Bearbeitungszusammenfassung |
||
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 36: | Zeile 36: | ||
'''Hinweis:''' | '''Hinweis:''' | ||
''Wenn <code>oidc-username-claim</code> NICHT 'email' ist, wird standardmäßig die 'issuer-url' als | ''Wenn <code>oidc-username-claim</code> '''NICHT''' 'email' ist, wird standardmäßig die 'issuer-url' als Präfix vor den Benutzer gestellt (z.B. https://<my.keycloak.server>/realms/<Realm-Name>:<username>).'' | ||
''Um den | ''Um den Präfix zu deaktivieren muss bei <code>oidc-username-prefix</code> der Wert '-' angegeben werden.'' | ||
=== Load Balancer installieren === | === Load Balancer installieren === | ||
Zeile 85: | Zeile 85: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Reverse Proxy installieren === | === Reverse Proxy installieren (ingress-nginx) === | ||
Reverse Proxy um mehrere Domains auf einer IP erreichbar zu machen. | Reverse Proxy um mehrere Domains auf einer IP erreichbar zu machen. | ||
Zeile 98: | Zeile 98: | ||
</syntaxhighlight>'''Hinweise:''' | </syntaxhighlight>'''Hinweise:''' | ||
'' | ''Bei Keycloak kann es vorkommen, dass mehr als 4 kb Daten über den Header gesendet werden.'' | ||
'' | ''Wenn der Header zu groß wird, bekommt man einen Fehler (502).'' | ||
''Dieses kann man als Standard direkt in der Config für Ingress-Nginx hinerlegen oder später im Ingress.'' | ''Deswegen erhöhen wir diesen direkt während der Installation auf 8 kb.'' | ||
''Für TLS benötigen wir ein 'Secret" mit dem "Privat Key" und dem "Public Certificate" für die Domain, die später für das Dashboard genutzt werden soll.'' | |||
''Dieses kann man als Standard, direkt in der Config für Ingress-Nginx hinerlegen oder später im Ingress definieren.'' | |||
'''Tipp:''' | |||
Wenn man bei <code>default-ssl-certificate</code> ein Wildcard-Zertifikat (z.B. *.my-cluster.host) für den Cluster hinterlegt, | |||
kann für jeden Ingress einfach eine Sub-Domain vergeben, die dann automatisch ein gültiges Zertifikat hat. | |||
Installation starten: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
helm upgrade --install ingress-nginx ingress-nginx \ | helm upgrade --install ingress-nginx ingress-nginx \ | ||
Zeile 113: | Zeile 130: | ||
=== OAUTH2 Proxy installieren === | === OAUTH2 Proxy installieren === | ||
Authentifizierung gegen Keyclok und Token Weiterleitung an Dashboard | Authentifizierung gegen Keyclok und Token Weiterleitung an Dashboard | ||
values.yaml | values.yaml | ||
<syntaxhighlight lang="yaml" line="1"> | <syntaxhighlight lang="yaml" line="1"> | ||
Zeile 143: | Zeile 161: | ||
''Der Parameter <code>cookie-refresh</code> sollte kleiner als die "Access Token Lifespan" in Keycloak sein ("Realm Settings->Token").'' | ''Der Parameter <code>cookie-refresh</code> sollte kleiner als die "Access Token Lifespan" in Keycloak sein ("Realm Settings->Token").'' | ||
Installation starten: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
Zeile 149: | Zeile 170: | ||
--namespace kubernetes-dashboard \ | --namespace kubernetes-dashboard \ | ||
-f values.yaml | -f values.yaml | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Dem Keycloak Benutzer die Admin Rolle zuweisen === | ===Dem Keycloak Benutzer die Admin Rolle zuweisen=== | ||
oidc-role.yaml | oidc-role.yaml | ||
<syntaxhighlight lang="yaml"> | <syntaxhighlight lang="yaml"> | ||
Zeile 168: | Zeile 189: | ||
</syntaxhighlight>'''''Hinweis:''''' | </syntaxhighlight>'''''Hinweis:''''' | ||
Der Benutzername (subjects.name) entspricht dem <code>oidc-username-claim</code> aus der "kube-apiserver.yaml". | ''Der Benutzername (subjects.name) entspricht dem'' <code>oidc-username-claim</code> ''aus der "kube-apiserver.yaml".'' | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
kubectl apply -f oidc-role.yaml | kubectl apply -f oidc-role.yaml | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Ingress erstellen === | ===Ingress erstellen=== | ||
<syntaxhighlight lang="yaml" line="1"> | <syntaxhighlight lang="yaml" line="1"> | ||
apiVersion: networking.k8s.io/v1 | apiVersion: networking.k8s.io/v1 | ||
Zeile 223: | Zeile 244: | ||
path: /oauth2 | path: /oauth2 | ||
pathType: Prefix | pathType: Prefix | ||
</syntaxhighlight><syntaxhighlight lang="bash"> | |||
kubectl apply -f ingress.yaml | |||
</syntaxhighlight> | </syntaxhighlight> |