Dein erstes Deployment auf einem Kubernetes Cluster erstellen

In diesem Artikel sehen wir uns an, wie du dein erstes Deployment auf einem Kubernetes Cluster erstellst. Als Beispiel werden wir ein Deployment für NginX erstellen.

Sobald wir einen laufenden Kubernetes-Cluster haben, können wir unsere containerisierten Anwendungen darauf bereitstellen. Dazu können wir eine Kubernetes Deployment-Konfiguration erstellen.

Ein Deployment bietet deklarative Aktualisierungen für Pods und ReplicaSets. Wir beschreiben einen gewünschten Zustand im Deployment und der Deployment Controller ändert den tatsächlichen Zustand in einer kontrollierten Rate in den gewünschten Zustand.

Wir können ein Deployment mit der Kubernetes-Befehlszeilenschnittstelle „kubectl“ erstellen und verwalten. Kubectl verwendet die Kubernetes API, um mit dem Cluster zu interagieren.

Es gibt drei Phasen im Lebenszyklus eines Deployments:

  1. Fortschreitend: Kubernetes markiert ein Deployment als fortschreitend, wenn das Deployment ein neues ReplicaSet erstellt, das Deployment sein neuestes ReplicaSet hochskaliert oder sein älteres ReplicaSet herunterskaliert oder neue Pods bereit oder verfügbar werden.
  2. Vollständig: Kubernetes markiert ein Deployment als vollständig, wenn alle mit dem Deployment verbundenen Replikate aktualisiert wurden, verfügbar sind und keine alten Replikate für das Deployment laufen.
  3. Fehlgeschlagen: Dies kann aufgrund von unzureichenden Quotas, Fehlern bei der Bereitschaftsprüfung, Fehlern beim Ziehen von Images oder unzureichenden Berechtigungen geschehen.

Vorraussetzungen

  1. AWS-Konto (Erstelle wenn du noch keines hast)
  2. Ein Kubernetes Cluster

Hinweis: Du kannst auch VMs verwenden, um einen Cluster zu erstellen, wenn du es nicht mit AWS EC2-Instanzen versuchen willst.

Was wir tun werden

  1. Eine Kubenetes-Bereitstellung für NginX erstellen

Erstellen einer Kubenetes-Bereitstellung für NginX

Um unseren ersten Einsatz zu erstellen, legen wir ein neues Verzeichnis an, in dem wir unsere Object/Deployment-Datei erstellen. Verwende den folgenden Befehl, um ein neues Verzeichnis in deinem System zu erstellen

mkdir my-first-deployment
cd my-first-deployment/

Bevor wir fortfahren, überprüfe den Status des Clusters.

Um die im Cluster verfügbaren Nodes und die Version von„kubectl“ zu überprüfen, verwende die folgenden Befehle.

sudo kubectl version
sudo kubectl get nodes

kubectl-Version

Sobald du Nodes in deinem Cluster hast, kannst du dein Deployment erstellen.

Erstelle eine Datei“my-first-deployment.yml“ mit dem folgenden Codeblock

vim meine-erste-bereitstellung.yml

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

Hier,

  • apiVersion:APIVersion definiert das versionierte Schema dieser Darstellung eines Objekts.
  • kind:Art des Objekts, das du erstellen willst, wie z.B. Deployment, Service, Configmap und andere.
  • name:Der Name muss innerhalb eines Namespaces eindeutig sein.
  • labels:Eine Karte mit String-Schlüsseln und -Werten, die zur Organisation und Kategorisierung von Objekten verwendet werden können.
  • spec:Spezifikation des gewünschten Verhaltens des Deployments.
  • Replikate:Anzahl der gewünschten Pods.
  • Selektor:Label-Selektor für Pods. Vorhandene ReplicaSets, deren Pods hiermit ausgewählt werden, sind von diesem Einsatz betroffen. Er muss mit den Labels der Pod-Vorlage übereinstimmen.

Jetzt kannst du dein Deployment mit den folgenden Befehlen erstellen.

sudo kubectl apply -f my-first-deployment.yml
sudo kubectl get deployments

kubectl anwenden

Im obigen Screenshot kannst du sehen, dass das Deployment mit zwei Pods erstellt wurde, die zur Nutzung bereitstehen.

Die Details zu den Pods kannst du mit dem folgenden Befehl abrufen.

sudo kubectl get pods

kubectl get pods

Wenn du mehr über das Deployment wissen willst, kannst du den Befehl „kubectl describe“ verwenden, um die vollständigen Details des Deployments zu erfahren.

sudo kubectl get deployments
sudo kubectl describe deployments nginx-deployment

kubectl get deployments

Wenn du das Deployment nicht mehr benötigst, kannst du es mit dem „kubectl delete command“ löschen.

sudo kubectl get deployments
sudo kubectl delete deployments nginx-deployment
sudo kubectl get deployments

kubectl  get deployments

Im obigen Screenshot siehst du, dass das Deployment nicht mehr verfügbar ist, nachdem es gelöscht wurde.

Wenn du das Deployment löschst, werden auch die Pods gelöscht.

Du kannst die Verfügbarkeit der Pods mit dem folgenden Befehl überprüfen.

sudo kubectl get pods

kubectl  get pods

Im obigen Screenshot kannst du sehen, dass die Pods nach dem Löschen des Deployments gelöscht wurden und nicht mehr verfügbar sind.

Fazit

In diesem Artikel haben wir gesehen, wie du dein erstes NginX-Deployment auf Kubernetes erstellst. Wir haben auch gesehen, wie die Details des Deployments extrahiert werden können. Außerdem haben wir uns die Befehle zum Löschen des Deployments angeschaut.

Das könnte dich auch interessieren …