Jump to section

Cos'è l'etcd?

Copia URL

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.

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.

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.

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 ad adottare, 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.

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.

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.

Keep reading

ARTICOLO

Container e VM

I container Linux e le macchine virtuali (VM) sono entrambi pacchetti di ambienti di elaborazione che combinano vari componenti IT e li isolano dal resto del sistema.

ARTICOLO

Cos'è l'orchestrazione dei container?

Definiamo orchestrazione dei container l'automazione dei processi di deployment, gestione, scalabilità e networking dei container.

ARTICOLO

Cos'è un container Linux?

Un container Linux è un insieme di processi, isolati dal resto del sistema, che esegue un'immagine distinta contenente tutti i file necessari per supportare tali processi.

Scopri di più sui container

Prodotti

Una piattaforma applicativa aziendale che offre servizi verificati per consentire la distribuzione delle app sulle infrastrutture preferite.

Risorse

Checklist

10 considerazioni sui deployment Kubernetes

Checklist

Sei considerazioni per scegliere la piattaforma Kubernetes giusta

Serie Open Answers: Cos'è Red Hat OpenShift?

Formazione

Corso di formazione gratuito

Running Containers with Red Hat Technical Overview

Corso di formazione gratuito

Containers, Kubernetes and Red Hat OpenShift Technical Overview

Corso di formazione gratuito

Developing Cloud-Native Applications with Microservices Architectures