Kubernetes Dashboard mit Keycloak OIDC: Unterschied zwischen den Versionen

K
Zeile 20: Zeile 20:




'# /etc/kubernetes/manifests/kube-apiserver.yaml<syntaxhighlight lang="yaml" line="1">
'# /etc/kubernetes/manifests/kube-apiserver.yaml
<syntaxhighlight lang="yaml" line="1">
spec:
spec:
   containers:
   containers:
Zeile 54: Zeile 55:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.7/config/manifests/metallb-native.yaml
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.7/config/manifests/metallb-native.yaml
</syntaxhighlight>address_pool.yaml<syntaxhighlight lang="yaml" line="1">
</syntaxhighlight>
address_pool.yaml
<syntaxhighlight lang="yaml" line="1">
apiVersion: metallb.io/v1beta1
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
kind: IPAddressPool
Zeile 84: Zeile 87:
Reverse Proxy um mehrere Domains auf einer IP erreichbar zu machen.
Reverse Proxy um mehrere Domains auf einer IP erreichbar zu machen.


values.yaml<syntaxhighlight lang="yaml" line="1">
values.yaml
<syntaxhighlight lang="yaml" line="1">
controller:
controller:
   config:
   config:
     proxy-buffer-size: "16k"
     proxy-buffer-size: "8k"
</syntaxhighlight>Wenn header zu groß dann 50x Fehler. Deswegen auf 16k erhöhen<syntaxhighlight lang="bash">
   
    #extraArgs:
        #default-ssl-certificate: "default/my-tls-secret"
</syntaxhighlight>'''Hinweise:'''
 
''Wenn Header zu groß dann 502 Fehler. Deswegen auf 8k erhöhen''
 
''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 Dahsboard genutzt werden soll.''
 
''Dieses kann man als Standard direkt in der Config für Ingress-Nginx hinerlegen oder später im Ingress.''
<syntaxhighlight lang="bash">
helm upgrade --install ingress-nginx ingress-nginx \
helm upgrade --install ingress-nginx ingress-nginx \
   --repo https://kubernetes.github.io/ingress-nginx \
   --repo https://kubernetes.github.io/ingress-nginx \
Zeile 96: Zeile 110:




 
=== OAUTH2 Proxy installieren ===
 
'# oauth2-proxy installieren /
 
=== OAUTH Proxy installieren ===
Authentifizierung gegen Keyclok und Token Weiterleitung an Dashboard
Authentifizierung gegen Keyclok und Token Weiterleitung an Dashboard
values.yaml<syntaxhighlight lang="yaml" line="1">
values.yaml
<syntaxhighlight lang="yaml" line="1">
extraArgs:
extraArgs:
   provider: keycloak-oidc
   provider: keycloak-oidc
Zeile 140: Zeile 151:


=== Dem Keycloak Benutzer die Admin Rolle zuweisen ===
=== Dem Keycloak Benutzer die Admin Rolle zuweisen ===
oidc-role.yaml<syntaxhighlight lang="yaml">
oidc-role.yaml
<syntaxhighlight lang="yaml">
apiVersion: rbac.authorization.k8s.io/v1
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
kind: ClusterRoleBinding
Zeile 155: Zeile 167:
</syntaxhighlight>'''''Hinweis:'''''
</syntaxhighlight>'''''Hinweis:'''''


Der Benutzername (subjects.name) entspricht dem <code>oidc-username-claim</code> aus der "kube-apiserver.yaml".<syntaxhighlight lang="bash">
Der Benutzername (subjects.name) entspricht dem <code>oidc-username-claim</code> aus der "kube-apiserver.yaml".
<syntaxhighlight lang="bash">
kubectl apply -f oidc-role.yaml
kubectl apply -f oidc-role.yaml
</syntaxhighlight>
</syntaxhighlight>