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.
Schreibe einen Kommentar