Deployment
Deployments sind API Objekte
Ein Deployment ist ein API-Objekt, das eine replizierte Anwendung verwaltet, typischerweise durch das Ausführen von Pods ohne lokalen Zustand.
Ein Deployment definiert die gewünschte Konfiguration für die Anwendung, einschließlich der Anzahl der replizierten Pods, der verwendeten Container-Images und der Bereitstellungsstrategie. Anschließend überwacht das Deployment ständig den Zustand der Pods und stellt sicher, dass die tatsächlichen Pods im Cluster mit der gewünschten Konfiguration übereinstimmen.
Jede Replik wird durch einen Pod repräsentiert, und die Pods werden auf die Node eines Clusters verteilt. Dadurch wird sichergestellt, dass die Anwendung über die gesamte Clusterumgebung hinweg verfügbar ist und gleichmäßig auf die verfügbaren Ressourcen verteilt wird. Wenn ein Pod ausfällt oder gelöscht wird, startet das Deployment automatisch einen neuen Pod, um sicherzustellen, dass die gewünschte Anzahl von Repliken stets vorhanden ist.
Deployments sind besonders nützlich für Anwendungen, die skalieren müssen, um verschiedene Lastanforderungen zu erfüllen. Sie ermöglichen eine einfache Skalierung der Anwendung, indem die Anzahl der replizierten Pods entsprechend der aktuellen Last automatisch erhöht oder verringert wird.
Für Workloads, die einen lokalen Zustand erfordern, wie z.B. Datenbanken oder andere speicherintensive Anwendungen, ist ein StatefulSet möglicherweise die bessere Wahl. StatefulSets bieten Mechanismen zur Verwaltung von Pods mit persistierendem Speicher und garantieren die eindeutige Identität und den stabilen Netzwerkzugriff für jeden Pod.
Insgesamt bieten Deployments eine einfache und effektive Möglichkeit, replizierte Anwendungen in Kubernetes zu verwalten und sicherzustellen, dass sie kontinuierlich und zuverlässig ausgeführt werden. Sie sind ein zentrales Konzept für die Bereitstellung und Skalierung von Anwendungen in Kubernetes-Clustern.
Link zum offiziellen Glossar