Ziele
- Du verstehst, welche Aufgaben der Kubernetes
API Serverübernimmt. - Du weißt, wie der
API Serverin das Management des Cluster States involviert ist. - Du weißt, auf welchem Port der
API Serverper Default hört und welches Protokoll gesprochen wird. - Du weißt, dass der
API Serverein self signed Certificate verwendet und wie du diesem auf einem anderen System vertrauen kannst - Du kennst die 3 default Plugins für Authentifizierung am API server
- Du weißt, wie die Authentifizierung und Role Zuweisung mit
Client Certificatesfunktioniert. - Du weißt, wie eine Node dem Cluster beitreten kann und authentifiziert wird.
- Du weißt, wofür
ServiceAccountsda sind. - Du weißt, wie Kubernetes die Permissions für den ServiceAccount in den Container einbindet.
- Wie werden
Client CertificatesundServiceAccountsPermissions zugewiesen? - Du kennst den Unterschied zwischen
RoleundClusterRole.
Inhalte
- Kapitel 11 aus "The Book of Kubernetes" von Alan Hohn
- Using RBAC Authorization Show archive.org snapshot
Aufgaben
-
Besprich die
ClusterRoleaus Anhang A mit deinem Mentor. -
Besprich das
RoleBindingaus Anhang B mit deinem Mentor. -
Erstelle eine Grafik, die zeigt wie RBAC funktioniert. Teil der Grafik sollte sein:
ClusterRoleRoleClusterRoleBindingRoleBindingServiceAccountClient Certificate
Es sollte ersichtlich sein, wie Permissions jeweils auf Namespaces begrenzt werden können.
Anhang A
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: pod-reader
rules:
- apiGroups: ["", "apps"]
resources: ["pods", "deployments", "statefulsets"]
verbs: ["get", "watch", "list"]
Anhang B
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods
namespace: sample
subjects:
- kind: ServiceAccount
name: read-pods
namespace: sample
roleRef:
kind: ClusterRole
name: pod-reader
apiGroup: rbac.authorization.k8s.io
Posted by Claus-Theodor Riegg to DevOps Curriculum (2023-01-30 11:11)