Ressourcentypen
In Kubernetes sind Ressourcentypen die grundlegenden Objekte, mit denen du den gewünschten Zustand deines Clusters beschreibst. Jede Ressource wird über die Kubernetes API definiert und ist in der Regel als YAML- oder JSON-Manifest angelegt. Sie beschreiben was im Cluster existieren soll (z. B. Pods, Services) und wie es konfiguriert ist.
Man unterscheidet dabei grob drei Kategorien:
- Workload-Ressourcen – beschreiben laufende Anwendungen und Jobs
- Beispiele:
- Pod (kleinste ausführbare Einheit, enthält Container)
- Deployment (verwaltet mehrere Pods, sorgt für Updates und Skalierung)
- StatefulSet (für zustandsbehaftete Anwendungen wie Datenbanken)
- DaemonSet, Job, CronJob
- Beispiele:
- Service & Networking-Ressourcen – regeln Erreichbarkeit und Kommunikation
- Beispiele:
- Service (stabile Netzwerkschnittstelle für Pods)
- Ingress / IngressRoute (HTTP/HTTPS-Routing von außen)
- Endpoint, NetworkPolicy
- Beispiele:
- Konfigurations- & Speicherressourcen – enthalten Einstellungen oder Daten
- Beispiele:
- ConfigMap (Konfigurationswerte als Key-Value)
- Secret (vertrauliche Daten, z. B. Passwörter, TLS-Zertifikate)
- PersistentVolume / PersistentVolumeClaim (persistente Speicherung)
- Beispiele:
Jede Ressource wird durch drei Kerninformationen definiert:
- apiVersion – API-Gruppe und Version, z. B.
apps/v1
- kind – der Ressourcentyp, z. B.
Deployment
- metadata & spec – Name, Labels, Namespace und die gewünschte Konfiguration
Kubernetes sorgt mit dem Controller-Loop dafür, dass der tatsächliche Zustand der Ressourcen immer dem gewünschten Zustand entspricht – ganz gleich, ob es um Container, Netzwerke oder Speicher geht.