Benutzer-Werkzeuge

Webseiten-Werkzeuge


it-wiki:kubernetes:role_rolebinding_authobjects

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
it-wiki:kubernetes:role_rolebinding_authobjects [2023/04/18 06:22] – [extraieren der Konfig in unsere lokalen Konfigurationsdatei] markoit-wiki:kubernetes:role_rolebinding_authobjects [2024/03/13 12:02] (aktuell) marko
Zeile 1: Zeile 1:
 ====== Anlegen von Authentifizierungs Objekten (User), Rollen, Cluster-Rollen und die Bindings ====== ====== Anlegen von Authentifizierungs Objekten (User), Rollen, Cluster-Rollen und die Bindings ======
 +===== Der richtig schnelle Weg =====
 +<code bash>
 +kubeadm kubeconfig user -h
 +sudo kubeadm kubeconfig user \
 +  --client-name myuser \
 +  > kubeconfig-user.yaml
 +</code>
 ===== Erstellen eines Authentifizierung Objektes (User) mit Hilfe von OpenSSL Schlüssel und Zertifikat ===== ===== Erstellen eines Authentifizierung Objektes (User) mit Hilfe von OpenSSL Schlüssel und Zertifikat =====
 ==== Schlüssel und Zertifikat erstellen ==== ==== Schlüssel und Zertifikat erstellen ====
Zeile 15: Zeile 22:
  
 ==== Erstellen eines Kubernetes CSR Objektes ==== ==== Erstellen eines Kubernetes CSR Objektes ====
-<code bash>+<code yaml>
 apiVersion: certificates.k8s.io/v1 apiVersion: certificates.k8s.io/v1
 kind: CertificateSigningRequest kind: CertificateSigningRequest
Zeile 76: Zeile 83:
 \\ \\
 \\ \\
-===== Anlegen einer eigenen kubeconfig auf Basis eines eigenen Rollenobjektes ===== +===== Keycloak / OAuth mit kubernetes (kube-apiserver) ===== 
-**Erstellen einer eigenen kubeconfig auf Basis eines eigenen Zertifikates durch ein Clusterrollbinding-Objekt (bofh:admin)**+==== Einen Client anlegen ==== 
 +Lege ein neues Client Objekt vom Type "OpenID Connect" in Keycloak an und notiere die Client ID und den Client secret. 
 + 
 +==== Den kube-apiserver konfigurieren ==== 
 +Als nächstes muss der kube-apiserver Konfiguriert werden. Je nachdem wie Eurer Kubernetes deployt wurde passt Ihr folgende Dateien an 
 + 
 +**kubeadm**\\ 
 +/etc/kubernetes/manifests/kube-apiserver.yaml 
 +<code yaml> 
 +spec: 
 +  containers: 
 +  - command: 
 +    - kube-apiserver 
 +    - --advertise-address=10.6.6.22 
 +    - --allow-privileged=true 
 +    ... 
 +    ... 
 +    - --tls-cert-file=/etc/kubernetes/pki/apiserver.crt 
 +    - --tls-private-key-file=/etc/kubernetes/pki/apiserver.key 
 +    - --oidc-issuer-url=https://<ip(fqdn)keycloak>/realms/<realms> 
 +    - --oidc-client-id=kube-api-server-prod 
 +</code> 
 + 
 +**rke2** \\ 
 +/etc/rancher/rke2/config.yaml
 <code bash> <code bash>
-sudo kubeadm kubeconfig user --client-name marko-the-bofh --org bofh:admin --config control1.yaml kubeconfig.yaml+write-kubeconfig-mode: 644 
 +disable: 
 +  rke2-ingress-nginx 
 +cni: calico 
 +cluster-cidr: "172.20.0.0/16" 
 +service-cidr: "172.30.0.0/16" 
 +kube-apiserver-arg: 
 +  oidc-issuer-url=https://<ip(fqdn)keycloak>/realms/<realms> 
 +  - oidc-client-id=kube-api-server-test
 </code> </code>
  
-(IMPORTANT) Entferne die erste Zeile aus der **kubeconfig.yaml** Datei+Beim rke2 muss zusätzlich noch der rke2-server.service mittels systemctl neu gestartet werden.
  
 +==== kubectl (Clientseite) konfigurieren ====
 +Wir werden uns mittels krew das oidc-login Plugin für kubectl installieren. Dazu muss man sich [[https://github.com/kubernetes-sigs/krew|krew von github]] holen.
  
-**Erstellen des Clusterrollbindings**+Im Anschluss installiert man sich oidc-login
 <code bash> <code bash>
-sudo kubectl --kubeconfig /etc/kubernetes/admin.conf create clusterrolebinding bofh:admin --clusterrole cluster-admin --group bofh:admin+kubectl krew install oidc-login
 </code> </code>
 +
 +Für die restliche Konfiguration folgt man einfach den Anweisungen von oidc-login
it-wiki/kubernetes/role_rolebinding_authobjects.1681798932.txt.gz · Zuletzt geändert: 2023/04/18 06:22 von marko