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