Cos'è etcd

  • Di
  • 2023-03-23 - 3 minuti
banner

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 etcd sia 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

Post correlati

Iscriviti al TheRedCode.it Corner

La tecnologia corre, e tu devi correre più veloce per rimanere sempre sul pezzo! 🚀

Riceverai una volta al mese (o anche meno) con codici sconto per partecipare agli eventi del settore, quiz per vincere dei gadget e i recap degli articoli più interessanti pubblicati sul blog

Ci sto!

Partners

Community, aziende e persone che supportano attivamente il blog

Logo di Codemotion
Logo di GrUSP
Logo di Python Milano
Logo di Schrodinger Hat
Logo di Python Biella Group
Logo di Fuzzy Brains
Logo di Django Girls
Logo di Improove
Logo del libro open source
Logo di NgRome

Vuoi diventare #tech content writer? 🖊️

Se vuoi raccontare la tua sul mondo #tech con dei post a tema o vuoi condividere la tua esperienza con la community, sei nel posto giusto! 😉

Manda una mail a collaborazioni[at]theredcode.it con la tua proposta e diventa la prossima penna del blog!

Ma sì, facciamolo!