GNU/Linux >> Linux Esercitazione >  >> Linux

Inizia a imparare Kubernetes dalla tua macchina locale

Amici e conoscenti spesso mi contattano per domande su dove e come possono iniziare a imparare Kubernetes. Queste richieste provengono da un miscuglio di operatori operativi e sviluppatori che stanno ancora lavorando con sistemi legacy come VM e applicazioni monolitiche. Termini come CI/CD e DevOps non sono altro che parole d'ordine per loro, poiché sono ancora impegnati ad innaffiare e alimentare i sistemi legacy che mantengono come parte delle loro esigenze lavorative quotidiane.

Stanno mostrando interesse ora che hanno notato che sempre più carichi di lavoro vengono migrati dalle macchine virtuali ai container e le applicazioni monolitiche sono state riprogettate in microservizi per gestire facilmente l'innovazione e rispondere alle rapide richieste del mercato. È giunto il momento per loro di apprendere gli strumenti, le piattaforme e le soluzioni che causano questa migrazione di massa a Kubernetes.

Questo mi ha incoraggiato a scrivere questo articolo, per aiutare i miei amici e altri che volevano iniziare a imparare Kubernetes a spingere il proprio viaggio verso i container e il mondo delle applicazioni cloud-native.

Disclaimer:l'apprendimento di Kubernetes sarà un viaggio accidentato. Imparerai alcune nuove terminologie e nuovi modi di gestire e distribuire la tua applicazione in modo nativo per il cloud.

Quindi cos'è Kubernetes comunque?

La prima cosa da fare quando si impara Kubernetes è trovare una chiara spiegazione di cosa sia. Ci sono molti libri e riferimenti di YouTube che puoi utilizzare per ottenere le spiegazioni più basilari:ho trovato questo video di YouTube, Guida illustrata per bambini a Kubernetes, che pensavo fosse la migliore spiegazione di cosa sia Kubernetes. Dai un'occhiata prima di continuare a leggere.

I componenti Kubernetes

Kubernetes non è una singola macchina ma piuttosto una piattaforma. Quando distribuisci Kubernetes, otterrai un cluster. Un cluster è costituito da un insieme di macchine master e worker, chiamate nodi, che eseguono applicazioni containerizzate. Ogni cluster ha almeno un nodo di lavoro. Questi sono i componenti Kubernetes.

Di seguito è riportato l'aspetto di Kubernetes con tutti i componenti legati insieme.

Come iniziare?

Quando impari Kubernetes, devi distribuire un cluster. Ma questa sarà una sfida per le persone che non sono in grado di mettere le mani sull'hardware extra e trovare il tempo per configurarlo insieme alle risorse di rete e di elaborazione richieste. Questo requisito spesso fa deragliare un viaggio Kubernetes prima che inizi. Allora qual è il modo migliore per iniziare?

Fortunatamente, esistono più progetti open source che ti consentono di distribuire un cluster Kubernetes dal tuo laptop. Diamo un'occhiata a questi progetti prima di esprimere la mia opinione su quale sia il modo migliore per imparare Kubernetes e distribuire la tua prima applicazione nativa per il cloud.

Progetti locali di Kubernetes in soccorso

Questi sono i progetti locali che puoi utilizzare per esplorare Kubernetes. Tieni presente che questi progetti non sono pronti per l'azienda e dovrebbero essere utilizzati solo per scopi di apprendimento.

Nota:prima di iniziare l'esplorazione di Kubernetes, assicurati di disporre di risorse adeguate sul tuo laptop.

  • Linux:Red Hat Enterprise Linux, Fedora, CentOS
  • 16 GiB o più di RAM per macchina (una quantità inferiore lascia poco spazio alle tue app).
  • 2 CPU sulla macchina che utilizzi come nodo del piano di controllo.
  • Connettività di rete completa tra tutte le macchine nel cluster.

minikube

Minikube è tra le più facili da installare tra queste opzioni. Ti fornirà un cluster a nodo singolo in esecuzione su VirtualBox o KVM.

Requisiti delle risorse:

  • CPU:2
  • Memoria:2 GB
  • Spazio su disco:20 GB

Una volta che hai un cluster in esecuzione (a nodo singolo), puoi iniziare a familiarizzare distribuendo una semplice applicazione utilizzando la riga di comando kubectl per interagire con il tuo cluster Kubernetes locale. L'unico problema che ho notato durante l'utilizzo di minikube è la limitazione dell'aggiunta di un nodo di lavoro per completare l'esperienza del cluster.

