Was ist die Speicherebene der Kubernetes-Kontrollebene, wenn du diesen Absatz über Kubernetes liest?
Given this paragraph about kubernetes, what is the storage layer of Kubernetes control plane?
ETCD
ETCD
closed_qa
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 einem bestimmten 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- oder 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