Che cos'è Kubernetes?

Kubernetes è un termine che descrive un sistema portatile open source per l'orchestrazione di container o una piattaforma per la gestione delle applicazioni containerizzate.

Demo DevOps
Sommario
Vantaggi di Kubernetes Termini comuni di Kubernetes Come funziona Kubernetes? Confronti con Kubernetes ServiceNow e Kubernetes

Per comprendere Kubernetes (chiamato anche K8s, o "Kube"), è importante capire prima l'orchestrazione di container. L'architettura di container suddivide i diversi servizi che costituiscono un'applicazione in container separati e confezionati distribuiti in un cluster di macchine fisiche o virtuali. Con l'ascesa dell'architettura di container, nasce la necessità di un'orchestrazione di container. L'orchestrazione di container è uno strumento che gestisce e automatizza la distribuzione, la scalabilità, il networking e la disponibilità di questi container.

Kubernetes è un sistema di orchestrazione di container che gestisce e automatizza l'organizzazione e la distribuzione dei processi dei container. Nasce in Google e diventa open source nel 2014. Da allora, Kubernetes può essere usato da chiunque con pochissime restrizioni di utilizzo.

 

Espandi tutto Comprimi tutto Vantaggi di Kubernetes

Kubernetes offre molti vantaggi, per questo è uno strumento molto diffuso in tante aziende. Di seguito, tre vantaggi di Kubernetes:

Automazione delle operazioni

L'automazione sta diventando una parte sempre più cruciale dei processi aziendali. Automatizzare più processi aumenta l'efficienza e la produttività, consentendo al personale dell'azienda di concentrarsi su attività più importanti. Kubernetes permette alle aziende di automatizzare le operazioni quotidiane sull'architettura di container, in modo da garantire che il loro tempo venga speso nel modo più efficiente possibile. Le operazioni automatizzate sono anche più accurate perché non vi è alcuna possibilità di errore umano. Inoltre, sono uno strumento potente.

Astrazione dell'infrastruttura

Il tempo degli sviluppatori è prezioso. Per le aziende è un vantaggio che gli sviluppatori possano concentrarsi sulle attività più importanti, mentre gli strumenti si dedicano a quelle a bassa priorità. Grazie all'astrazione dell'infrastruttura, Kubernetes è in grado di gestire computing, networking e archiviazione. Oltre a queste attività, gestisce anche l'architettura, consentendo agli sviluppatori di concentrarsi sulle applicazioni stesse.

Monitoraggio dell'integrità del servizio

Kubernetes esegue controlli sullo stato degli sviluppatori per garantire che ciascun container funzioni correttamente. Il sistema può anche riavviare qualsiasi container che si è bloccato o che non funziona. La gestione dello stato dei container è importante, ma Kubernetes fa anche in modo che solo i servizi perfettamente funzionanti e in esecuzione siano a disposizione degli utenti. Se qualcosa non funziona, gli utenti non la vedranno finché Kubernetes non la ripristinerà.

DevOps Book of Knowledge (Book of Knowledge: DevOps) Scopri come i colleghi del settore stanno adottando DevOps per ottenere informazioni su una trasformazione e modernizzazione DevOps efficaci. Scarica l'eBook
Termini comuni di Kubernetes

Kubernetes utilizza vari elementi di architettura che sono familiari a molti sviluppatori e tanti altri che sono specifici di Kubernetes. Ecco alcuni termini comuni di Kubernetes da conoscere.

Cluster Kubernetes

Il livello più alto dell'organizzazione di Kubernetes è il cluster. Per cluster si intende il gruppo di macchine che esegue Kubernetes e tutti i container da esso gestiti. Con Kubernetes, il cluster avrà un master o una macchina che controlla tutte le altre macchine del cluster. Solo un master alla volta può eseguire lo scheduler e il controller manager.

Nodi e pod di Kubernetes

Ogni cluster Kubernetes contiene nodi, il livello di organizzazione successivo. I nodi possono essere le macchine fisiche stesse o quelle virtuali. Kubernetes gestisce la distribuzione di un'applicazione, indipendentemente da ciò che viene eseguito all'interno di questi nodi.

All'interno dei nodi ci sono i pod. I nodi eseguono i pod. I pod sono gli oggetti più semplici che si possono creare e gestire in Kubernetes. Ogni pod rappresenta una singola istanza di un'applicazione in esecuzione in Kubernetes e dispone di uno o più container. All'interno dei pod, Kubernetes avvia, arresta e replica tutti i processi dei container. I pod consentono agli utenti di visualizzare solo l'applicazione stessa, non i container.

A seconda delle richieste degli utenti, i pod vengono creati e distrutti all'interno dei nodi. Poiché gestire i pod è un'attività complessa, Kubernetes utilizza un controller per creare, scorporare e distruggere i pod.

Servizi Kubernetes

I servizi Kubernetes sono ciò che rende possibile il cambiamento continuo dei pod back end, mentre il front end non ne tiene traccia e continua a fornire l'esperienza utente. Un servizio descrive come accedere a un gruppo di pod tramite la rete. Controllando le modalità di accesso ai pod, l'applicazione può rimanere coerente per l'utente anche quando i pod vengono creati e distrutti sul back end.

