Operatori e Red Hat OpenShift Container Platform
Gli operatori Red Hat® OpenShift® consentono di automatizzare la creazione, la configurazione e la gestione delle istanze delle applicazioni Kubernetes native. Forniscono automazione a tutti i livelli dello stack: dalla gestione dei singoli componenti della piattaforma fino alle applicazioni, che vengono erogate come servizi gestiti.
Sfruttando l'automazione offerta dagli operatori Kubernetes per la gestione della piattaforma, Red Hat OpenShift è in grado di esporre la configurazione in modo nativo tramite gli oggetti Kubernetes, velocizzare l'installazione e garantire aggiornamenti frequenti e affidabili. Oltre quindi a eseguire l'intera piattaforma in autonomia, Red Hat OpenShift semplifica la ricerca, l'installazione e la gestione degli operatori in esecuzione nei cluster.
Red Hat OpenShift integra OperatorHub, un registro di operatori certificati creati da fornitori di software e progetti open source. OperatorHub rende disponibile una raccolta di operatori, compatibili con Red Hat OpenShift, che sono stati raggruppati per un'ottimale gestione del loro ciclo di vita.
Cos'è un operatore Kubernetes?
Un operatore Kubernetes è un metodo che consente di creare il pacchetto di un'applicazione Kubernetes native, eseguirne il deployment e gestirla. Un'applicazione Kubernetes native è un'applicazione che viene distribuita in Kubernetes e gestita tramite le API Kubernetes e gli strumenti kubectl.
Un operatore è di fatto un controller personalizzato.
I controller, che svolgono un ruolo chiave in Kubernetes, vengono implementati come un ciclo software costantemente in esecuzione sui nodi master Kubernetes, con lo scopo di confrontare e riconciliare lo stato attuale di un oggetto con la condizione target richiesta. Gli oggetti sono risorse di uso comune, come pod, servizi, ConfigMap e PersistentVolume. Gli operatori applicano questo modello a livello dell'intera applicazione fungendo da controller specifici dell'applicazione.
Il software dell'operatore viene eseguito in un pod sul cluster e interagisce con il server API Kubernetes. Gli operatori Kubernetes possono introdurre nuovi tipi di oggetti tramite le Custom Resource Definition (CRD), un meccanismo di estensione fornito da Kubernetes. Questi oggetti personalizzati sono soprattutto interfacce utente, coerenti con il modello di interazione basato su risorse del cluster Kubernetes.
Un operatore monitora questi tipi di risorse personalizzati e riceve una notifica se sono presenti o hanno subito una modifica. Alla ricezione di tale notifica, l'operatore inizia a eseguire un ciclo con lo scopo di garantire la disponibilità delle connessioni richieste per il servizio applicativo rappresentato da questi oggetti, verificando che siano configurate nel modo indicato dall'utente nella specifica dell'oggetto.
Ebook
O'Reilly: Kubernetes Operators: Automating the Container Orchestration Platform
Scarica questo ebook per capire il funzionamento degli operatori e imparare a crearli utilizzando Operator Framework e l'SDK.
Operator Framework
Operator Framework è un progetto open source che offre agli sviluppatori e agli amministratori dei cluster gli strumenti necessari per accelerare lo sviluppo e il deployment di un operatore.
Il progetto include Operator Software Development Kit (SDK), per la creazione delle applicazioni Kubernetes, un framework di gestione per l'estensione di Kubernetes con gli operatori, e un catalogo di operatori esistenti, realizzati dalla community Kubernetes.
Operatori pronti all'uso
Operatori creati dalla community
Accedendo agli operatori della community, gli sviluppatori e gli amministratori dei cluster possono sperimentare operatori con vari livelli di maturità utilizzabili in qualunque ambiente Kubernetes. Scopri gli operatori della community su OperatorHub.io.
Operatori certificati
Gli operatori Red Hat OpenShift certificati disponibili in Embedded OperatorHub permettono agli sviluppatori e agli amministratori dei cluster di accedere a una libreria di carichi di lavoro "as-a-service", collaudati su Red Hat OpenShift e supportati da Red Hat e dai suoi partner.
Crea i tuoi operatori con l'SDK
L'Operator Software Development Kit (SDK) mette a disposizione tutti gli strumenti necessari per creare e testare gli operatori, per poi fornirli sotto forma di pacchetto. Utilizzando l'SDK si evita di inserire gran parte del codice standard normalmente necessario per l'integrazione con l'API Kubernetes. L'SDK fornisce anche una struttura pronta all'uso, che permette agli sviluppatori di concentrarsi completamente sull'aggiunta della logica di business, ad esempio per espandere, aggiornare o eseguire il backup dell'applicazione gestita. Nell'SDK sono inclusi anche i modelli di codice e le pratiche principali, condivisi da diversi operatori, per evitare di ricreare più volte gli stessi componenti. L'SDK permette inoltre di realizzare brevi cicli di sviluppo e test iterativi, grazie agli strumenti per la convalida di base dell'operatore, e di creare automaticamente i pacchetti per il deployment tramite Operator Lifecycle Manager.
Creazione di pacchetti con Operator Lifecycle Manager
Operator Lifecycle Manager (OLM) è il backplane che semplifica la gestione degli operatori in un cluster Kubernetes. Gli operatori che forniscono le applicazioni di uso comune sotto forma di servizi sono in genere costituiti da carichi di lavoro di lunga durata, probabilmente dotati di varie autorizzazioni all'interno del cluster.
OLM permette agli amministratori di specificare gli operatori disponibili in ogni singolo spazio dei nomi e gli utenti autorizzati a interagire con gli operatori in esecuzione. Le autorizzazioni di ciascun operatore vengono automaticamente configurate con precisione, in base al principio del privilegio minimo. OLM gestisce completamente il ciclo di vita degli operatori e delle relative risorse, ad esempio risolvendo le dipendenze dagli altri operatori, attivando gli aggiornamenti degli operatori e delle applicazioni che gestiscono o concedendo a un team i diritti di accesso a un operatore per la relativa sezione del cluster.
Le funzionalità di Operator Framework per la gestione del ciclo di vita possono essere utilizzate da semplici applicazioni stateless, senza scrivere alcun codice, tramite un operatore generico come ad esempio Helm Operator. Ma la vera utilità degli operatori emerge con le applicazioni stateful complesse, perché le funzionalità di gestione dei servizi incorporate nel codice dell'operatore possono garantire un'esperienza utente avanzata, automatizzando ad esempio gli aggiornamenti, i backup e la scalabilità.
Misurazione con Operator Metering
Le estensioni di misurazione consentono al personale IT di controllare più efficacemente il budget e ai fornitori di software di monitorare più facilmente l'utilizzo dei loro prodotti commerciali. Operator Metering è uno strumento progettato per integrarsi con la funzione di generazione dei report relativi alla CPU e alla memoria del cluster, oltre che per calcolare i costi IaaS e le metriche personalizzate, ad esempio per la gestione delle licenze.