Le distribuzioni rappresentano un insieme di pod identici. Una distribuzione esegue più copie dell'applicazione. Sostituisce automaticamente tutte le istanze che non riescono. Aiuta a garantire che una o più istanze dell'applicazione siano sempre attive e in esecuzione. Le distribuzioni sono gestite dal controller di distribuzione Kubernetes. Le distribuzioni utilizzano un modello di pod, che contiene una specifica per i suoi pod.
Una distribuzione Kubernetes è un oggetto risorsa in Kubernetes che fornisce aggiornamenti dichiarativi alle applicazioni.
Per ulteriori informazioni sulle specifiche di distribuzione, consulta la documentazione dell'API Kubernetes
In questo articolo impareremo a creare una distribuzione in Kubernetes ed eseguire operazioni su di essa.
Prerequisiti
Cluster Kubernetes con almeno 1 nodo di lavoro.
Se vuoi imparare a creare un Cluster Kubernetes, fai clic qui. Questa guida ti aiuterà a creare un cluster Kubernetes con 1 master e 2 nodi su istanze AWS Ubuntu 18l04 EC2.
Cosa faremo
Crea una distribuzione
Crea una distribuzione
Crea un file e aggiungi la seguente definizione di distribuzione al suo interno.
vim my-deployment.yaml
apiVersion: apps/v1 kind: Deployment metadata: labels: app: httpd-frontend name: httpd-frontend spec: replicas: 1 selector: matchLabels: app: httpd-frontend template: metadata: labels: app: httpd-frontend spec: containers: - image: httpd:2.4-alpine name: httpd
In questo esempio:
- Verrà creato un Deployment denominato httpd-frontend , indicato dai
metadata: name
campo. - La distribuzione creerà 1 replica del Pod, indicata dalle
replicas
campo. - Il modello Pod, o
spec: template
campo, indica che i suoi Pod sono etichettati
.app: httpd-frontend
- Specifica del modello Pod o
template: spec
campo, indica che i Pod eseguono un contenitore, httpd, che esegue l'immagine httpd: nella versione 2.4-alpine.
Usa il comando seguente per creare una distribuzione
kubectl create -f my-deployment.yaml
Una volta creata una distribuzione, puoi ottenerne i dettagli utilizzando il comando seguente.
kubectl get deployment | grep httpd-frontend
La distribuzione ha creato un set di repliche, per elencarlo utilizzare il comando seguente.
kubectl get replicaset | grep httpd-frontend
I pod creati dal set di repliche possono essere elencati utilizzando il comando seguente che elencherà i pod corrispondenti al nome specificato.
kubectl get pods | grep httpd-frontend
Ora puoi testare la creazione automatica del pod se quello esistente non riesce eliminandolo.
Per eliminare il pod esistente, utilizza i seguenti comandi.
kubectl get pods | grep httpd-frontend
kubectl delete pod httpd-frontend-74fd6fd8cd-8nj2s
kubectl get pods | grep httpd-frontend
Nello screenshot sopra, puoi vedere che il pod è stato creato dopo aver eliminato il pod esistente.
Ora, anche se il set di repliche viene eliminato, la distribuzione lo creerà.
Per verificarlo, elimina il set di repliche utilizzando il comando seguente.
kubectl get replicaset | grep httpd-frontend
kubectl delete replicaset httpd-frontend-74fd6fd8cd
kubectl get replicaset | grep httpd-frontend
Nello screenshot sopra puoi vedere che anche dopo aver eliminato il set di repliche, è stato creato.
Per visualizzare un po' più di informazioni sul pod, puoi utilizzare "-o wide" nel comando come segue.
kubectl get pods | grep httpd-frontend
kubectl get pods -o wide | grep httpd-frontend
Per ottenere le informazioni complete del pod, può essere descritto utilizzando il comando seguente.
kubectl describe pod httpd-frontend
Ora, se non hai più bisogno che la tua applicazione venga distribuita utilizzando la distribuzione, può essere eliminata eliminando la distribuzione.
Utilizzare i seguenti comandi per eliminare la distribuzione.
kubectl get deployment | grep httpd-frontend
kubectl delete deployment httpd-frontend
kubectl get deployment | grep httpd-frontend
Nello screenshot sopra, puoi vedere che dopo aver eliminato la distribuzione non è stata creata. Ma se elimini il pod o il set di repliche che sono stati creati come parte della distribuzione, vengono creati.
Conclusione
In questo articolo abbiamo imparato a creare una distribuzione e provato l'operazione di eliminazione su Pod, Replicaset e Deployment.