Accedi / Registrati Account

CONTAINER

Cos'è l'etcd?

Con etcd (pronuncia et-si-di) si intende un archivio open source, distribuito e coerente di coppie chiave-valore per la gestione di configurazioni condivise, rilevamento dei servizi e unità di pianificazione all'interno di sistemi distribuiti o cluster di sistemi. L'archivio etcd garantisce aggiornamenti automatici più sicuri, coordina le attività da eseguire sugli host e agevola la configurazione di reti overlay per i container.

Jump to section

etcd è un componente essenziale di molti altri progetti, e in particolare del datastore principale di Kubernetes, che costituisce lo standard di fatto per l'orchestrazione dei container. Grazie a etcd, le applicazioni cloud native possono garantire un uptime più costante e continuare a funzionare anche in caso di errore dei singoli server. Le applicazioni leggono e scrivono dati in etcd, il quale distribuisce i dati di configurazione garantendo ridondanza e resilienza per la configurazione dei nodi.

Kubernetes ed etcd

In qualità di datastore principale di Kubernetes, etcd memorizza e replica tutti gli stati dei cluster Kubernetes. Poiché etcd è un componente critico di un cluster Kubernetes, applicare un approccio affidabile alla sua configurazione e gestione è fondamentale.

Essendo etcd un sistema distribuito basato sul consenso, la sua configurazione cluster può risultare complessa poiché prevede attività laboriose che richiedono avanzate competenze specializzate in materia, tra cui: bootstrap, mantenimento del quorum, riconfigurazione dei membri del cluster, creazione dei backup, gestione del ripristino di emergenza e monitoraggio degli eventi critici.

Per semplificare tutte queste operazioni, è possibile utilizzare un operatore etcd.

Funzionalità dell'operatore etcd

L'utilizzo di un operatore, che rappresenta un insieme di competenze operative umane, semplifica l'uso di etcd con Kubernetes o con una piattaforma container Kubernetes, come Red Hat OpenShift. L' operatore etcd, che gestisce etcd all'interno di Operator Framework, consente di semplificare la configurazione cluster e la gestione di etcd.

L'operatore etcd si installa con un singolo comando e l'utente può configurarne e gestirne le complessità tramite una semplice configurazione dichiarativa che consente di creare, configurare e gestire i cluster etcd.

L'operatore etcd fornisce le seguenti funzionalità:

  • Creazione/distruzione - Anziché specificare tutte le impostazioni di configurazione per ogni singolo membro di etcd, gli utenti possono limitarsi a indicare le dimensioni del cluster.

  • Ridimensionamento - Gli utenti devono modificare solo le dimensioni nelle specifiche, dopodiché l'operatore etcd provvede a implementare, distruggere e/o riconfigurare i membri del cluster.

  • Backup - L'operatore etcd esegue i backup in modo automatico e trasparente. Gli utenti devono semplicemente specificare i criteri di backup, ad esempio: Esegui il backup ogni 30 minuti e conserva gli ultimi 3 backup.

  • Upgrade - Eseguire l'upgrade di etcd senza causare downtime è fondamentale ma non semplice. L'operatore etcd consente di effettuare tali operazioni agevolmente, evitando gli errori di upgrade più comuni.

Come funziona

L'operatore etcd simula il comportamento di un operatore umano suddividendolo in 3 passaggi, ovvero monitoraggio, analisi e azione.

  1. L'operatore monitora lo stato attuale del cluster tramite l'API Kubernetes.

  2. Cerca quindi le differenze fra tale stato e quello desiderato.

  3. Infine, corregge le differenze utilizzando una o entrambe le API di gestione cluster di etcd oppure l'API Kubernetes.

Il contributo di Red Hat

L'archivio etcd è stato creato nel 2013 dal team CoreOS e successivamente è stato gestito dai tecnici di Red Hat, insieme a un team di esperti del settore. 

Nel 2018 Red Hat e il team CoreOS hanno affidato il progetto della community etcd alla Cloud Native Computing Foundation (CNCF), un'organizzazione indipendente dal fornitore, che opera all'interno di The Linux Foundation per promuovere l'adozione dei sistemi cloud native. Poiché etcd è fondamentale per tutti i cluster Kubernetes, con questa decisione tale archivio è stato affidato alla community che lo utilizza di più nell'ambito della CNCF.

Red Hat intende continuare a partecipare allo sviluppo di etcd, soprattutto come parte di Red Hat OpenShift, il suo prodotto Kubernetes di livello enterprise. Red Hat è stata anche una delle prime aziende a supportare il lancio della CNCF nel 2015 e da allora collabora con la fondazione e la community allo sviluppo e alla diffusione delle tecnologie cloud native. Grazie al costante impegno e ai progressi di Red Hat raggiunti nello sviluppo di software open source, etcd può sfruttare maggiormente tutti i vantaggi della community nell'ambito della CNCF.