Kurzfassung
etcd ist ein quelloffener, verteilter Key-Value-Store, der zuverlässigen Speicher für kritische Daten in verteilten Systemen bereitstellt. Er ist vor allem als Backing Store für den gesamten Kubernetes-Cluster-Zustand bekannt.
Was ist etcd?
etcd verwendet den Raft-Konsensalgorithmus, um sicherzustellen, dass Daten über alle Knoten eines Clusters hinweg konsistent sind – auch bei Netzwerkpartitionen oder Knotenausfällen. Jeder Schreibvorgang wird erst nach der Bestätigung durch ein Quorum von Knoten abgeschlossen.
In Kubernetes speichert etcd alle API-Objekte: Pods, Services, ConfigMaps, Secrets und mehr. Der Kubernetes API Server ist die einzige Komponente, die direkt mit etcd kommuniziert; alle anderen Komponenten interagieren über den API Server. Damit ist etcd die einzige Quelle der Wahrheit für den gesamten Cluster.
Über Kubernetes hinaus wird etcd für verteiltes Locking, Leader Election und Service Discovery in anderen verteilten Systemen eingesetzt.
Warum ist etcd relevant?
- Kubernetes-Abhängigkeit: Kubernetes kann ohne einen funktionierenden etcd-Cluster nicht betrieben werden
- Starke Konsistenz: Raft-basierter Konsens garantiert keine Datendivergenz zwischen Knoten
- Watch API: Clients können Schlüsseländerungen in Echtzeit abonnieren und reaktive Systeme aufbauen
- Betriebliche Einfachheit: Ein Cluster aus drei oder fünf Knoten bietet Hochverfügbarkeit ohne komplexes Setup