Kubernetes Dashboard mit Keycloak OIDC: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
KKeine Bearbeitungszusammenfassung |
KKeine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
__NOINDEX__ | __NOINDEX__ | ||
'# apiserver oidc config erstellen | |||
'# /etc/kubernetes/manifests/kube-apiserver.yaml<syntaxhighlight lang="yaml" line="1"> | |||
spec: | |||
containers: | |||
- command: | |||
- kube-apiserver | |||
... | |||
- --oidc-issuer-url=https://login.toenniges.net/realms/toenniges | |||
- --oidc-client-id=k8s-cluster | |||
- --oidc-username-claim=email | |||
- --oidc-ca-file=/etc/kubernetes/pki/toenniges.host.crt | |||
#- --oidc-username-prefix=- #Default oidc: (z.B. oidc:user@example.com / Wenn oidc-username-claim NICHT 'email' ist, wird standarmäßig die 'issuer-url' als Prefix benutzt | |||
</syntaxhighlight> | |||
'# MetalLB installieren / Aktiviert den Service Typ "LoadBalancer" der sonst nur in Cloud Umgebungen verfügbar ist | '# MetalLB installieren / Aktiviert den Service Typ "LoadBalancer" der sonst nur in Cloud Umgebungen verfügbar ist |
Version vom 20. Dezember 2022, 23:37 Uhr
'# apiserver oidc config erstellen
'# /etc/kubernetes/manifests/kube-apiserver.yaml
spec:
containers:
- command:
- kube-apiserver
...
- --oidc-issuer-url=https://login.toenniges.net/realms/toenniges
- --oidc-client-id=k8s-cluster
- --oidc-username-claim=email
- --oidc-ca-file=/etc/kubernetes/pki/toenniges.host.crt
#- --oidc-username-prefix=- #Default oidc: (z.B. oidc:user@example.com / Wenn oidc-username-claim NICHT 'email' ist, wird standarmäßig die 'issuer-url' als Prefix benutzt
'# MetalLB installieren / Aktiviert den Service Typ "LoadBalancer" der sonst nur in Cloud Umgebungen verfügbar ist
'# Bildet IPs aus dem Cluster in einen physischen Adressbereich des LANs
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.7/config/manifests/metallb-native.yaml
address_pool.yaml
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: first-pool
namespace: metallb-system
spec:
addresses:
- 192.168.1.240-192.168.1.250
l2_advert.yaml
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
name: example
namespace: metallb-system
#- first-pool
IPAddressPools können explizit ausgewählt werden. Ohne Angabe werden alle Pools dem L2Advertisement zugeordnet.
kubectl apply -f address_pool.yaml
kubectl apply -f l2_advert.yaml
'# ingress-nginx installieren /.Reverse proxy um mehrere Domains auf einer IP erreichbar zu machen.
values.yaml
controller:
config:
proxy-buffer-size: "16k"
Wenn header zu groß dann 50x Fehler. Deswegen auf 16k erhöhen
helm upgrade --install ingress-nginx ingress-nginx \
--repo https://kubernetes.github.io/ingress-nginx \
--namespace ingress-nginx --create-namespace \
-f values.yaml
'# oauth2-proxy installieren / Authentifizierung gegen Keyclok und Token Weiterleitung an Dashboard
values.yaml
extraArgs:
provider: keycloak-oidc
#provider-display-name: OIDC Login
#http-address: "0.0.0.0:4180"
#skip-provider-button: true
#skip-jwt-bearer-tokens: true
#ssl-insecure-skip-verify: true
#ssl-upstream-insecure-skip-verify: true
#pass-access-token: true
#pass-authorization-header: true
set-authorization-header: true
#set-xauthrequest: true
client-id: XXX # Change XXX to your client_id
client-secret: XXX # Change XXX to your client_secret
cookie-secret: XXX # Generate with 'openssl rand -base64 32 | head -c 32 | base64'
#cookie-secure: false
#cookie-httponly: false
oidc-issuer-url: "https://<my.keycloak.server>/realms/toenniges"
redirect-url: "https://<my.keycloak.server>/oauth2/callback"
#whitelist-domain: ["*"]
#allowed-group: ["*"]
#allowed-role: ["*"]
#email-domain: ["*"]
helm upgrade --install oauth2-proxy oauth2-proxy \
--repo https://oauth2-proxy.github.io/manifests \
--namespace kubernetes-dashboard \
-f values.yaml