Wie man einen Service in Kubernetes erstellt
Deployments stellen einen Satz identischer Pods dar. Bei einem Deployment werden mehrere Kopien der Anwendung ausgeführt. Sie ersetzt automatisch alle fehlgeschlagenen Instanzen. Es hilft sicherzustellen, dass eine oder mehrere Instanzen der Anwendung immer betriebsbereit sind. Deployments werden vom Kubernetes Deployment Controller verwaltet. Implementierungen verwenden eine Pod-Vorlage, die eine Spezifikation für ihre Pods enthält.
Eine Kubernetes-Bereitstellung ist ein Ressourcenobjekt in Kubernetes, das deklarative Aktualisierungen von Anwendungen bereitstellt.
Weitere Informationen zu den Einsatzspezifikationen finden Sie in der API-Dokumentation von Kubernetes
In diesem Artikel lernen wir, wie man ein Deployment in Kubernetes erstellt und Operationen darauf ausführt.
Voraussetzungen
Kubernetes Cluster mit mindestens 1 Worker-Knoten.
Wenn Sie lernen möchten, wie man einen Kubernetes-Cluster erstellt, klicken Sie hier.
Dieses Handbuch hilft Ihnen bei der Erstellung eines Kubernetes-Clusters mit 1 Master- und 2 Worker-Knoten auf AWS Ubuntu 18l04 EC2-Instanzen.
Was wir tun werden
Erstellen eines Deployment
Erstellen eines Deployments
Erstellen Sie eine Datei und fügen Sie darin die folgende Einsatzdefinition 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:
- Es wird ein Deployment mit dem Namen httpd-frontend erstellt, was durch das Feld angezeigt wird.
- Der Einsatz erstellt 1 Replikat des Pods, das durch das Feld angezeigt wird.
- Die Pod-Vorlage bzw. das
spec: template
Feld zeigt an, dass die Pods folgendermaßen beschriftet sind
.app: httpd-frontend
- Die Spezifikation oder das
template: spec
Feld der Pod-Vorlage gibt an, dass die Pods einen Container, httpd, ausführen, der das httpd:-Bild in Version 2.4-alpine ausführt.
Verwenden Sie den folgenden Befehl, um eine Bereitstellung zu erstellen
kubectl create -f my-deployment.yaml
Sobald Sie eine Bereitstellung erstellt haben, können Sie ihre Details mit dem folgenden Befehl abrufen.
kubectl get deployment | grep httpd-frontend
Der Einsatz hat ein Replikat-Set erstellt, das mit dem folgenden Befehl aufgelistet wird.
kubectl get replicaset | grep httpd-frontend
Pods, die mit dem Replica-Set erstellt wurden, können mit dem folgenden Befehl aufgelistet werden, der die Pods auflistet, die dem angegebenen Namen entsprechen.
kubectl get pods | grep httpd-frontend
Jetzt können Sie die automatische Erstellung des Pods testen, wenn die bestehende fehlschlägt, indem Sie sie löschen.
Um den vorhandenen Pod zu löschen, verwenden Sie die folgenden Befehle.
kubectl get pods | grep httpd-frontend
kubectl delete pod httpd-frontend-74fd6fd8cd-8nj2s
kubectl get pods | grep httpd-frontend
Auf dem obigen Screenshot sehen Sie, dass der Pod nach dem Löschen des vorhandenen Pods erstellt wurde.
Selbst wenn das Replikat-Set jetzt gelöscht wird, wird es vom Einsatz erstellt.
Um dies zu testen, löschen Sie das Replikatset 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 sehen Sie, dass auch nach dem Löschen des Replikat-Satzes dieser erstellt wurde.
Um ein wenig mehr Informationen über die Hülse zu sehen, 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 er mit dem folgenden Befehl beschrieben werden.
kubectl describe pod httpd-frontend
Wenn Sie Ihre Anwendung nicht mehr benötigen, die mit der Bereitstellung bereitgestellt wird, kann sie durch Löschen der Bereitstellung gelöscht werden.
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
In der obigen Abbildung sehen Sie, dass die Bereitstellung nach dem Löschen nicht erstellt wurde. Wenn Sie jedoch den Pod oder das Replikat löschen, die als Teil der Bereitstellung erstellt wurden, werden sie erstellt.
Schlussfolgerung
In diesem Artikel haben wir gelernt, wie man einen Einsatz erstellt und den Löschvorgang bei Pod, Replikaset und Einsatz ausprobiert.