Anwendungen über Container bereitstellen

Pods und Deployments in Kubernetes verstehen

| Autor: Thomas Joos

Container erleichtern den Betrieb von Anwendungen (Bild von Markus Distelrath auf Pixabay)
Container erleichtern den Betrieb von Anwendungen (Bild von Markus Distelrath auf Pixabay) (Container erleichtern den Betrieb von Anwendungen (Bild von Markus Distelrath auf Pixabay))

Wenn Entwickler ihre Anwendungen als Container bereitstellen, werden in den meisten Fällen Microservices genutzt. Diese werden in Kubernetes nicht einfach als Container bereitgestellt, sondern auf Basis einer Konstruktion aus Pods und Deployments. Wir zeigen in diesem Beitrag, um was es sich bei Pods und Deployments handelt.

Pods sind eine wichtige Grundlage in Kubernetes. Sie stellen einen Rahmen dar, über den die einzelnen Container über Kubernetes zur Verfügung gestellt werden. Pods sind also die Basis, um Container in Kubernetes bereitzustellen und umschließen Container und die darin enthaltenen Applikationen und Microservices.

Pods enthalten wiederum Container, die über Kubernetes bereitgestellt werden. Pods selbst werden nicht direkt bereitgestellt, sondern über Deployments verteilt. Pods werden über eine YAML-Datei definiert. 

Deployments sind eine Hülle um Pods.  Mit Deployments wird festgelegt wie viele Instanzen eines Pods bereitgestellt werden sollen.  Auch das Updateverhalten der Container und Pods wird hier gesteuert.

Über DaemonSets kann wiederum festgelegt werden, wo Pods auf einem Cluster positioniert werden sollen. So lassen sich zum Beispiel Pods über DaemonSets auf allen Knoten (Nodes) eines Containers bereitstellen. Beim Neustart eines Pods und dessen Container wird in Kubernetes auch eine neue ID bereitgestellt. Das kann über Daemonsets aber entsprechend konfigurieren.