Erstellen und Untersuchen eines Pods
Bevor wir loslegen, verstehen wir zunächst, wie YAML in Kubernetes funktioniert:
graph TB
A[YAML Config File] -->|Declares Desired State| B[Kubernetes API]
B -->|Creates/Manages| C[Running Containers]
D[kubectl CLI] -->|Reads| A
YAML-Dateien in Kubernetes fungieren als "Infrastructure as Code" (Infrastruktur als Code):
- Stellen Sie sich sie als eine "Speisekarte" vor, die Kubernetes mitteilt, was Sie möchten.
- Beschreiben den gewünschten Systemzustand in einem menschenlesbaren Format.
- Können für die Teamarbeit versioniert werden.
Lassen Sie uns unsere erste YAML-Datei erstellen. Erstellen Sie simple-pod.yaml
:
nano ~/project/simple-pod.yaml
Fügen Sie den folgenden Inhalt hinzu:
## --- Beginn der YAML-Datei ---
## 1. Teilen Sie Kubernetes mit, welche API-Version verwendet werden soll
apiVersion: v1
## 2. Deklarieren Sie, welche Art von Ressource Sie erstellen möchten
kind: Pod
## 3. Legen Sie die Metadaten für diese Ressource fest
metadata:
name: nginx-pod ## Name des Pods
labels: ## Labels helfen uns, Pods zu finden und zu organisieren
app: nginx
## 4. Definieren Sie, was der Pod enthalten soll
spec:
containers: ## Ein Pod kann einen oder mehrere Container ausführen
- name: nginx ## Name des Containers
image: nginx:latest ## Welches Container-Image verwendet werden soll
ports: ## Welche Ports freigegeben werden sollen
- containerPort: 80 ## Nginx verwendet standardmäßig Port 80
Die Struktur der YAML-Datei ist wie ein Baum:
Pod (Wurzel)
├── metadata (Zweig)
│ ├── name (Blatt)
│ └── labels (Blatt)
└── spec (Zweig)
└── containers (Zweig)
└── - name, image, ports (Blätter)
Erstellen Sie den Pod:
kubectl apply -f simple-pod.yaml ## -f bedeutet, aus einer Datei lesen
Dieser Befehl wird:
- Ihre YAML-Datei lesen.
- Sie an die Kubernetes-API senden.
- Kubernetes wird arbeiten, um den von Ihnen beschriebenen Zustand zu erreichen.
Überprüfen Sie die Erstellung des Pods:
kubectl get pods
Sie sollten Folgendes sehen:
NAME READY STATUS RESTARTS AGE
nginx-pod 1/1 Running 0 30s
Das "1/1" unter READY bedeutet, dass einer von einem Container im Pod bereit ist. "Running" unter STATUS bedeutet, dass Ihre erste YAML-Konfiguration funktioniert hat!
💡 Pro-Tipps:
- Die Einrückung in YAML ist von entscheidender Bedeutung - verwenden Sie Leerzeichen, keine Tabulatoren.
- Verwenden Sie
kubectl explain pod
, um die Felddokumentation anzuzeigen.
- Fügen Sie immer Kommentare hinzu, um die Wartbarkeit zu verbessern.
Um detaillierte Informationen über den Pod zu erhalten:
kubectl describe pod nginx-pod
Dieser Befehl liefert viele Informationen, darunter:
- Der Knoten, auf dem der Pod läuft.
- Die IP-Adresse des Pods.
- Die Container im Pod.
- Kürzlich aufgetretene Ereignisse im Zusammenhang mit dem Pod.
Diese Informationen sind für die Fehlersuche und das Verständnis des Zustands Ihrer Anwendung von entscheidender Bedeutung.