Kubernetes in Aktion: Pods, Deployments und Services

Nachdem wir im ersten Teil die Grundlagen und Architektur von Kubernetes betrachtet haben, widmen wir uns nun den zentralen Bausteinen für den Betrieb von Anwendungen: Pods, Deployments und Services. Sie bilden die Grundlage für nahezu jede Kubernetes-Installation.


Pods – Die kleinste Einheit in Kubernetes

Ein Pod ist die kleinste ausführbare Einheit in Kubernetes und enthält einen oder mehrere Container, die sich:

  • Netzwerkressourcen (IP-Adresse, Ports)
  • Speicherressourcen (Volumes)
  • und Metadaten teilen.

Pods werden meist nicht direkt, sondern über Deployments erstellt und verwaltet, da Deployments Skalierung und Selbstheilung ermöglichen.


Deployments – Verwaltung und Skalierung von Pods

Ein Deployment beschreibt den gewünschten Zustand einer Anwendung, beispielsweise:

  • Welche Container-Images genutzt werden sollen
  • Wie viele Replikate der Anwendung laufen sollen
  • Welche Update-Strategie angewendet wird

Beispiel für ein einfaches Deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: webserver-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: webserver
  template:
    metadata:
      labels:
        app: webserver
    spec:
      containers:
      - name: webserver
        image: nginx:latest
        ports:
        - containerPort: 80

Dieses Deployment startet drei identische Pods mit einem NGINX-Webserver.


Services – Kommunikation innerhalb und außerhalb des Clusters

Ein Service sorgt für:

  • Stabile IP-Adressen für Pods, die sich dynamisch ändern können
  • Load-Balancing zwischen mehreren Replikaten
  • Zugriff von außen, falls gewünscht

Beispiel für einen Service:

apiVersion: v1
kind: Service
metadata:
  name: webserver-service
spec:
  selector:
    app: webserver
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: ClusterIP

Wichtige Service-Typen:

  • ClusterIP: Interner Zugriff im Cluster (Standard).
  • NodePort: Zugriff über einen Port auf allen Nodes.
  • LoadBalancer: Integration mit Cloud-Loadbalancern für externen Zugriff.

Zusammenspiel von Pods, Deployments und Services

  • Pods: Ausführungseinheit für Container.
  • Deployments: Verwalten Pods, Replikation und Updates.
  • Services: Ermöglichen Kommunikation und Load-Balancing.

Damit entsteht eine flexible, skalierbare Infrastruktur für Anwendungen.


Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert