Ricerca nel sito web

Come distribuire il tuo primo pod su un cluster Kubernetes


In questo articolo vedremo come creare il nostro primo Pod su Kubernetes Cluster. Vedremo i passaggi per creare un pod per Nginx.

Un pod è l'unità di esecuzione di base di un'applicazione Kubernetes. È una raccolta di container che vengono distribuiti insieme sullo stesso host. I pod in un cluster Kubernetes possono essere utilizzati in due modi:

  1. Pod che eseguono un singolo contenitore: questo è il modo più diffuso di utilizzare un pod. Kubernetes gestisce i pod invece di gestire direttamente i container.
  2. Pod che eseguono più container che devono funzionare insieme: in questo modello, un pod può avere più container strettamente accoppiati per condividere le risorse.

Come indicato in precedenza, un pod può contenere più contenitori, si consiglia sempre di avere un unico contenitore quando possibile. Raggruppare più container in un singolo pod è un caso d'uso relativamente avanzato. Dovresti utilizzare questo modello solo in casi specifici in cui i tuoi contenitori sono strettamente accoppiati.

Se distribuiamo un singolo contenitore, generalmente possiamo sostituire la parola \pod\ con \contenitore\. I pod consentono la condivisione e la comunicazione dei dati tra i loro componenti.

Un pod viene sempre eseguito su un Node. Un nodo è una macchina worker in Kubernetes e può essere una macchina virtuale o fisica, a seconda del cluster. Ogni Nodo è gestito dal Master. Un nodo può avere più pod e il master Kubernetes gestisce automaticamente la pianificazione dei pod tra i nodi nel cluster.

Le 5 fasi del ciclo di vita di un pod

  1. In attesa: il pod è stato accettato dal sistema Kubernetes, ma una o più immagini del contenitore non sono state create. Ciò include il tempo prima della pianificazione e il tempo impiegato per scaricare le immagini sulla rete, il che potrebbe richiedere del tempo.
  2. In esecuzione: il pod è stato associato a un nodo e tutti i contenitori sono stati creati. Almeno un contenitore è ancora in esecuzione o è in fase di avvio o riavvio.
  3. Riuscito: tutti i container nel pod sono stati terminati correttamente e non verranno riavviati.
  4. Failed: tutti i container nel pod sono terminati e almeno un container è terminato con un errore. In altre parole, il contenitore è uscito con uno stato diverso da zero oppure è stato terminato dal sistema.
  5. Sconosciuto: per qualche motivo, non è stato possibile ottenere lo stato del pod, in genere a causa di un errore di comunicazione con l'host del pod.

Prerequisiti

  1. Account AWS (creane uno se non ne hai uno)
  2. Cluster Kubernetes (cerca \Setup a Kubernetes Cluster on AWS EC2 Instance Ubuntu using kubeadm\ se vuoi imparare a creare un cluster Kubernetes).

Nota: puoi utilizzare anche le VM per creare un cluster se non vuoi provare le istanze AWS EC2.

Cosa faremo

  1. Crea un pod Kubernetes per NginX ed eliminalo

Crea un pod Kubernetes per Nginx

Per creare il nostro primo pod, basta creare una nuova directory per creare il nostro file oggetto/pod. Usa il seguente comando per creare una nuova directory nel tuo sistema

mkdir my-first-pod
cd my-first-pod/

Prima di procedere, verifica lo stato del cluster.

Per verificare i nodi disponibili nel cluster e per verificare la versione di \kubectl\ utilizzare i seguenti comandi.

sudo kubectl get nodes
sudo kubectl version

Utilizza il seguente comando per elencare i pod nello spazio dei nomi predefinito. Poiché questo sarà il nostro primo pod nel cluster, non vedrai alcun pod nello spazio dei nomi predefinito.

sudo kubectl get pods

Una volta che i nodi sono disponibili nel cluster, sei pronto per creare il tuo primo pod.

Crea un file \my-first-pod.yml\ con il seguente blocco di codice

vim my-first-pod.yml

---
apiVersion: v1
kind: Pod
metadata:
  name: myfirstpod
  labels:
    app: web
spec:
  containers:
    - name: myfirstcontainer
      image: nginx
      ports:
        - containerPort: 80

Qui,

  • apiVersion: APIVersion definisce lo schema con versione di questa rappresentazione di un oggetto.
  • kind: Tipo di oggetto che vuoi creare. Qui è il pod poiché stiamo creando un pod.
  • nome: il nome deve essere univoco all'interno di uno spazio dei nomi.
  • etichette: mappa di chiavi e valori stringa che possono essere utilizzati per organizzare e categorizzare gli oggetti
  • spec: Specifica del comportamento desiderato del pod.

Ora sei pronto per creare il tuo pod utilizzando i seguenti comandi.

sudo kubectl apply -f my-first-pod.yml 

Puoi ottenere i dettagli dei pod usando il seguente comando.

sudo kubectl get pods

Per confermare se il pod è effettivamente in esecuzione, esegui il seguente comando. Questo esegue un comando all'interno del nostro pod (Nota: è simile all'esecuzione di docker exec.)

sudo kubectl exec myfirstpod — service nginx status

Se non hai più bisogno del pod, puoi eliminarlo utilizzando \kubectl delete command\.

sudo kubectl delete pods myfirstpod

Infine per verificare se il pod è stato cancellato utilizzare il seguente comando.

sudo kubectl get pods

Conclusione

In questo articolo, abbiamo appreso le nozioni di base sui pod e le relative fasi del ciclo di vita. Abbiamo visto i passaggi per creare il nostro primo pod Nginx su Kubernetes. Abbiamo anche visto come si possono estrarre i dettagli riguardanti il Pod. Insieme a questo, abbiamo esplorato il comando per eliminare il pod.