Red Hat OpenShift e Kubernetes sono due piattaforme molto conosciute utilizzate per eseguire applicazioni containerizzate. OpenShift si basa strettamente su Kubernetes, il che crea ampie somiglianze tra le due piattaforme, tuttavia ci sono differenze importanti tra OpenShift e Kubernetes quando si tratta di strumenti, configurazioni predefinite e supporto del fornitore.
OpenShift e Kubernetes: cosa sono
OpenShift è una piattaforma di containerizzazione delle applicazioni sviluppata da Red Hat, che ora è di proprietà di IBM. La caratteristica di OpenShift è quella di non essere un singolo prodotto, ma un portafoglio di più offerte. Queste offerte includono sia servizi OpenShift ospitati ed eseguiti su cloud pubblici sia Red Hat OpenShift Container Platform, progettata per architetture ibride e locali. Esiste anche una variante community-supported di OpenShift chiamata OKD.
Kubernetes è una piattaforma open source di orchestrazione di contenitori disponibile in una varietà di distribuzioni, come Rancher, Amazon Elastic Kubernetes Service e Google Kubernetes Engine. Kubernetes funge da base di OpenShift, ma quest’ultima ha dei componenti aggiuntivi e delle estensioni che la rendono una piattaforma classificabile come separata rispetto a Kubernetes.
OpenShift e Kubernetes: dove si somigliano
Essendo OpenShift basata su Kubernetes, parliamo di due piattaforme le cui tecnologie condividono gli stessi concetti fondamentali. Gli utenti scrivono i file di configurazione per definire la modalità di distribuzione delle applicazioni containerizzate, quindi distribuiscono e gestiscono tali applicazioni tra cluster di server. Entrambe le piattaforme supportano anche gli stessi linguaggi di configurazione: YAML e JSON. Inoltre, sia OpenShift sia Kubernetes forniscono funzionalità di bilanciamento del carico e di routing e possono essere eseguite nel cloud pubblico o in locale.
OpenShift è inoltre completamente compatibile con le API Kubernetes e qualsiasi applicazione che può essere eseguita su Kubernetes può essere eseguita anche su OpenShift.
OpenShift e Kubernetes: quali differenze
Le differenze tra OpenShift e Kubernetes risiedono in gran parte nel supporto di OpenShift per strumenti ed estensioni.
In Kubernetes, il principale programma per la gestione dei cluster è kubectl. Il command-line tool di OpenShift invece si chiama oc. Quest’ultimo è molto simile a kubectl, ma dispone di funzionalità extra che semplificano le attività, in particolare l’accesso ai cluster.
OpenShift si affida per la gestione dei file log a Fluentd, Elasticsearch e Kibana, con cui Kubernetes è compatibile così come con altri strumenti di registrazione. Quindi, con Kubernetes gli utenti devono decidere come gestire la registrazione. Un’altra differenza è che OpenShift offre una console di gestione web integrata, mentre Kubernetes offre un’interfaccia simile ma solo come componente aggiuntivo opzionale.
Differenze tecniche a parte, OpenShift è diverso da Kubernetes perché OpenShift è un prodotto Red Hat, disponibile solo da Red Hat. Anche se, come detto, Red Hat offre OpenShift come servizio su diverse piattaforme cloud pubbliche. Nel caso di OpenShift anche i nodi, cioè gli ambienti per il runtime, devono essere forniti con Red Hat Enterprise Linux CoreOS, mentre i nodi Kubernetes usano qualsiasi sistema operativo basato su Linux, oltre a Windows.