Fasse die Hauptkomponenten einer Kubernetes-Cluster-Kontrollebene in diesem Absatz zusammen
Summarize the main components of a Kubernetes cluster control plane from this paragraph
The kubernetes cluster control plane runs on one more more master nodes. The components are:
1. etcd - a key value datastore containing the configuration data of the cluster.
2. The api-server is a server which serves and updates the state of the kubernetes cluster. It watches etcd and keeps the clusters actual state in sync with its desired state.
3. The scheduler is a component which selects on which node an unscheduled pod should run, based on what each pod needs and what the nodes in the cluster can support.
4. The controller manager manages several controllers which keep the cluster in sync with its desired state.
Die Steuerungsebene des Kubernetes-Clusters läuft auf einem oder mehreren Master-Knoten. Die Komponenten sind:
1. etcd - ein Key Value Datastore, der die Konfigurationsdaten des Clusters enthält.
2. Der api-server ist ein Server, der den Status des Kubernetes-Clusters bedient und aktualisiert. Er überwacht etcd und hält den Ist-Zustand des Clusters mit seinem Soll-Zustand synchron.
3. Der Scheduler ist eine Komponente, die auswählt, auf welchem Knoten ein ungeplanter Pod ausgeführt werden soll, je nachdem, was der Pod braucht und was die Knoten im Cluster unterstützen können.
4. Der Controller-Manager verwaltet mehrere Controller, die den Cluster mit seinem gewünschten Zustand synchronisieren.
summarization
Kubernetes definiert eine Reihe von Bausteinen ("Primitives"), die gemeinsam Mechanismen für den Einsatz, die Wartung und die Skalierung von Anwendungen auf der Grundlage von CPU-, Speicher- oder benutzerdefinierten Metriken bereitstellen. Kubernetes ist lose gekoppelt und erweiterbar, um unterschiedlichen Arbeitslasten gerecht zu werden. Sowohl die internen Komponenten als auch die Erweiterungen und Container, die auf Kubernetes laufen, basieren auf der Kubernetes-API. Die Plattform übt ihre Kontrolle über Rechen- und Speicherressourcen aus, indem sie Ressourcen als Objekte definiert, die dann auch als solche verwaltet werden können.

Kubernetes folgt der primären/replizierenden Architektur. Die Komponenten von Kubernetes lassen sich in solche, die einen einzelnen Knoten verwalten, und solche, die Teil der Steuerungsebene sind, unterteilen.

Steuerebene
Der Kubernetes-Masterknoten verwaltet die Kubernetes-Kontrollebene des Clusters, indem er die Arbeitslast verwaltet und die Kommunikation innerhalb des Systems steuert. Die Kubernetes-Kontrollebene besteht aus verschiedenen Komponenten, von denen jede ein eigener Prozess ist, der sowohl auf einem einzigen Master-Knoten als auch auf mehreren Mastern laufen kann, die hochverfügbare Cluster unterstützen. Die verschiedenen Komponenten der Kubernetes-Kontrollebene sind wie folgt:

etcd ist ein persistenter, leichtgewichtiger, verteilter Key-Value-Datenspeicher, den CoreOS entwickelt hat. Er speichert zuverlässig die Konfigurationsdaten des Clusters, die den Gesamtzustand des Clusters zu jedem beliebigen Zeitpunkt repräsentieren. etcd zieht im Falle einer Netzwerkpartition die Konsistenz der Verfügbarkeit vor (siehe CAP-Theorem). Die Konsistenz ist entscheidend für die korrekte Planung und den Betrieb von Diensten.
Der API-Server bedient die Kubernetes-API mit JSON über HTTP, die sowohl die interne als auch die externe Schnittstelle zu Kubernetes darstellt. Der API-Server verarbeitet und validiert REST-Anfragen und aktualisiert den Status der API-Objekte in etcd, so dass Clients Workloads und Container über Worker Nodes hinweg konfigurieren können. Der API-Server nutzt die Watch-API von etcd, um den Cluster zu überwachen, kritische Konfigurationsänderungen auszurollen oder Abweichungen vom Status des Clusters auf den vom Deployer deklarierten Status zurückzusetzen. Der Deployer kann z. B. angeben, dass drei Instanzen eines bestimmten "Pods" (siehe unten) laufen müssen. etcd speichert diese Tatsache. Wenn der Deployment Controller feststellt, dass nur zwei Instanzen laufen (was im Widerspruch zur etcd-Deklaration steht), plant er die Erstellung einer zusätzlichen Instanz dieses Pods.
Der Scheduler ist die erweiterbare Komponente, die anhand der Ressourcenverfügbarkeit auswählt, auf welchem Knoten ein ungeplanter Pod (die vom Scheduler verwaltete Basisinstanz) läuft. Der Scheduler verfolgt die Ressourcennutzung auf jedem Knoten, um sicherzustellen, dass die Arbeitslast nicht über die verfügbaren Ressourcen hinaus geplant wird. Zu diesem Zweck muss der Scheduler die Ressourcenanforderungen, die Ressourcenverfügbarkeit und andere vom Benutzer vorgegebene Einschränkungen oder Richtlinien wie Quality-of-Service, Affinitäts- und Anti-Affinitätsanforderungen und Datenlokalität kennen. Die Aufgabe des Schedulers ist es, das "Angebot" an Ressourcen mit der "Nachfrage" nach Workloads abzustimmen.
Ein Controller ist eine Abstimmungsschleife, die den tatsächlichen Clusterzustand in Richtung des gewünschten Zustands steuert und mit dem API-Server kommuniziert, um die von ihm verwalteten Ressourcen (z. B. Pods oder Service-Endpunkte) zu erstellen, zu aktualisieren und zu löschen. Eine Art von Controller ist der Replication Controller, der die Replikation und Skalierung steuert, indem er eine bestimmte Anzahl von Kopien eines Pods im gesamten Cluster ausführt. Er kümmert sich auch um die Erstellung von Ersatz-Pods, wenn der zugrundeliegende Knoten ausfällt. Andere Controller, die Teil des Kubernetes-Kernsystems sind, sind ein DaemonSet-Controller, der genau einen Pod auf jeder Maschine (oder einer Teilmenge von Maschinen) ausführt, und ein Job-Controller, der Pods ausführt, die bis zum Ende laufen (z. B. als Teil eines Batch-Jobs). Label-Selektoren, die Teil der Controller-Definition sind, geben die Menge der Pods an, die ein Controller verwaltet.
Der Controller-Manager ist ein Prozess, der eine Reihe von Kubernetes-Kerncontrollern verwaltet.
de