Tutorial Kubernetes per principianti
โก Riepilogo intelligente
Kubernetes รจ un sistema di gestione dei container open-source sviluppato da Google che automatizza la distribuzione, il dimensionamento e la gestione di applicazioni containerizzate su cluster di server fisici, virtuali e cloud, offrendo funzionalitร di auto-riparazione, implementazioni automatizzate, bilanciamento del carico e ambienti coerenti per una distribuzione affidabile delle applicazioni.

Prima di iniziare questo tutorial su Kubernetes, impariamo:
Che cos'รจ Kubernetes?
kubernetes รจ un sistema di gestione dei container sviluppato su Google Piattaforma. Kubernetes aiuta a gestire applicazioni containerizzate in vari tipi di ambienti fisici, virtuali e cloud. Google Kubernetes รจ uno strumento di containerizzazione estremamente flessibile, in grado di fornire in modo coerente applicazioni complesse in esecuzione su cluster composti da centinaia o migliaia di server individuali.
Perchรฉ hai bisogno di contenitori?
L'utente Internet di oggi non accetta mai i tempi di inattivitร . Pertanto gli sviluppatori devono trovare un metodo per eseguire la manutenzione e l'aggiornamento senza interrompere i propri servizi.
Pertanto, un contenitore รจ un ambiente isolato. Include tutto il necessario per l'esecuzione di un'applicazione. Semplifica la modifica e la distribuzione delle app per gli sviluppatori. Inoltre, la containerizzazione รจ diventata un metodo preferenziale per il packaging, la distribuzione e l'aggiornamento delle app web.
Quali attivitร vengono eseguite da Kubernetes?
Kubernetes รจ il kernel Linux utilizzato per i sistemi distribuiti. Ti aiuta ad essere assolutotracfornisce un'interfaccia coerente per le applicazioni che utilizzano il pool di risorse condivise, a partire dall'hardware sottostante dei nodi (server).
Perchรฉ utilizzare Kubernetes?
Kubernetes ti aiuta a controllare l'allocazione delle risorse e la gestione del traffico per le applicazioni cloud e i microservizi. Aiuta anche a semplificare vari aspetti delle infrastrutture orientate ai servizi. Kubernetes ti consente di garantire dove e quando verranno eseguite le applicazioni containerizzate e ti aiuta a trovare le risorse e gli strumenti con cui desideri lavorare.
Caratteristiche di Kubernetes
Ecco le funzionalitร essenziali di Kubernetes:
- Pianificazione automatizzata
- Capacitร di autoguarigione
- Implementazioni e rollback automatizzati
- Scalabilitร orizzontale e bilanciamento del carico
- Offre coerenza ambientale per lo sviluppo, il test e la produzione
- L'infrastruttura รจ liberamente accoppiata e ciascun componente puรฒ agire come un'unitร separata
- Fornisce una maggiore densitร di utilizzo delle risorse
- Offre funzionalitร pronte per l'azienda
- Gestione incentrata sulle applicazioni
- Infrastruttura scalabile automaticamente
- Puoi creare un'infrastruttura prevedibile
Nozioni di base di Kubernetes
Ora in questo tutorial di Kubernetes impareremo alcune importanti nozioni di base di Kubernetes:
Cluster
ร una raccolta di host (server) che ti aiuta ad aggregare le risorse disponibili. Ciรฒ include ram, CPU, ram, disco e i relativi dispositivi in โโun pool utilizzabile.
Master
Il master รจ un insieme di componenti che compongono il pannello di controllo di Kubernetes. Questi componenti vengono utilizzati per tutte le decisioni del cluster. Include sia la pianificazione che la risposta agli eventi del cluster.
Nodo
ร un singolo host in grado di funzionare su un supporto fisico o macchina virtuale. Un nodo dovrebbe eseguire sia kube-proxy, minikube e kubelet che sono considerati parte del cluster.
Spazio dei nomi
Si tratta di un cluster o ambiente logico. ร un metodo ampiamente utilizzato che viene impiegato per scoping accesso o divisione di un cluster.
kubernetes Architectura
Di seguito รจ riportato uno schema dettagliato dell'architettura di Kubernetes:

