DEV Community

Serena Sensini
Serena Sensini

Posted on • Originally published at theredcode.it on

Cos'è etcd

Cosa vedrai

Etcd

etcd è un datastore open source basato su coppie chiave-valore utilizzato per gestire e archiviare i dati che aiutano un sistema distribuito -come un cluster- a rimanere in esecuzione correttamente.

etcd è conosciuto principalmente per essere uno dei componenti chiave di Kubernetes, dal momento che memorizza i dati relativi allo stato, alla configurazione e ai metadati di Kubernetes.

Questo componente viene considerato l’unica fonte di verità rispetto allo stato del cluster.

Caratteristiche

Replicazione e coerenza

Tra le tante caratteristiche, etcd è replicato : questo vuol dire che ogni nodo del cluster ha pieno accesso al datastore e ai suoi dati.

etcd è anche coerenza : tutti i dati letti in un cluster rappresentano la situazione attuale dello stato del cluster.

In un cluster etcd -per un momento abbandoniamo Kubernetes- immaginiamo di avere quattro nodi, di cui uno rappresenta il nodo leader e gli altri sono i follower.

Essendo un datastore che memorizza i dati sotto forma di chiave-valore, ognuno di essi avrà memorizzati dei dati che usano questo formato.

Immaginiamo, ad esempio, che all’interno di etcd sia memorizzata una coppia la cui chiave è 1 e il cui valore è 33:

Quando arriva una nuova richiesta da un client, questa transita verso uno qualsiasi dei nodi: se si tratta proprio del nodo leader, questo comunicherà l’aggiornamento ai suoi follower e attenderà che tutti abbiano aggiornato l’informazione a quella dello stato richiesto -il tutto avviene in pochi millisecondi!-.

Una request può arrivare anche ad un nodo follower, che non è detto sia coerente con la base dati attuale: se

chiedesse il valore attuale della chiave 1 e questi non fosse aggiornato, non si avrà una situazione di inconsistenza.Il nodo sa di essere un follower, per cui non è autorizzato a rispondere direttamente a chi ha fatto la richiesta. Inoltrerà la request al nodo leader, il quale risponderà con l’informazione aggiornata.

Alta disponibilità

Immaginiamo che il nodo leader per qualche motivo vada in errore: chi sarà il nuovo leader?

In effetti, etcd si basa sull’algoritmo Raft, che serve a gestire il consenso in un sistema distribuito per garantirne l’alta disponibilità e un ottimo livello di performance.

Questo vuol dire che i follower potranno candidarsi all’elezione del nuovo leader e ognuno voterà in base alla disponibilità, di modo che un nuovo leader venga eletto. Il nuovo leader si occuperà di gestire anche la replicazione dei nodi e i dati presenti nel datastore non saranno in alcun modo persi.

Veloce

etcd ha una performance di circa 10.000 scritture al secondo, ma salva i dati su disco: questo vuol dire che la performance dipende da quelle del disco.

Sicurezza

Trattandosi di informazioni sensibili, perché rappresentano lo stato del cluster, è importante che etcdsia anche sicuro: questo supporta TLS nonchè la possibilità di utilizzare un meccanismo di autenticazione che usi i certificati del client.

Se ti è piaciuto questo articolo, non ti dimenticare di commentare e condividere! ⬇️

Risorse utili

Top comments (0)