Policy Kubernetes

Le policy determinano ciò che un pod può e non può fare all'interno del sistema. Una policy Kubernetes potrebbe limitare la quantità di CPU, memoria o spazio su disco che un pod può occupare e impedirgli di utilizzarne troppa. Le restrizioni previste dalle policy dipendono da ciò che viene limitato. Per quanto riguarda la memoria, le policy utilizzano termini assoluti, come 100 MB. Per le CPU, i limiti sono espressi in termini relativi, ad esempio 50%.

Ingress Kubernetes

Impostare Kubernetes e farlo funzionare è un compito importante. Una volta configurato, lo sviluppatore dovrà accedere ai cluster dall'esterno. Per farlo esistono vari strumenti, ma il più flessibile è Ingress. Ingress è un'API che gestisce l'accesso esterno a un cluster tramite HTTP. Configurare Ingress può essere complesso, ma una volta installato, offre un modo semplice ma affidabile per accedere ai servizi di un cluster dall'esterno.

Dashboard di Kubernetes

Una volta che tutti gli altri componenti di Kubernetes sono stati installati, è importante avere un modo per gestirli tutti. La dashboard di Kubernetes è un'interfaccia utente basata sul Web che consente agli sviluppatori di risolvere i problemi e gestire tutte le risorse del cluster. La dashboard deve essere installata separatamente (non viene eseguita in modo automatico), ma una volta che è in posizione è semplice da configurare e utilizzare.

Secret di Kubernetes

A volte le aziende dispongono di informazioni che devono rimanere sicure. Kubernetes dispone di una funzionalità progettata per fornire un ulteriore livello di sicurezza per le informazioni sensibili. Un secret di Kubernetes è un tipo speciale di container che ha un'accessibilità limitata e che Kubernetes riconosce come sensibile.

Un secret è accessibile quando lo richiedono i pod del cluster, ma è protetto da tutte le altre visualizzazioni che potrebbero aumentare i rischi per la sicurezza. In pratica, un secret non mette un limite agli utenti che possono accedere alle informazioni. Quello che fa, invece, è limitarsi a fornire alle applicazioni solo i dati di cui hanno bisogno per funzionare, senza concedere loro l'accesso illimitato a tali dati.

Kubectl

Un kubectl è un'interfaccia a riga di comando per gestire le operazioni nei cluster. Questa CLI comunica con l'API di Kubernetes. Esiste una sintassi standardizzata per l'uso di kubectl: kubectl [command] [TYPE] [NAME] [flags].

Minikube

Alcune persone hanno bisogno di accedere a Kubernetes da un dispositivo più piccolo e Minikube lo rende possibile. Minikube è uno strumento open source che consente di eseguire Kubernetes su un computer portatile o su un altro computer locale prendendo le dimensioni e le complessità di Kubernetes e riducendole a un cluster a nodo singolo. Minikube consente agli sviluppatori, al personale IT ed executive di disporre di potenti funzionalità Kubernetes su un pratico dispositivo. Affinché Minikube funzioni al meglio è necessario installare anche kubectl.

Come funziona Kubernetes?

Kubernetes è stato progettato principalmente per creare, gestire e distribuire applicazioni. Per fare tutto questo, come funziona Kubernetes? Gli sviluppatori configurano Kubernetes, definiscono un cluster e creano i nodi. Dopodiché, Kubernetes creerà e rimuoverà i pod necessari per mantenere correttamente in esecuzione le applicazioni affinché gli utenti possano usarle. Per accedere a Kubernetes e gestirlo, gli sviluppatori possono servirsi di un computer locale e utilizzare Minikube o ingress e accedere dall'esterno; altrimenti, possono usare la dashboard per accedere ad altri strumenti.

Che cosa consente di fare Kubernetes alle aziende? Questi sono alcuni degli obiettivi principali che possono essere raggiunti con Kubernetes:

  • Orchestrare i container tra più host
  • Scalare le applicazioni
  • Controllare lo stato delle applicazioni
  • Controllare e automatizzare la distribuzione
  • Gestire e aggiungere spazio di archiviazione per eseguire processi
  • Massimizzare lo spazio hardware per eseguire le applicazioni aziendali
  • Distribuire le applicazioni ovunque
  • Aumentare la velocità di sviluppo
Confronti con Kubernetes

Altri progetti vengono spesso menzionati insieme a Kubernetes. Ognuno di essi è un progetto distinto, in grado di far eseguire diverse attività agli sviluppatori. Questi altri progetti sono spesso confusi con Kubernetes o sono considerati una scelta alternativa. In realtà, sono compatibili con Kubernetes.

Confronto tra Kubernetes e Docker

