Bereitstellungen stellen eine Reihe identischer Pods dar. Eine Bereitstellung führt mehrere Kopien der Anwendung aus. Fehlerhafte Instanzen werden automatisch ersetzt. Es hilft sicherzustellen, dass eine oder mehrere Instanzen der Anwendung immer betriebsbereit sind. Bereitstellungen werden vom Kubernetes Deployment Controller verwaltet. Bereitstellungen verwenden eine Pod-Vorlage, die eine Spezifikation für ihre Pods enthält.
Eine Kubernetes-Bereitstellung ist ein Ressourcenobjekt in Kubernetes, das deklarative Updates für Anwendungen bereitstellt.
Weitere Informationen zu Bereitstellungsspezifikationen finden Sie in der Kubernetes-API-Dokumentation
In diesem Artikel erfahren Sie, wie Sie eine Bereitstellung in Kubernetes erstellen und Vorgänge darauf ausführen.
Voraussetzungen
Kubernetes-Cluster mit mindestens 1 Worker-Knoten.
Wenn Sie erfahren möchten, wie Sie einen Kubernetes-Cluster erstellen, klicken Sie hier. Dieser Leitfaden hilft Ihnen beim Erstellen eines Kubernetes-Clusters mit 1 Master und 2 Knoten auf AWS Ubuntu 18l04 EC2-Instances.
Was wir tun werden
Erstellen Sie eine Bereitstellung
Eine Bereitstellung erstellen
Erstellen Sie eine Datei und fügen Sie ihr die folgende Bereitstellungsdefinition hinzu.
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 diesem Beispiel:
- Ein Deployment namens httpd-frontend wird erstellt, angezeigt durch
metadata: name
Feld. - Die Bereitstellung erstellt 1 Replikat des Pods, angegeben durch
replicas
Feld. - Die Pod-Vorlage oder
spec: template
Feld gibt an, dass seine Pods mit
.app: httpd-frontend
gekennzeichnet sind - Die Spezifikation der Pod-Vorlage oder
template: spec
Feld gibt an, dass die Pods einen Container ausführen, httpd, der das httpd: Image in Version 2.4-alpine ausführt.
Verwenden Sie den folgenden Befehl, um eine Bereitstellung zu erstellen
kubectl create -f my-deployment.yaml
Nachdem Sie eine Bereitstellung erstellt haben, können Sie ihre Details mit dem folgenden Befehl abrufen.
kubectl get deployment | grep httpd-frontend
Die Bereitstellung hat einen Replikatsatz erstellt, um ihn aufzulisten, verwenden Sie den folgenden Befehl.
kubectl get replicaset | grep httpd-frontend
Vom Replikatsatz erstellte Pods können mit dem folgenden Befehl aufgelistet werden, der die Pods auflistet, die mit dem angegebenen Namen übereinstimmen.
kubectl get pods | grep httpd-frontend
Jetzt können Sie die automatische Erstellung des Pods testen, wenn der vorhandene fehlschlägt, indem Sie ihn löschen.
Verwenden Sie die folgenden Befehle, um den vorhandenen Pod zu löschen.
kubectl get pods | grep httpd-frontend
kubectl delete pod httpd-frontend-74fd6fd8cd-8nj2s
kubectl get pods | grep httpd-frontend
Im Screenshot oben sehen Sie, dass der Pod nach dem Löschen des vorhandenen Pods erstellt wurde.
Jetzt wird der Replikatsatz selbst dann erstellt, wenn er gelöscht wird.
Um dies zu testen, löschen Sie den Replikatsatz mit dem folgenden Befehl.
kubectl get replicaset | grep httpd-frontend
kubectl delete replicaset httpd-frontend-74fd6fd8cd
kubectl get replicaset | grep httpd-frontend
Im obigen Screenshot können Sie sehen, dass das Replikat-Set auch nach dem Löschen erstellt wurde.
Um etwas mehr Informationen über den Pod anzuzeigen, kann "-o wide" wie folgt im Befehl verwendet werden.
kubectl get pods | grep httpd-frontend
kubectl get pods -o wide | grep httpd-frontend
Um die vollständigen Informationen des Pods zu erhalten, kann dieser mit dem folgenden Befehl beschrieben werden.
kubectl describe pod httpd-frontend
Wenn Sie Ihre Anwendung jetzt nicht mehr mithilfe der Bereitstellung bereitstellen müssen, können Sie sie löschen, indem Sie die Bereitstellung löschen.
Verwenden Sie die folgenden Befehle, um die Bereitstellung zu löschen.
kubectl get deployment | grep httpd-frontend
kubectl delete deployment httpd-frontend
kubectl get deployment | grep httpd-frontend
Im obigen Screenshot können Sie sehen, dass die Bereitstellung nach dem Löschen nicht erstellt wurde. Aber wenn Sie den Pod oder das Replikatset löschen, die im Rahmen der Bereitstellung erstellt wurden, werden sie erstellt.
Schlussfolgerung
In diesem Artikel haben wir gelernt, wie man ein Deployment erstellt und den Löschvorgang für Pod, Replicaset und Deployment ausprobiert.