gentile 

Kind richiede di eseguire Kubernetes in un contenitore Docker. Le gentili istruzioni per l'installazione possono essere trovate qui.

Sebbene kind sia facile da installare, il problema che vedo nell'utilizzo di questo progetto è la complessa configurazione di rete per accedere al cluster. Per qualcuno che sta appena iniziando a imparare Kubernetes, potrebbe essere proibitivo.

Requisiti delle risorse:

  • CPU:2
  • Memoria:8 GB
  • Spazio di archiviazione:20 GB

kubeadm

Lo spin-up del cluster tramite kubeadm può essere utilizzato per distribuire applicazioni native del cloud. Per cominciare, avrai un singolo nodo master e un nodo di lavoro.

L'installazione di kubeadm sul tuo laptop è l'esperienza più vicina che puoi ottenere per la distribuzione del cluster Kubernetes di livello di produzione. Per questo motivo, kubeadm è probabilmente anche il modo più difficile per imparare Kubernetes.

Requisiti delle risorse:

  • CPU:2
  • Memoria:8 GB (avrai bisogno di memoria aggiuntiva per la distribuzione dell'applicazione).
  • Spazio di archiviazione:20 GB

Miniturno

Minishift è un progetto basato su OKD, l'upstream dietro OpenShift. Quando installi Minishift, ti fornirà un cluster OpenShift a nodo singolo in esecuzione all'interno di VirtualBox o KVM.

Requisiti delle risorse:

  • CPU:2
  • Memoria:4 GB
  • Archiviazione:20 GB

Minishift è facile da installare e offre maggiore flessibilità rispetto ad altri progetti perché puoi installarlo in Linux, Windows e macOS.

Poiché Minishift è basato su OKD, imparerai non solo le basi di Kubernetes, ma anche Openshift e alcuni dei componenti disponibili in Minishift.

Lo svantaggio di Minishift è che supporta solo OKD 3.11, quindi non sarai in grado di ottenere l'esperienza completa della nuova versione di OKD 4. Minishift è sostituito da CodeReady Containers per ottenere l'esperienza completa di OKD 4, come descritto qui.

Contenitori CodeReady (CRC) 

CRC si basa su OKD 4.1, che fornisce una configurazione a nodo singolo sul laptop. Funziona quasi esattamente come Minishift e minikube. Anche l'installazione è facile; la documentazione può essere trovata qui.

Requisiti delle risorse:

  • CPU:4
  • Memoria:8 GB
  • Archiviazione:30 GB

[ Ottieni questo ebook gratuito:Gestione dei cluster Kubernetes per i manichini. ]

Conclusioni

Esistono molti modi per implementare Kubernetes in locale per iniziare il tuo viaggio verso la padronanza delle competenze importanti che sono al centro dell'attuale rivoluzione IT.

Se hai appena iniziato, ti suggerisco di imparare Kubernetes usando minikube perché ho scoperto che questo è il più semplice per i principianti. Dopo aver acquisito familiarità con il concetto Kubernetes, il passaggio successivo è passare a CRC. Ciò aumenterà le tue abilità Kubernetes al livello successivo in modo da poter apprendere i componenti pronti per l'azienda che la maggior parte degli adattatori avanzati sta già utilizzando.

Come accennato in precedenza, imparare Kubernetes è come imparare di nuovo i sistemi operativi Linux. Non scoraggiarti se incontri un posto di blocco. Avere una solida conoscenza di questa tecnologia è come investire nel tuo futuro e, in un certo senso, ti aiuta a essere a prova di futuro.


Linux
  1. 9 cose da fare nei tuoi primi 10 minuti su un server Linux

  2. Come distribuire il tuo primo pod su un cluster Kubernetes

  3. Come copiare un file da un server remoto su una macchina locale?

  4. Connessione a una VPN SonicWall da una macchina Linux

  5. Prendere il dump di MySQL da un'altra macchina

Invia le tue scansioni a una macchina Linux sulla tua rete

Come installare il cluster Kubernetes (k8s) su RHEL 8

Componenti principali di un cluster Kubernetes

Creazione della tua prima distribuzione su un cluster Kubernetes

Cluster Kubernetes che utilizza K3S con Multipass di Canonical

Utilizzo di Grafana &Prometheus Kubernetes Cluster Monitoring