EMZETT.
Login

Kubernetes-Objekte: Pod, Deployment, Service und ConfigMap

Kurz: In Kubernetes beschreibt man den Soll-Zustand in Objekten: Pods führen Container aus, Deployments halten sie am Laufen, Services machen sie erreichbar und ConfigMaps/Secrets liefern Konfiguration.

Genauer: Kubernetes (K8s) ist ein System, das Container auf vielen Rechnern verwaltet. Man beschreibt in YAML-Dateien, was laufen soll; Kubernetes sorgt dafür, dass der tatsächliche Zustand dem Soll-Zustand entspricht (Neustart bei Absturz, Verteilung, Skalierung).

Im Detail

Die wichtigsten Objekte

  • Pod: kleinste Einheit; ein oder mehrere Container, die sich Netzwerk und Speicher teilen. Pods sind kurzlebig.
  • Deployment: verwaltet Pods einer Anwendung: Anzahl der Replikate, Rolling Updates (schrittweise neue Version), Rollback.
  • Service: stabile Adresse und Lastverteilung für eine Gruppe von Pods (ClusterIP intern, NodePort/LoadBalancer extern).
  • Ingress: HTTP-Weiterleitung von außen (Domains, Pfade, TLS).
  • ConfigMap: Konfigurationswerte; Secret: sensible Werte (Base64-kodiert, besser mit externer Verschlüsselung).
  • Namespace: logische Trennung (dev, prod).
  • PersistentVolume/Claim: dauerhafter Speicher. StatefulSet für zustandsbehaftete Anwendungen (Datenbanken), Job/CronJob für Aufgaben.

Ein Beispiel

apiVersion: apps/v1
kind: Deployment
metadata:
  name: web
spec:
  replicas: 3
  selector:
    matchLabels: { app: web }
  template:
    metadata:
      labels: { app: web }
    spec:
      containers:
        - name: web
          image: meine-app:1.2.0
          ports: [{ containerPort: 3000 }]
          readinessProbe:
            httpGet: { path: /health, port: 3000 }
---
apiVersion: v1
kind: Service
metadata:
  name: web
spec:
  selector: { app: web }
  ports: [{ port: 80, targetPort: 3000 }]

kubectl apply -f datei.yaml, kubectl get pods, kubectl logs pod, kubectl describe pod, kubectl rollout undo deployment/web.

Wichtige Konzepte

Labels und Selektoren verbinden Objekte. Probes (Liveness/Readiness) prüfen die Gesundheit. Ressourcen-Limits (CPU, Speicher) verhindern, dass eine App alles verbraucht. Autoscaling (HPA) passt Replikate an die Last an. Deklarativ statt imperativ: Die YAML-Datei ist die Quelle der Wahrheit, am besten in Git (GitOps).

Einstieg und Einordnung

Zum Lernen: minikube, kind, k3s oder Docker Desktop lokal. Produktiv nutzt man verwaltete Dienste (GKE, EKS, AKS). K8s ist mächtig, aber komplex; für kleine Projekte genügen oft Docker Compose oder eine Plattform (Vercel, Fly.io). Lerne Container und Netzwerke zuerst.

Siehe auch: Kubernetes-Grundlagen, Docker Compose