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

my-deployment.yaml

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. dasspec: templateFeld zeigt an, dass die Pods folgendermaßen beschriftet sindapp: httpd-frontend.
  • Die Spezifikation oder dastemplate: specFeld 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

get-Deployment

Der Einsatz hat ein Replikat-Set erstellt, das mit dem folgenden Befehl aufgelistet wird.

kubectl get replicaset | grep httpd-frontend

get-Replikat

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

get-pod

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

delete-pod

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

lösche-Replikaset

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

get-pod-mit-Details

Um die vollständigen Informationen des Pods zu erhalten, kann er mit dem folgenden Befehl beschrieben werden.

kubectl describe pod httpd-frontend

describe-pod

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

Löschen-Bereitstellung

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.

Das könnte Dich auch interessieren …