Concetti chiave per Red Hat OpenShift Container Platform

Scopri i concetti di base di operatori, contenitori e Kubernetes per aiutarti a capire i vantaggi della migrazione delle tue applicazioni al cloud.

Per ulteriori informazioni sull'utilizzo di Red Hat® OpenShift® Container Platform, consultare i seguenti argomenti:

Operatori e dipendenze

Cos' è un operatore?
Un operatore è una serie di risorse native Kubernetesche impacchetta, distribuisce e gestisce un'applicazione Kubernetes estendendo l'API Kubernetes .
Cos' è un'applicazione Kubernetes ?
Un'applicazione Kubernetes è un'applicazione distribuita su Kubernetes e gestita utilizzando gli strumenti kubectl e le API Kubernetes .
Come funziona un operatore?

Un operatore è costituito da diverse parti di software che consentono una gestione efficace delle applicazioni su Kubernetes - un controller e una o più CRD (custom resource definition).

Il controller è un codice personalizzato che viene distribuito a un cluster Kubernetes che controlla le modifiche alle risorse Kubernetes personalizzate e reagisce ad esse. Una risorsa personalizzata è un'estensione dell'API Kubernetes e viene utilizzata per fornire funzionalità aggiuntive che potrebbero non essere disponibili nell'installazione Kubernetes predefinita. Consente la personalizzazione e la modularizzazione di Kubernetes.

Che cos' è una dipendenza?
Una dipendenza è un prerequisito che deve essere soddisfatto prima di poter continuare l'elaborazione. Vale a dire, quando un'entità in un sistema non può funzionare in modo significativo senza un'altra entità, si dice che sia dipendente. Ad esempio, un'applicazione potrebbe avere delle dipendenze su un server, un database o altri servizi a cui è connessa. Nella migrazione cloud, tali dipendenze dell'applicazione sono un rischio possibile. Gli strumenti di rilevamento possono fornire un quadro chiaro della relazione tra ciascuna applicazione e le relative dipendenze, in modo da poter migrare correttamente tutte le applicazioni e i servizi critici nel cloud.

Operator Lifecycle Manager (OLM)

Cos' è Operator Lifecycle Manager
Operator Lifecycle Manager (OLM) estende la funzione di Kubernetes consentendo agli utenti di installare, gestire e aggiornare gli operatori e le rispettive dipendenze in un cluster.
Perché utilizzare Operator Lifecycle Manager?
  • Puoi gestire più facilmente le applicazioni definendo un'applicazione come una singola risorsa Kubernetes , ciascuna con i suoi requisiti e metadati. OLM richiede questi metadati per verificare che un operatore possa essere eseguito in modo sicuro su un cluster e comprendere come applicare gli aggiornamenti.
  • È possibile automatizzare le installazioni dell'applicazione e risolvere le dipendenze o installare manualmente con nient'altro che kubectl.
  • È possibile automatizzare gli aggiornamenti dell'applicazione e applicare diverse politiche di approvazione per ciascuno.

Containerizzazione, Kubernetese Red Hat OpenShift Container Platform

Cos'è un contenitore?
Un contenitore è un'unità eseguibile di software in cui il codice dell'applicazione viene impacchettato insieme a librerie e dipendenze. Può essere eseguito ovunque sul desktop, sull'IT tradizionale o sul cloud. I contenitori sfruttano una forma di virtualizzazione del sistema operativo (SO), in modo che più applicazioni condividano il sistema operativo isolando i processi e controllando la quantità di CPU, memoria e disco a cui questi processi possono accedere.
Cos' è la containerizzazione?
La containerizzazione è il processo di impacchettamento del codice software e di tutte le sue dipendenze in modo che possa essere eseguito in modo coerente su qualsiasi infrastruttura.
Vantaggi della containerizzazione

