1.051
Bearbeitungen
KKeine Bearbeitungszusammenfassung |
KKeine Bearbeitungszusammenfassung |
||
(12 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{Infobox | {{Infobox | ||
| Titel = Testumgebung | | Titel = Testumgebung | ||
Zeile 21: | Zeile 19: | ||
=== API-Server konfigurieren === | === API-Server konfigurieren === | ||
<syntaxhighlight lang="bash"> | |||
vi /etc/kubernetes/manifests/kube-apiserver.yaml | |||
</syntaxhighlight><syntaxhighlight lang="yaml" line="1"> | |||
<syntaxhighlight lang="yaml" line="1"> | |||
spec: | spec: | ||
containers: | containers: | ||
Zeile 39: | 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 49: | Zeile 46: | ||
==== Ports in der Firewall öffnen ==== | ==== Ports in der Firewall öffnen ==== | ||
<syntaxhighlight lang="bash"> | Sowohl auf dem Controller als auch den Worker-Nodes<syntaxhighlight lang="bash"> | ||
firewall-cmd --permanent --add-port=7472/tcp | |||
firewall-cmd --permanent --add-port=7946/tcp | firewall-cmd --permanent --add-port=7946/tcp | ||
firewall-cmd --permanent --add-port=7946/udp | firewall-cmd --permanent --add-port=7946/udp | ||
Zeile 87: | 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 100: | 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 115: | 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 145: | 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 151: | 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 170: | 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 225: | Zeile 244: | ||
path: /oauth2 | path: /oauth2 | ||
pathType: Prefix | pathType: Prefix | ||
</syntaxhighlight><syntaxhighlight lang="bash"> | |||
kubectl apply -f ingress.yaml | |||
</syntaxhighlight> | </syntaxhighlight> |