Nodo principale
Il nodo master รจ il primo e piรน vitale componente responsabile della gestione del cluster Kubernetes. ร il punto di ingresso per tutti i tipi di attivitร amministrative. Potrebbe esserci piรน di un nodo master nel cluster per verificare la tolleranza agli errori.
Il nodo master ha vari componenti come API Server, Controller Manager, Scheduler ed ETCD. Vediamoli tutti.
Server API: Il server API funge da punto di ingresso per tutti i comandi REST utilizzati per il controllo del cluster.
Scheduler
Lo scheduler pianifica le attivitร sul nodo slave. Memorizza le informazioni sull'utilizzo delle risorse per ogni nodo slave. ร responsabile della distribuzione del carico di lavoro.
Ti aiuta anche a tracComprende come viene utilizzato il carico di lavoro sui nodi del cluster. Consente di distribuire il carico di lavoro sulle risorse disponibili e in grado di accettarlo.
ecc
I componenti etcd memorizzano i dettagli della configurazione e i valori Wright. Comunica con la maggior parte dei componenti per ricevere comandi e lavorare. Gestisce inoltre le regole di rete e l'attivitร di port forwarding.
Nodi lavoratore/slave
I nodi di lavoro sono un altro componente essenziale che contiene tutti i servizi necessari per gestire il networking tra i contenitori, comunicare con il nodo master, che consente di assegnare risorse ai contenitori pianificati.
- Kubelet: ottiene la configurazione di un Pod dal server API e garantisce che i contenitori descritti siano attivi e funzionanti.
- Contenitore Docker: docker il contenitore viene eseguito su ciascuno dei nodi di lavoro, che esegue i pod configurati
- Kube-proxy: Kube-proxy funge da bilanciatore del carico e proxy di rete per eseguire il servizio su un singolo nodo di lavoro
- Pod: un pod รจ una combinazione di contenitori singoli o multipli che vengono eseguiti logicamente insieme sui nodi
Altre terminologie chiave
Controller di replica
Un controller di replica รจ un oggetto che definisce un modello di pod. Controlla inoltre i parametri per ridimensionare orizzontalmente le repliche identiche del pod aumentando o diminuendo il numero di copie in esecuzione.
Set di replica
I set di replica rappresentano un'interazione sulla progettazione del controller di replica con flessibilitร nel modo in cui il controller riconosce i pod che deve gestire. Sostituisce i controller di replica grazie alla loro maggiore capacitร di selezione delle repliche.
Distribuzioni
La distribuzione รจ un carico di lavoro comune che puรฒ essere creato e gestito direttamente. La distribuzione utilizza il set di replica come elemento costitutivo che aggiunge la funzionalitร di gestione del ciclo di vita.
Insiemi con stato
ร un controllo pod specializzato che offre ordine e unicitร . Viene utilizzato principalmente per avere un controllo granulare, di cui hai particolare bisogno per quanto riguarda l'ordine di distribuzione, la rete stabile e i dati persistenti.
Set di demoni
I set di daemon sono un'altra forma specializzata di controller pod che esegue una copia di un pod su ogni nodo del cluster. Questo tipo di controller pod รจ un metodo efficace per la distribuzione dei pod che consente di eseguire la manutenzione e offre servizi per i nodi stessi.
Kubernetes contro Docker Swarm
Ecco le differenze importanti tra Kubernetes contro Docker.
| Parametro | Sciame portuale | kubernetes |
|---|---|---|
| scalata | Nessuna scalabilitร automatica | Ridimensionamento automatico |
| Bilancio del carico | Esegue il bilanciamento automatico del carico | Configura manualmente le impostazioni di bilanciamento del carico |
| Condivisione del volume di archiviazione | Condivide i volumi di archiviazione con qualsiasi altro contenitore | Condivide i volumi di archiviazione tra piรน contenitori all'interno dello stesso Pod |
| Utilizzo dello strumento di accesso e monitoraggio | Usa 3rd strumento per feste come ELK | Fornire uno strumento integrato per la registrazione e il monitoraggio. |
| SERVIZIO DI | Facile e veloce | Complicato e dispendioso in termini di tempo |
| GUI | GUI non disponibile | La GUI รจ disponibile |
| Scalabilitร | Lo scale up รจ piรน veloce di K8S, ma la forza del cluster non รจ altrettanto solida | L'incremento รจ lento rispetto a Swarm, ma garantisce uno stato del cluster piรน forte. Il bilanciamento del carico richiede la configurazione manuale del servizio |
| Bilancio del carico | Fornisce una tecnica di bilanciamento del carico incorporata | Pianificazione dei processi per mantenere i servizi durante l'aggiornamento |
| Aggiornamenti e rollback Registrazione e monitoraggio dei volumi di dati | Aggiornamenti progressivi e monitoraggio dello stato del servizio. | Condiviso solo con contenitori nello stesso pod Strumenti di registrazione e monitoraggio integrati. |
Vantaggi di Kubernetes
- Facile organizzazione del servizio con le cialde
- ร sviluppato da Googleche apportano anni di preziosa esperienza nel settore
- La piรน grande comunitร tra gli strumenti di orchestrazione dei contenitori
- Offre una varietร di opzioni di storage, tra cui on-premise, SAN e cloud pubblici
- Aderisce ai principi dell'infrastruttura immutabile
- Kubernetes puรฒ eseguire bare metal on-premise, OpenStack e cloud pubblici Google, Azure, AWS, ecc.
- Ti aiuta a evitare problemi di dipendenza dal fornitore poichรฉ puรฒ utilizzare qualsiasi API o servizio specifico del fornitore, tranne dove Kubernetes fornisce un'eccezionetraczione, ad esempio, bilanciatore di carico e archiviazione.
- La containerizzazione tramite Kubernetes consente al software in pacchetto di raggiungere questi obiettivi. Abiliterร le applicazioni che devono essere rilasciate e aggiornate senza tempi di inattivitร .
- Kubernetes ti consente di garantire che le applicazioni containerizzate vengano eseguite dove e quando vuoi e ti aiuta a trovare risorse e strumenti con cui desideri lavorare.
Svantaggi di Kubernetes
- Il dashboard Kubenetes non รจ cosรฌ utile come dovrebbe essere
- Kubernetes รจ un po' complicato e non necessario negli ambienti in cui tutto lo sviluppo viene eseguito localmente.
- La sicurezza non รจ molto efficace.