La containerizzazione offre i seguenti vantaggi agli sviluppatori e ai team di sviluppo:

  • Portabilità: un contenitore crea un pacchetto eseguibile di software che è astratto (non legato o dipendente da) dal sistema operativo host, e quindi, è portatile e in grado di funzionare in modo uniforme e coerente su qualsiasi piattaforma o cloud.
  • Agilità: il Docker Engine open source per l'esecuzione dei contenitori ha avviato lo standard di settore per i contenitori con strumenti di sviluppo semplici e un approccio di packaging universale che funziona su sistemi operativi Linux® e Windows . Ora, molti utenti preferiscono motori gestiti da OCI (Open Container Initiative). Gli sviluppatori software possono continuare a utilizzare strumenti e processi agili o DevOps per accelerare lo sviluppo e il miglioramento delle applicazioni.
  • Velocità: i contenitori vengono spesso definiti "leggeri", nel senso che condividono il kernel del sistema operativo (OS) del computer. Questa architettura migliora l'efficienza dei server, riduce i costi dei server e delle licenze e riduce i tempi di inizializzazione.
  • Isolamento dei guasti: ogni applicazione containerizzata è isolata e funziona indipendentemente dagli altri. Il malfunzionamento di un contenitore non influisce sul proseguimento delle operazioni di altri contenitori. I team di sviluppo possono identificare e correggere eventuali problemi tecnici all'interno di un contenitore senza tempi di inattività in altri contenitori. Inoltre, il motore del contenitore può utilizzare qualsiasi tecnica di isolamento della sicurezza del sistema operativo - come il controllo accessi SELinux - per isolare gli errori all'interno dei contenitori.
  • Efficienza: il software in esecuzione in ambienti containerizzati condivide il kernel del sistema operativo della macchina e i livelli dell'applicazione all'interno di un contenitore possono essere condivisi tra contenitori. Pertanto, i contenitori sono intrinsecamente più piccoli in capacità rispetto a una VM e richiedono meno tempo di avvio, consentendo a molti più contenitori di essere eseguiti sulla stessa capacità di calcolo di una singola VM. Questa architettura migliora l'efficienza dei server e riduce i costi dei server e delle licenze.
  • Facilità di gestione: una piattaforma di orchestrazione dei contenitori automatizza l'installazione, il ridimensionamento e la gestione dei carichi di lavoro e dei servizi inseriti nel contenitore. Le piattaforme di orchestrazione dei contenitori possono semplificare le attività di gestione come il ridimensionamento delle app inserite in un contenitore, l'introduzione di nuove versioni delle app e la fornitura di monitoraggio, registrazione e debug, tra le altre funzioni. Kubernetes, forse il più popolare sistema di orchestrazione dei contenitori disponibile, è una tecnologia open source (originariamente open source di Google, basata sul loro progetto interno denominato Borg) che automatizza originariamente le funzioni del contenitore Linux . Kubernetes funziona con molti motori di contenitori, come ad esempio Docker, ma funziona anche con qualsiasi sistema di contenitori conforme agli standard OCI (Open Container Initiative) per i runtime e i formati di immagine del contenitore.
  • Sicurezza: l'isolamento delle applicazioni come contenitori impedisce intrinsecamente l'invasione di codice doloso da parte di altri contenitori o del sistema host. Inoltre, le autorizzazioni di sicurezza possono essere definite per bloccare automaticamente i componenti indesiderati dall'immissione di contenitori o limitare le comunicazioni con risorse non necessarie.

Per saperne di più sulla containerizzazione, vedere Containerizzazione spiegata.

Cos'è Kubernetes?
Kubernetes - noto anche come "k8s" o "kube" - è una piattaforma di orchestrazione del contenitore per la pianificazione e l'automazione della distribuzione, della gestione e del ridimensionamento delle applicazioni inserite nel contenitore.
Perché utilizzare Kubernetes?

I team delle operazioni devono pianificare e automatizzare la distribuzione, la rete, la scalabilità e la disponibilità di un numero sempre crescente di contenitori.

Gli sviluppatori scelgono Kubernetes per la sua vasta gamma di funzionalità, il suo vasto e crescente ecosistema di strumenti open source e il suo supporto e la sua portabilità tra i principali provider cloud (alcuni dei quali ora offrono servizi Kubernetes completamente gestiti).

Cosa fa Kubernetes?

Kubernetes pianifica e automatizza le seguenti attività:

  • Distribuzione: distribuire un determinato numero di contenitori su un determinato host e mantenerli in esecuzione nello stato desiderato.
  • Rollout: un rollout è una modifica a una distribuzione. Utilizzando Kubernetes, puoi avviare, sospendere, riprendere o eseguire il rollback dei rollout.
  • Rilevamento servizi: Kubernetes può esporre automaticamente un contenitore a Internet o ad altri contenitori utilizzando un nome DNS o un indirizzo IP.
  • Provisioning dell'archiviazione: imposta Kubernetes per montare l'archiviazione locale o cloud persistente per i tuoi contenitori in base alle esigenze.
  • Bilanciamento del carico e ridimensionamento: quando il traffico verso un contenitore ha picchi, Kubernetes può utilizzare il bilanciamento del carico e il ridimensionamento per distribuirlo nella rete per mantenere la stabilità.
  • Autoriparazione per alta disponibilità: quando un contenitore si guasta,Kubernetes può riavviarlo o sostituirlo automaticamente; può anche rimuovere i contenitori che non soddisfano i requisiti di controllo dello stato.
Cos' è Red Hat Red Hat OpenShift Container Platform?

Red Hat OpenShift Container Platform è una piattaforma per automatizzare la distribuzione e la gestione di applicazioni inserite in un contenitore. Mentre Red Hat OpenShift Container Platform utilizza Kubernetes per orchestrare i contenitori, Kubernetes non gestisce i requisiti a livello di piattaforma o i processi di distribuzione. Pertanto, Red Hat OpenShift Container Platform migliora la capacità di Kubernetes fornendo processi e strumenti di gestione della piattaforma.

Per ulteriori informazioni, vedere Red Hat OpenShift Container Platform Icona del collegamento esterno.