Ricerca nel sito web

Impara i comandi essenziali di Kubernetes con un nuovo cheat sheet


Inizia a esplorare kubectl, contenitori, pod e altro ancora, quindi scarica il nostro cheat sheet gratuito in modo da avere sempre i comandi chiave a portata di mano.

Il cloud funziona in gran parte su Kubernetes, Kubernetes funziona in gran parte su Linux e Linux funziona meglio quando ha ai controlli un amministratore di sistema esperto. Che tu ti consideri un architetto del cloud o semplicemente un umile amministratore di sistema, Internet moderno ha bisogno di utenti che capiscano come creare applicazioni e servizi all'interno di contenitori, scalarli su richiesta e monitorarli e gestirli con giudizio.

Uno dei primi passi nel coraggioso mondo dei container è imparare Kubernetes e il suo comando per eccellenza: kubectl.

Installazione di kubectl

Il comando kubectl ti consente di eseguire comandi sui cluster Kubernetes. Utilizzi kubectl per distribuire applicazioni, visualizzare log, ispezionare e gestire le risorse del cluster e risolvere i problemi quando si presentano. Il classico "problema" con kubectl (e Kubernetes nel suo complesso) è che per eseguire comandi su un cluster, è prima necessario un cluster. Tuttavia, ci sono soluzioni facili.

Innanzitutto, puoi creare il tuo cluster Kubernetes al costo di tre schede Raspberry Pi e periferiche associate (principalmente alimentatori). Una volta acquistato l'hardware, leggi Costruisci un cluster Kubernetes con Raspberry Pi di Chris Collins e avrai il tuo cluster personale con kubectl installato.

L'altro modo per acquisire un cluster è utilizzare Minikube, un ambiente pratico per Kubernetes. Di tutti i metodi per rendere operativo un cluster, questo è il più semplice.

Ci sono ancora più opzioni; ad esempio, puoi seguire un corso su Kubernetes per ottenere l'accesso a un laboratorio che esegue un cluster oppure puoi guadagnare tempo su un cloud. Non importa come ottieni l'accesso a un cluster, purché disponi di un ambiente Kubernetes su cui esercitarti.

Una volta che hai accesso a un cluster, puoi iniziare a esplorare il comando kubectl.

Comprendere pod e contenitori

Un contenitore è un sistema Linux leggero e parziale dedicato all'esecuzione di un'applicazione o di un servizio. Un contenitore è vincolato da uno spazio dei nomi del kernel, che gli fornisce l'accesso a componenti vitali del sistema sul suo host (il computer che esegue il contenitore) impedendogli al contempo di inviare dati al suo host. I contenitori vengono mantenuti come immagini contenitore (o semplicemente immagini in breve) e definiti da file di testo chiamati Containerfiles o Dockerfiles.

Un pod è una raccolta formale di contenitori e un modo semplice con cui un amministratore può ridimensionare, monitorare e gestire un numero qualsiasi di contenitori.

Insieme, queste sono come le "app" di Kubernetes. Creare o acquisire immagini di contenitori è il modo in cui esegui i servizi sul cloud.

Esecuzione di un baccello

Due registri affidabili di immagini di contenitori sono Docker Hub e Quay. È possibile cercare in un sito Web del registro un elenco delle immagini disponibili. Di solito ci sono immagini ufficiali di grandi progetti forniti dal progetto, nonché immagini della community per progetti specializzati, personalizzati o di nicchia. Una delle immagini più semplici e piccole è un contenitore BusyBox, che fornisce un ambiente shell minimo e alcuni comandi comuni.

Sia che si estragga un'immagine da un registro o si scriva la propria definizione di immagine e la si inserisca nel cluster da un repository Git, il flusso di lavoro è lo stesso. Quando vuoi avviare un pod in Kubernetes:

  1. Trova un'immagine che desideri utilizzare su Docker Hub o Quay
  2. Tira l'immagine
  3. Crea un baccello
  4. Distribuisci il pod

Se desideri utilizzare il contenitore BusyBox di esempio, puoi eseguire gli ultimi tre passaggi in un unico comando:

$ kubectl create deployment my-busybox --image=busybox

Attendi che kubectl completi il processo e, alla fine, avrai un'istanza BusyBox in esecuzione. Il pod non è esposto al resto del mondo. È semplicemente in esecuzione sul tuo cluster in background.

Per vedere quali pod sono in esecuzione sul tuo cluster:

$ kubectl get pods --all-namespaces

Puoi anche ottenere informazioni sulla distribuzione del pod:

$ kubectl describe deployment my-busybox

Interazione con un pod

I contenitori solitamente contengono file di configurazione che ne determinano l'automazione. Ad esempio, l'installazione del server httpd Nginx come contenitore non dovrebbe richiedere la tua interazione. Avvia il contenitore in esecuzione e funziona. Questo vale per il primo contenitore che aggiungi a un pod e per ogni contenitore successivo.

Uno dei vantaggi del modello Kubernetes è che puoi scalare i tuoi servizi in base alle esigenze. Se il tuo servizio web dovesse essere sopraffatto da traffico imprevisto, puoi avviare un contenitore identico nel tuo cloud (utilizzando il sottocomando scale o autoscale), raddoppiando la capacità del tuo servizio di gestire le richieste in arrivo .

Anche così, a volte è bello vedere qualche prova che un pod funziona come previsto o essere in grado di risolvere qualcosa che non sembra funzionare correttamente. Per questo, puoi eseguire comandi arbitrari in un contenitore:

$ kubectl exec my-busybox -- echo "hello cloud"

In alternativa, puoi aprire una shell nel tuo contenitore, collegando il tuo input standard al suo interno e il suo output allo stdout del tuo terminale:

$ kubectl exec --stdin --tty my-busybox -- /bin/sh

Servizi espositivi

Per impostazione predefinita, i pod non sono esposti al mondo esterno al momento della creazione, dandoti il tempo di testarli e verificarli prima di essere pubblicati. Supponiamo che tu voglia installare e distribuire il server web Nginx come pod sul tuo cluster e renderlo accessibile. Come con qualsiasi servizio, devi puntare il tuo pod a una porta sul tuo server. Il sottocomando kubectl expose può fare questo per te:

$ kubectl create deployment \
my-nginx --image=nginx
$ kubectl expose deployment \
my-nginx --type=LoadBalancer --port=8080

Finché il tuo cluster è accessibile da Internet, puoi testare l'accessibilità del tuo nuovo server web aprendo un browser e accedendo al tuo indirizzo IP pubblico.

Molto più che semplici cialde

Kubernetes offre molto di più che semplici immagini stock di servizi comuni. Oltre ad essere un sistema per l'orchestrazione dei contenitori, è anche una piattaforma per lo sviluppo cloud. Puoi scrivere e distribuire applicazioni, gestire e monitorare prestazioni e traffico, implementare strategie di bilanciamento del carico intelligenti e molto altro ancora.

Kubernetes è un sistema potente ed è rapidamente diventato la base per tutti i tipi di cloud, in particolare per il cloud ibrido aperto. Inizia a imparare Kubernetes oggi. E man mano che impari di più su Kubernetes, avrai bisogno di alcuni rapidi promemoria dei suoi concetti principali e della sintassi generale, quindi scarica il nostro cheat sheet di Kubernetes e tienilo a portata di mano.

Articoli correlati: