# Cluster Architektur

## Control Nodes (Controllplane / Master Node)

### Controlplane Komponenten

Diese Komponenten können, müssen aber nicht in form von Containern auf den Control Nodes laufen.

#### ETCD

Dies ist ein Key-Value Store (Datenbank) welche die Informationen speichert.

#### Scheduler

Dies ist eine Applikation, welche die Container und Deployments auf die entsprechende Node schiebt.

#### Controller-Manager

##### Node-Controller

Kümmert sich um das Hinzufügen, Entfernen und Status spezifische handeln von nodes. Bsp. wenn eine node abstürzt.

#### Replication-Controller

Kümmert sich um das Erstellen, Löschen und verschieben von Containern auf den Unterschiedlichen Nodes.

### Kube-Apiserver

Kümmert sich um die Kommunikation zwischen den unterschiedlichen Komponenten und veröffentlicht die eigentliche Kuberentes API welche mittels Kubectl usw. angesteuert wird.

### Conatiner Runtime Engine  


Die Master nodes haben optional eine Container Runtime Engine (Bsp.: Docker, Containerd, Rocket), der Master kann die Controlplane Komponenten in Containern laufen lassen, diese können jedoch auch als applikation auf dem Host direkt laufen.

## Worker Nodes

### Conatiner Runtime Engine  


Jede Worker node hat eine Container Tunrtime Engine, diese wird benötigt um die Container auf der jeweiligen Node auszuführen.

### Kubelet

Die Kubelet ist der "Kapitän" der Nodes, diese Applikation ist dafür verantwortlich die Kommunikation mit der Masternode aufrecht zu halten und die Anforderungen entsprechend umzusetzen (Bsp.: neue Container aus zu führen)

### Kube-Proxy

Der Kube-Proxy ist für die Kommunikation zwischen Container auf unterschiedlichen Nodes verantwortlich.

## Übersicht

[![image.png](https://bookstack.voser.cloud/uploads/images/gallery/2023-07/scaled-1680-/zqI0NiuHqt5msS5H-image.png)](https://bookstack.voser.cloud/uploads/images/gallery/2023-07/zqI0NiuHqt5msS5H-image.png)