Ricerca nel sito web

Come creare un deployment in Kubernetes


Su questa pagina

  1. Prerequisiti
  2. Cosa faremo
  3. Crea un'implementazione
  4. Conclusione

I deployment rappresentano un insieme di pod identici. Un deployment esegue più copie dell'applicazione. Sostituisce automaticamente tutte le istanze che hanno esito negativo. 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. I deployment utilizzano un modello di pod, che contiene una specifica per i relativi pod.

Un deployment Kubernetes è un oggetto risorsa in Kubernetes che fornisce aggiornamenti dichiarativi alle applicazioni.

Per maggiori 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 un'implementazione

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 dal campo metadata: name.
  • Il deployment creerà 1 replica del pod, indicata dal campo replicas.
  • Il modello di pod, o campo spec: template indica che i suoi pod sono etichettati app: httpd-frontend< /codice>.
  • La specifica dei modelli di pod o il campo template: spec indica che i pod eseguono un container, httpd, che esegue l'immagine httpd: alla versione 2.4-alpine.

Utilizzare il seguente comando per creare una distribuzione

kubectl create -f my-deployment.yaml

Una volta creata una distribuzione, puoi ottenerne i dettagli utilizzando il seguente comando.

kubectl get deployment | grep httpd-frontend

La distribuzione ha creato un set di repliche, per elencarlo utilizzare il seguente comando.

kubectl get replicaset | grep httpd-frontend

I pod creati dal replica-set possono essere elencati utilizzando il seguente comando che elencherà i pod che corrispondono al nome specificato.


kubectl get pods | grep httpd-frontend

Ora puoi testare la creazione automatica del pod se l'esistente fallisce 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, eliminare il set di repliche utilizzando il seguente comando.


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, \-o wide\ può essere utilizzato 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, è possibile descriverlo utilizzando il seguente comando.

kubectl describe pod httpd-frontend

Ora, se non hai più bisogno che la tua applicazione venga distribuita utilizzando il deployment, puoi eliminarla eliminando il deployment.

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 del deployment, vengono creati.

Conclusione

In questo articolo, abbiamo imparato a creare un deployment e abbiamo provato l'operazione di eliminazione su pod, set di repliche e deployment.


Tutti i diritti riservati. © Linux-Console.net • 2019-2024