Introduzione a Kubernetes per principianti

Ho sentito molto parlare di Kubernetes ma non sono sicuro di cosa siano?


Che cos’è Kubernetes?

Kubernetes è uno strumento open source che si occupa dell’orchestrazione dei container. Automatizza la distribuzione dei container, il ridimensionamento e il ridimensionamento continui, il bilanciamento del carico dei container, ecc.

Kubernetes GeekFlare

Google si è inizialmente sviluppato kubernetes sul linguaggio di programmazione Go.

Attualmente è leader di mercato nell’orchestrazione di container. Kubernetes è una piattaforma ideale per l’hosting di applicazioni di microservizi che si adattano in modo dinamico. Quando si lavora in un ambiente di produzione, Kubernetes è la piattaforma più preferita e più sicura per l’orchestrazione dei container.

Perché in un ambiente di produzione ci si aspetta zero tempi di inattività, il cluster dovrebbe essere sempre attivo e funzionante.

Con Google Cloud Platform (GCP), puoi avviare Kubernetes in pochi clic. È supportato da altri provider cloud, anche come AWS e Azure. Inoltre, sono disponibili più piattaforme Kubernetes gestite.

Perché Kubernetes?

In precedenza, una lotta tra sviluppatori e tester era una cosa comune.

Gli ambienti erano diversi per loro; ciò che ha funzionato sul sistema dello sviluppatore non è stato eseguito sul sistema dei tester.

Ora che la maggior parte delle organizzazioni utilizza contenitori, i problemi che si presentano a causa delle differenze nell’ambiente non si verificano più.

Ma organizzare ed eseguire più container non è un compito facile. Quando si lavora su applicazioni dinamiche, il ridimensionamento su / giù, il numero di contenitori è una cosa normale. Svolgere tali compiti manualmente può essere complesso e rischioso. Pertanto, è necessario uno strumento di orchestrazione del contenitore ed è per questo che è necessario Kubernetes.

Caratteristiche di Kubernetes

Ce ne sono molti, ma i seguenti sono alcuni dei migliori.

# Imballaggio automatico del cestino

Kubernetes confeziona la tua applicazione e posiziona automaticamente i contenitori in base ai loro requisiti e alle risorse disponibili

# Service Discovery e bilanciamento del carico

Kubernetes assegna automaticamente ai contenitori i loro indirizzi IP e un nome DNS ai contenitori che eseguono operazioni logiche. La funzione di bilanciamento del carico è presente anche tra il set di contenitori.

# Orchestrazione di archiviazione

Kubernetes monta automaticamente il sistema di archiviazione di tua scelta. Può essere un archivio locale o un provider di cloud pubblico come AWS.

# Autoguarigione

Ogni volta che Kubernetes si rende conto che uno dei tuoi contenitori ha fallito, riavvia il contenitore da solo e crea un nuovo contenitore al posto di quello danneggiato. In caso di errore del nodo, i contenitori in esecuzione su quel nodo verranno avviati su un altro nodo in esecuzione nel cluster.

# Ridimensionamento orizzontale

È possibile ridimensionare rapidamente le applicazioni con un semplice comando. Il semplice comando può essere eseguito sulla CLI o tramite la dashboard di Kubernetes. Il ridimensionamento automatico è anche possibile, in base all’utilizzo della CPU, i contenitori verranno automaticamente ridimensionati o ridimensionati.

# Rollback e Rollout automatici

Ogni volta che si verifica un aggiornamento dell’applicazione, Kubernetes implementa progressivamente queste modifiche e gli aggiornamenti dell’applicazione o delle sue configurazioni. Non tutte le istanze vengono aggiornate contemporaneamente, garantendo così un’elevata disponibilità. Se qualcosa va storto, Kubernetes eseguirà immediatamente il rollback di tale modifica.

Terminologie di Kubernetes

Prima di sporcarti le mani, devi conoscere alcune terminologie utilizzate regolarmente in Kubernetes.

# Pod

Rappresenta uno o più contenitori in esecuzione in un cluster.

# Servizio

Un modo astratto per accedere a pod / applicazione.

# Namespace

Viene utilizzato per rimuovere la collisione dei nomi all’interno di un cluster. Supporta più cluster virtuali sullo stesso cluster fisico.

# Nodo

Macchina operaio Kubernetes.

# Grappolo

Composto da un gruppo di nodi che eseguono applicazioni containerizzate su Kubernetes.

# Annotazione

Un’etichetta per l’archiviazione dei dati richiesti dalle risorse.

# Volume

È la directory di dati che contiene l’accesso al pod.

# ReplicaSet

Diverse repliche di pod in esecuzione.

# Etichetta

Dare un nome agli oggetti Kubernetes in modo che possa essere identificato in tutto il sistema.

# Kubelet

È un agente che viene eseguito su ciascun nodo e verifica se i contenitori sono in esecuzione nei pod.

# Kubectl

Utilità della riga di comando per interagire con il server API Kubernetes.

# Kube-proxy

Proxy di rete che contiene tutte le regole di rete su ciascun nodo nel cluster.

Kubernetes e Docker

Ora potresti pensare a come Kubernetes è diverso da Docker. La frase Kubernetes vs. Docker può essere fuorviante.

Docker è una piattaforma che confeziona SO, librerie e applicazioni all’interno di un container. Lascia che ti dica che Docker fa la stessa cosa che dovrebbe fare in Kubernetes. Ma quando lavori solo con Docker, tutto è manuale. È necessario avviare e arrestare i contenitori manualmente. Ma con Kubernetes, tutto viene automatizzato.

Kubernetes può pianificare pod con contenitori, Kubelet quindi dice a Docker di avviare o arrestare i contenitori. Kubelet in Kubernetes è responsabile del monitoraggio di tali contenitori e della raccolta delle loro informazioni sul nodo principale. Quindi, la differenza di base è invece che i ragazzi amministratori che dicono a Docker cosa fare, in Kubernetes, è tutto automatizzato.

Esiste un altro strumento utilizzato per l’orchestrazione dei container è Docker Swarm. Quindi, qual è la differenza tra loro?

Kubernetes vs. Docker Swarm

kubernetesDocker Swarm
L’installazione è complessaL’installazione è semplice
Più grande comunità open sourceComunità più piccola rispetto a Kubernetes
Può orchestrare facilmente centinaia di contenitoriBuono per orchestrare 10-20 contenitori
Kubernetes Dashboard fornisce la GUINessuna interfaccia grafica
Supporta il ridimensionamento automaticoNon supporta il ridimensionamento automatico
Supporta aggiornamenti continui con rollback automaticoSupporta gli aggiornamenti a rotazione ma non il rollback automatico
Registrazione e monitoraggio disponibili integratiNecessita di terze parti come ELK per la registrazione e il monitoraggio
Può condividere il volume con i contenitori nello stesso podPuò condividere il volume con qualsiasi contenitore nel cluster

Conclusione

Spero ora che tu abbia una conoscenza di base di cos’è Kubernetes e di come sia di aiuto. Se ti piacciono i DevOps o stai pensando di entrare, allora suggerirei di prenderlo fantastico corso Udemy per imparare Kubernetes.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map