Cosa fa Kubernetes e quando dovresti usarlo?

0
39

Kubernetes è uno strumento che gestisce tutte le parti mobili dietro l'esecuzione di app in contenitori come Docker. Questo rende la scalabilità della tua applicazione molto semplice, perché la tua infrastruttura server è separata dal codice in esecuzione su di essa.

Cosa fa Kubernetes?

< p>Kubernetes è spesso menzionato insieme a Docker, ma ognuno svolge compiti diversi. Docker raggruppa le applicazioni e tutte le loro dipendenze in singoli file, chiamati immagini contenitore, che possono essere eseguiti su un server senza alcuna configurazione manuale. Il motore Docker è simile a una macchina virtuale, ma è molto più snello e più performante, progettato semplicemente per eseguire una singola applicazione in un ambiente isolato.

Kubernetes è un motore di orchestrazione e fornisce una piattaforma su cui eseguire le immagini Docker. Supporta l'utilizzo di immagini Docker, poiché sono di gran lunga il formato contenitore più popolare. I contenitori consentono di distribuire il codice molto facilmente senza preoccuparsi se il server è configurato per eseguire correttamente il codice.

Un server Kubernetes principale gestirà un cluster di nodi di lavoro. Questi nodi di lavoro possono eseguire qualsiasi numero di container, che sono impacchettati in Kubernetes Pods. Il server master gestisce la distribuzione dei pod sui nodi di lavoro e cerca di mantenere una configurazione impostata. Se la tua applicazione incontra più traffico, Kubernetes può fornire più risorse e, se uno dei tuoi server riscontra problemi, Kubernetes può spostare i Pod su quel server sul resto della rete mentre risolvi il problema.

Nodi di lavoro Kubernetes, con più pod in esecuzione su loro.

Ma mentre Kubernetes fornisce molte funzionalità di un sistema Platform as a Service (PaaS), in realtà non fornisce alcun hardware. Kubernetes è puro software ed è open source. I sistemi PaaS come AWS EKS si basano su Kubernetes e in molti casi gli offrono la possibilità di fornire più risorse per se stesso (ridimensionamento automatico).

Perché usare Kubernetes?

Kubernetes porta con sé tutti i vantaggi di Docker e della containerizzazione in generale. I contenitori aiutano a mantenere il codice organizzato e gestito, con tutte le dipendenze in un unico posto. Il tuo codice verrà eseguito in un ambiente di sviluppo e test come in produzione, senza sorprese.

Pubblicità

Le immagini Docker in esecuzione sulla piattaforma Kubernetes sono separate dalla piattaforma stessa e non hanno idea che vengano eseguite nei pod Kubernetes. Questo disaccoppiamento delle applicazioni dall'infrastruttura rende Kubernetes estremamente potente in sostituzione del ciclo di distribuzione esistente. Non dovrai preoccuparti se il tuo codice verrà eseguito correttamente sui tuoi server.

Un ciclo di sviluppo rapido mette più pressione sul tuo team operativo affinché si preoccupi dell'effettiva esecuzione del codice. Se hai problemi a gestire l'installazione e la configurazione della tua app sui tuoi server ogni volta che il tuo codice deve essere aggiornato, Kubernetes può renderlo molto più veloce.

E se proprio non ti piace configurare e gestire i server, un servizio Kubernetes gestito come AWS EKS può alleviare questo problema e rendere la tua app “serverless.”

Come iniziare?

Kubernetes è indipendente dal servizio, quindi puoi configurarlo tu stesso sui tuoi server se lo desideri. Tuttavia, Kubernetes è piuttosto complicato, quindi ci sono molte soluzioni chiavi in ​​mano dei principali fornitori di cloud che utilizzano le loro risorse per alimentare i tuoi nodi di lavoro. Saranno tutti conformi a Kubernetes, quindi sarai in grado di passare da uno all'altro con problemi minimi.

Se desideri configurarlo da solo, puoi farlo con kubeadm cassetta degli attrezzi. Avrai bisogno di una macchina master su cui eseguire kubeadm, che controllerà una o più macchine worker che eseguono kubelet. La macchina master gestisce la distribuzione del contenitore alle macchine worker. Puoi leggere la loro guida introduttiva nei documenti Kubernetes per ulteriori informazioni, ma preparati per una notte di configurazione.

Pubblicità

AWS EKS è la soluzione di Amazon, che può eseguire app Kubernetes in più zone di disponibilità AWS. EKS non richiede affatto molta configurazione; tutto ciò che devi fare è fornire nuovi nodi. Paghi $ 0,20 all'ora ($ 150 al mese) per ogni cluster in esecuzione, oltre a pagare le risorse EC2 ed EBS consumate dai tuoi nodi di lavoro.

Se non hai bisogno di un cluster Kubernetes completo, ma desideri comunque eseguire app containerizzate, puoi utilizzare Elastic di AWS Servizio container (ECS). ECS esegue container Docker e dispone di un proprio sistema di scalabilità.

Microsoft Azure Kubernetes Service (AKS) è un servizio Kubernetes gestito che si integra bene con una pipeline di Azure, semplificando il passaggio dal codice nel controllo del codice sorgente per i container distribuiti nel tuo cluster Kubernetes.

Google è il creatore originale di Kubernetes, quindi naturalmente offre un servizio Kubernetes gestito tramite Google Cloud Platform.