Ziele
- Du verstehst, welche Aufgaben der Kubernetes
API Server
übernimmt. - Du weißt, wie der
API Server
in das Management des Cluster States involviert ist. - Du weißt, auf welchem Port der
API Server
per Default hört und welches Protokoll gesprochen wird. - Du weißt, dass der
API Server
ein 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 Certificates
funktioniert. - Du weißt, wie eine Node dem Cluster beitreten kann und authentifiziert wird.
- Du weißt, wofür
ServiceAccounts
da sind. - Du weißt, wie Kubernetes die Permissions für den ServiceAccount in den Container einbindet.
- Wie werden
Client Certificates
undServiceAccounts
Permissions zugewiesen? - Du kennst den Unterschied zwischen
Role
undClusterRole
.
Inhalte
- Kapitel 11 aus "The Book of Kubernetes" von Alan Hohn
- Using RBAC Authorization Show archive.org snapshot
Aufgaben
-
Besprich die
ClusterRole
aus Anhang A mit deinem Mentor. -
Besprich das
RoleBinding
aus Anhang B mit deinem Mentor. -
Erstelle eine Grafik, die zeigt wie RBAC funktioniert. Teil der Grafik sollte sein:
ClusterRole
Role
ClusterRoleBinding
RoleBinding
ServiceAccount
Client 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)