Pods
Ein Pod ist die kleinste deploybare Einheit in Kubernetes. Er kapselt einen oder mehrere Container, die sich Netzwerk und Storage teilen.
Pod starten
kubectl run nginx --image=nginx
kubectl get pods
kubectl get pods -o wide # mit Node und IP
kubectl describe pod/nginx
kubectl logs pod/nginx
kubectl exec -it pod/nginx -- bash
Pod löschen
kubectl delete pod/nginx
Ein Pod, der direkt mit kubectl run erstellt wurde, wird nicht automatisch neu gestartet. Für automatischen Neustart → Deployment verwenden.
Pod Manifest
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.27
ports:
- containerPort: 80
resources:
limits:
memory: 128Mi
cpu: 250m
requests:
memory: 64Mi
cpu: 125m
kubectl apply -f nginx-pod.yaml
kubectl get pod/nginx
kubectl delete -f nginx-pod.yaml
Pod Lebenszyklus
| Status | Bedeutung |
|---|---|
| Pending | Pod wartet auf Zuweisung zu einem Node |
| Running | Container läuft |
| Succeeded | Alle Container erfolgreich beendet |
| Failed | Mindestens ein Container mit Fehler beendet |
| CrashLoopBackOff | Container startet immer wieder neu |
Mehrere Container in einem Pod
Container in einem Pod kommunizieren über localhost:
spec:
containers:
- name: app
image: myapp:1.0
- name: sidecar
image: fluentd:latest