Docker ha fatto la sua comparsa prima di Kubernetes e ha persino contribuito alla sua creazione. Si tratta di uno strumento che consente agli sviluppatori di separare in "scatole" tutto ciò che serve per eseguire un'applicazione per poterle memorizzare e aprire quando necessario. È un modo per creare container. Tuttavia, una volta che le applicazioni sono state archiviate in "scatole", è necessario che vi sia un modo per gestire questi contenitori e far sì che vengano memorizzati e aperti quelli corretti.

Ecco perché è stato creato Kubernetes, per essere uno strumento in grado di organizzare e gestire le applicazioni dei container, come quelle create da Docker. Kubernetes è stato progettato per portare i container nei punti giusti, ecco perché questo sistema prende il nome dalla parola greca usata per "capitano".

Kubernetes e Docker non sono concorrenti. Il primo può essere utilizzato con o senza Docker perché entrambi forniscono ruoli distinti per la gestione delle applicazioni basate su container. Tuttavia, possono anche essere utilizzati insieme per creare un impatto potente. Kubernetes può utilizzare Docker per distribuire e gestire applicazioni basate su container.

Confronto tra Kubernetes e Mesos

Un altro progetto che viene spesso menzionato insieme a Kubernetes è Mesos. Si tratta di un progetto Apache creato come risposta a Google Borg. Mesos non solo fornisce servizi di orchestrazione di container, ma è stato anche studiato per essere un programma in grado di eseguire componenti containerizzati e non. Grazie alla sua ampia portata, sono molti i programmi che possono essere eseguiti all'interno di Mesos e tra questi c'è Kubernetes

Prezzi di DevOps ServiceNow Vedi i prezzi di DevOps ServiceNow, che ti consentirà di evitare i rischi associati alla velocità e di ridurre al minimo gli attriti tra le operazioni IT e lo sviluppo. Scopri i prezzi
ServiceNow e Kubernetes

L'adozione di Kubernetes fa generalmente parte di un programma più ampio per trasformare l'ambiente applicativo di un'azienda per il cloud o per farlo diventare più "nativo per il cloud" offrendo nuove applicazioni e servizi. ServiceNow ha diversi legami che possono aiutare in questa trasformazione ed essere utili alla tua azienda per trovare l'approccio Kubernetes più adatto, come Change Management, Osservabilità e Cloud Management.

Change management

L'adozione di Kubernetes va di pari passo con le moderne pratiche di sviluppo, come DevOps. Le aziende regolamentate di grandi dimensioni devono comunque concentrarsi sulla governance, in quanto fa parte del processo di release degli aggiornamenti nel cloud. Tuttavia, ci sono ulteriori complicazioni: tanti componenti diversi e la velocità e la natura transitoria della distribuzione del codice in un'architettura basata su container.

Mettiamo in relazione il lavoro e i servizi gestiti in ServiceNow con il processo di sviluppo per consentire la gestione automatizzata dei cambiamenti, KPI end-to-end, informazioni approfondite sui parametri di flusso e attività di auditing. Disponiamo anche di un componente specifico di ITSM Pro, chiamato DevOps Config, che aggiunge controlli e informazioni specifiche sulle svariate attività di configurazione che si verificano nell'ambito della fornitura di un servizio nel cloud che può offrire vantaggi alla tua azienda con l'implementazione di Kubernetes.

Osservabilità

Kubernetes lavora per migliorare il funzionamento di un'applicazione e il modo in cui un'azienda gestisce le applicazioni basate su container. Tuttavia, esistono sfide che le imprese devono affrontare per essere in grado di ottenere l'osservabilità necessaria per operare con successo. Osservabilità del cloud ServiceNow offre l'osservabilità e le informazioni sui processi e le configurazioni che possono facilitare l'implementazione di Kubernetes per la tua azienda.

Cloud Management

Man mano che la tua azienda utilizzerà sempre più il cloud, è importante che tu disponga di Cloud Management. Puoi ottenerlo con IT Operations Management di ServiceNow, che può aiutarti anche a implementare Kubernetes.

Scopri di più su ITOM e su come può aiutare la tua azienda a implementare e utilizzare Kubernetes per gestire le tue applicazioni.

Funzionalità che crescono con la tua azienda Espandi il successo di DevOps a tutta l'azienda. Ottieni una velocità senza rischi e riduci al minimo gli attriti tra operazioni e sviluppo dell'IT. Scopri DevOps Contattaci
Riferimenti Articoli Cos'è ServiceNow? Che cos'è DevOps? Report di analisi Estensione di Now Platform con DevOps IDC Agility Assessment: Compare your Enterprise (Valutazione sull'agilità IDC: confronta la tua azienda) Business Value of ServiceNow Service Operations (Valore di business delle operazioni di servizio di ServiceNow) Schede dati ITSM Pro: DevOps Change Velocity Gestione cambiamenti Gestione richieste eBook Promuovi l'innovazione e migliora la velocità dell'IT Spiegazione di ITIL 4 in 10 minuti Go-live rapido con ITSM White paper Introduction to Enterprise DevOps Platform (Introduzione alla piattaforma Enterprise DevOps) Connettere DevOps, osservabilità e AIOps Architettura Advanced High Availability