Wie du deinen ersten Pod in einem Kubernetes Cluster einsetzt
In diesem Artikel werden wir sehen, wie wir unseren ersten Pod im Kubernetes Cluster erstellen. Wir werden uns die Schritte zur Erstellung eines Pods für Nginx ansehen.
Ein Pod ist die grundlegende Ausführungseinheit einer Kubernetes-Anwendung. Es handelt sich um eine Sammlung von Containern, die gemeinsam auf demselben Host eingesetzt werden. Pods in einem Kubernetes-Cluster können auf zwei Arten verwendet werden:
- Pods, die einen einzelnen Container ausführen: Dies ist die beliebteste Art, einen Pod zu verwenden. Kubernetes verwaltet die Pods, anstatt die Container direkt zu verwalten.
- Pods mit mehreren Containern, die zusammenarbeiten müssen: Bei diesem Modell kann ein Pod mehrere Container enthalten, die eng gekoppelt sind, um Ressourcen gemeinsam zu nutzen.
Wie bereits erwähnt, kann ein Pod mehrere Container enthalten, aber es wird immer empfohlen, wenn möglich nur einen einzigen Container zu verwenden. Die Gruppierung mehrerer Container in einem einzigen Pod ist ein relativ fortgeschrittener Anwendungsfall. Du solltest dieses Muster nur in bestimmten Fällen verwenden, in denen deine Container eng gekoppelt sind.
Wenn wir einen einzelnen Container einsetzen, können wir das Wort „Pod“ im Allgemeinen durch „Container“ ersetzen. Pods ermöglichen die gemeinsame Nutzung von Daten und die Kommunikation zwischen ihren Bestandteilen.
Ein Pod läuft immer auf einem Node. Ein Node ist ein Arbeitsrechner in Kubernetes und kann je nach Cluster entweder ein virtueller oder ein physischer Rechner sein. Jeder Node wird vom Master verwaltet. Ein Node kann mehrere Pods haben, und der Kubernetes-Master kümmert sich automatisch um die Planung der Pods auf den Nodes im Cluster.
Die 5 Phasen im Lebenszyklus eines Pods
- Pending: Der Pod wurde vom Kubernetes-System akzeptiert, aber ein oder mehrere Container-Images wurden noch nicht erstellt. Dazu gehört auch die Zeit vor der Einplanung sowie die Zeit, in der die Images über das Netzwerk heruntergeladen werden, was eine Weile dauern kann.
- Läuft: Der Pod wurde an einen Knoten gebunden, und alle Container wurden erstellt. Mindestens ein Container ist noch in Betrieb oder wird gerade gestartet oder neu gestartet.
- Erfolgreich: Alle Container des Pods wurden erfolgreich beendet und werden nicht neu gestartet.
- Fehlgeschlagen: Alle Container im Pod haben sich beendet und mindestens ein Container hat sich als Fehlschlag herausgestellt. Das heißt, der Container hat sich entweder mit einem Status ungleich Null beendet oder wurde vom System beendet.
- Unbekannt: Aus irgendeinem Grund konnte der Status des Pods nicht ermittelt werden, normalerweise aufgrund eines Fehlers bei der Kommunikation mit dem Host des Pods.
Vorraussetzungen
- AWS-Konto (Erstelle wenn du noch keines hast)
- Kubernetes Cluster (Suche nach „Setup a Kubernetes Cluster on AWS EC2 Instance Ubuntu 18.04 LTS using kubeadm“, wenn du lernen willst, wie man einen Kubernetes Cluster erstellt).
Hinweis: Du kannst auch VMs verwenden, um einen Cluster zu erstellen, wenn du es nicht auf AWS EC2-Instanzen versuchen willst.
Was wir tun werden
- Erstelle einen Kubernetes Pod für NginX und lösche ihn
Einen Kubernetes-Pod für Nginx erstellen
Um unseren ersten Pod zu erstellen, legen wir zunächst ein neues Verzeichnis an, in dem wir unsere Object/Pod-Datei erstellen. Verwende den folgenden Befehl, um ein neues Verzeichnis in deinem System zu erstellen
mkdir mein-erster-pod
cd mein-erster-pod/
Bevor wir fortfahren, überprüfe den Status des Clusters.
Um die im Cluster verfügbaren Knoten zu überprüfen und die Version des „kubectl“ zu überprüfen, verwende die folgenden Befehle.
sudo kubectl get nodes
sudo kubectl version
Verwende den folgenden Befehl, um die Pods im Standard-Namespace aufzulisten. Da dies unser erster Pod im Cluster ist, wirst du keinen Pod im Standard-Namensraum sehen.
sudo kubectl get pods
Sobald du Nodes im Cluster hast, kannst du deinen ersten Pod erstellen.
Erstelle eine Datei“my-first-pod.yml“ mit dem folgenden Codeblock
vim mein-erster-pod.yml
---
apiVersion: v1
kind: Pod
metadata:
name: myfirstpod
labels:
app: web
spec:
containers:
- name: myfirstcontainer
image: nginx
ports:
- containerPort: 80
hier,
- apiVersion: APIVersion definiert das versionierte Schema dieser Darstellung eines Objekts.
- kind: Die Art des Objekts, das du erstellen willst. Hier ist es Pod, da wir einen Pod erstellen.
- name: Der Name muss innerhalb eines Namespaces eindeutig sein.
- labels: Karte mit String-Schlüsseln und -Werten, mit denen Objekte organisiert und kategorisiert werden können
- spec: Spezifikation des gewünschten Verhaltens des Pods.
Jetzt kannst du deinen Pod mit den folgenden Befehlen erstellen.
sudo kubectl apply -f my-first-pod.yml
Du kannst die Details des Pods mit dem folgenden Befehl abrufen.
sudo kubectl get pods
Um zu überprüfen, ob der Pod tatsächlich läuft, führst du den folgenden Befehl aus. Damit wird ein Befehl innerhalb unseres Pods ausgeführt (Hinweis: Es ist ähnlich wie die Ausführung von docker exec.)
sudo kubectl exec myfirstpod – service nginx status
Wenn du den Pod nicht mehr benötigst, kannst du ihn mit „kubectl delete command“ löschen.
sudo kubectl delete pods myfirstpod
Um zu überprüfen, ob der Pod gelöscht wurde, verwende den folgenden Befehl.
sudo kubectl get pods
Fazit
In diesem Artikel haben wir grundlegende Dinge über Pods und ihren Lebenszyklus gelernt. Wir haben die Schritte zur Erstellung unseres ersten Nginx-Pods in Kubernetes gesehen. Wir haben auch gesehen, wie die Details des Pods extrahiert werden können. Außerdem haben wir den Befehl zum Löschen des Pods erkundet.