|
| 1 | +--- |
| 2 | +title: Pods |
| 3 | +content_type: concept |
| 4 | +weight: 10 |
| 5 | +no_list: true |
| 6 | +card: |
| 7 | + name: concepts |
| 8 | + weight: 60 |
| 9 | +--- |
| 10 | + |
| 11 | +<!-- overview --> |
| 12 | + |
| 13 | +_Pods_ sind die kleinsten einsetzbaren Einheiten, die in Kubernetes |
| 14 | +erstellt und verwaltet werden können. |
| 15 | + |
| 16 | +Ein _Pod_ (übersetzt Gruppe/Schote, wie z. B. eine Gruppe von Walen oder eine |
| 17 | +Erbsenschote) ist eine Gruppe von einem oder mehreren |
| 18 | +{{< glossary_tooltip text="Containern" term_id="container" >}} mit gemeinsam |
| 19 | +genutzten Speicher- und Netzwerkressourcen und einer Spezifikation für die |
| 20 | +Ausführung der Container. Die Ressourcen eines Pods befinden sich immer auf dem |
| 21 | +gleichen (virtuellen) Server, werden gemeinsam geplant und in einem |
| 22 | +gemeinsamen Kontext ausgeführt. Ein Pod modelliert einen anwendungsspezifischen |
| 23 | +"logischen Server": Er enthält eine oder mehrere containerisierte Anwendungen, |
| 24 | +die relativ stark voneinander abhängen. |
| 25 | +In Nicht-Cloud-Kontexten sind Anwendungen, die auf |
| 26 | +demselben physischen oder virtuellen Server ausgeführt werden, vergleichbar zu |
| 27 | +Cloud-Anwendungen, die auf demselben logischen Server ausgeführt werden. |
| 28 | + |
| 29 | +Ein Pod kann neben Anwendungs-Containern auch sogenannte |
| 30 | +[Initialisierungs-Container](/docs/concepts/workloads/pods/init-containers/) |
| 31 | +enthalten, die beim Starten des Pods ausgeführt werden. |
| 32 | +Es können auch |
| 33 | +kurzlebige/[ephemere Container](/docs/concepts/workloads/pods/ephemeral-containers/) |
| 34 | +zum Debuggen gestartet werden, wenn dies der Cluster anbietet. |
| 35 | + |
| 36 | +<!-- body --> |
| 37 | + |
| 38 | +## Was ist ein Pod? |
| 39 | + |
| 40 | +{{< note >}} |
| 41 | +Obwohl Kubernetes abgesehen von [Docker](https://www.docker.com/) auch andere |
| 42 | +{{<glossary_tooltip text="Container-Laufzeitumgebungen" |
| 43 | +term_id="container-runtime">}} unterstützt, ist Docker am bekanntesten und |
| 44 | + es ist hilfreich, Pods mit der Terminologie von Docker zu beschreiben. |
| 45 | +{{< /note >}} |
| 46 | + |
| 47 | +Der gemeinsame Kontext eines Pods besteht aus einer Reihe von Linux-Namespaces, |
| 48 | +Cgroups und möglicherweise anderen Aspekten der Isolation, also die gleichen |
| 49 | +Dinge, die einen Dockercontainer isolieren. Innerhalb des Kontexts eines Pods |
| 50 | +können die einzelnen Anwendungen weitere Unterisolierungen haben. |
| 51 | + |
| 52 | +Im Sinne von Docker-Konzepten ähnelt ein Pod einer Gruppe von Docker-Containern, |
| 53 | +die gemeinsame Namespaces und Dateisystem-Volumes nutzen. |
| 54 | + |
| 55 | +## Pods verwenden |
| 56 | + |
| 57 | +Normalerweise müssen keine Pods erzeugt werden, auch keine Singleton-Pods. |
| 58 | +Stattdessen werden sie mit Workload-Ressourcen wie {{<glossary_tooltip |
| 59 | +text="Deployment" term_id="deployment">}} oder {{<glossary_tooltip |
| 60 | +text="Job" term_id="job">}} erzeugt. Für Pods, die von einem Systemzustand |
| 61 | +abhängen, ist die Nutzung von {{<glossary_tooltip text="StatefulSet" |
| 62 | +term_id="statefulset">}}-Ressourcen zu erwägen. |
| 63 | + |
| 64 | +Pods in einem Kubernetes-Cluster werden hauptsächlich auf zwei Arten verwendet: |
| 65 | + |
| 66 | +* **Pods, die einen einzelnen Container ausführen**. Das |
| 67 | +"Ein-Container-per-Pod"-Modell ist der häufigste Kubernetes-Anwendungsfall. In |
| 68 | +diesem Fall kannst du dir einen einen Pod als einen Behälter vorstellen, der einen |
| 69 | +einzelnen Container enthält; Kubernetes verwaltet die Pods anstatt die |
| 70 | +Container direkt zu verwalten. |
| 71 | +* **Pods, in denen mehrere Container ausgeführt werden, die zusammenarbeiten |
| 72 | +müssen**. Wenn eine Softwareanwendung aus co-lokaliserten Containern besteht, |
| 73 | +die sich gemeinsame Ressourcen teilen und stark voneinander abhängen, kann ein |
| 74 | +Pod die Container verkapseln. |
| 75 | +Diese Container bilden eine einzelne zusammenhängende |
| 76 | +Serviceeinheit, z. B. ein Container, der Daten in einem gemeinsam genutzten |
| 77 | +Volume öffentlich verfügbar macht, während ein separater _Sidecar_-Container |
| 78 | +die Daten aktualisiert. Der Pod fasst die Container, die Speicherressourcen |
| 79 | +und eine kurzlebiges Netzwerk-Identität als eine Einheit zusammen. |
| 80 | + |
| 81 | +{{< note >}} |
| 82 | +Das Gruppieren mehrerer gemeinsam lokalisierter und gemeinsam verwalteter |
| 83 | +Container in einem einzigen Pod ist ein relativ fortgeschrittener |
| 84 | +Anwendungsfall. Du solltest diese Architektur nur in bestimmten Fällen |
| 85 | +verwenden, wenn deine Container stark voneinander abhängen. |
| 86 | +{{< /note >}} |
| 87 | + |
| 88 | +Jeder Pod sollte eine einzelne Instanz einer gegebenen Anwendung ausführen. Wenn |
| 89 | +du deine Anwendung horizontal skalieren willst (um mehr Instanzen auszuführen |
| 90 | +und dadurch mehr Gesamtressourcen bereitstellen), solltest du mehrere Pods |
| 91 | +verwenden, einen für jede Instanz. |
| 92 | +In Kubernetes wird dies typischerweise als Replikation bezeichnet. |
| 93 | +Replizierte Pods werden normalerweise als eine Gruppe durch eine |
| 94 | +Workload-Ressource und deren |
| 95 | +{{<glossary_tooltip text="Controller" term_id="controller">}} erstellt |
| 96 | +und verwaltet. |
| 97 | + |
| 98 | +Der Abschnitt [Pods und Controller](#pods-und-controller) beschreibt, wie |
| 99 | +Kubernetes Workload-Ressourcen und deren Controller verwendet, um Anwendungen |
| 100 | +zu skalieren und zu heilen. |
| 101 | + |
| 102 | +### Wie Pods mehrere Container verwalten |
| 103 | + |
| 104 | +Pods unterstützen mehrere kooperierende Prozesse (als Container), die eine |
| 105 | +zusammenhängende Serviceeinheit bilden. Kubernetes plant und stellt automatisch |
| 106 | +sicher, dass sich die Container in einem Pod auf demselben physischen oder |
| 107 | +virtuellen Server im Cluster befinden. Die Container können Ressourcen und |
| 108 | +Abhängigkeiten gemeinsam nutzen, miteinander kommunizieren und |
| 109 | +ferner koordinieren wann und wie sie beendet werden. |
| 110 | + |
| 111 | +Zum Beispiel könntest du einen Container haben, der als Webserver für Dateien in |
| 112 | +einem gemeinsamen Volume arbeitet. Und ein separater "Sidecar" -Container |
| 113 | +aktualisiert die Daten von einer externen Datenquelle, siehe folgenden |
| 114 | +Abbildung: |
| 115 | + |
| 116 | +{{< figure src="/images/docs/pod.svg" alt="Pod-Beispieldiagramm" width="50%" >}} |
| 117 | + |
| 118 | +Einige Pods haben sowohl {{<glossary_tooltip text="Initialisierungs-Container" |
| 119 | +term_id="init-container">}} als auch {{<glossary_tooltip |
| 120 | +text="Anwendungs-Container" term_id="app-container">}}. |
| 121 | +Initialisierungs-Container werden gestartet und beendet bevor die |
| 122 | +Anwendungs-Container gestartet werden. |
| 123 | + |
| 124 | +Pods stellen standardmäßig zwei Arten von gemeinsam Ressourcen für die |
| 125 | +enthaltenen Container bereit: |
| 126 | +[Netzwerk](#pod-netzwerk) und [Speicher](#datenspeicherung-in-pods). |
| 127 | + |
| 128 | + |
| 129 | +## Mit Pods arbeiten |
| 130 | + |
| 131 | +Du wirst selten einzelne Pods direkt in Kubernetes erstellen, selbst |
| 132 | +Singleton-Pods. Das liegt daran, dass Pods als relativ kurzlebige |
| 133 | +Einweg-Einheiten konzipiert sind. Wann Ein Pod erstellt wird (entweder direkt |
| 134 | +von Ihnen oder indirekt von einem |
| 135 | +{{<glossary_tooltip text="Controller" term_id="controller">}}), wird die |
| 136 | +Ausführung auf einem {{<glossary_tooltip term_id="node">}} in Ihrem Cluster |
| 137 | +geplant. Der Pod bleibt auf diesem (virtuellen) Server, bis entweder der Pod die |
| 138 | +Ausführung beendet hat, das Pod-Objekt gelöscht wird, der Pod aufgrund |
| 139 | +mangelnder Ressourcen *evakuiert* wird oder oder der Node ausfällt. |
| 140 | + |
| 141 | +{{< note >}} |
| 142 | +Das Neustarten eines Containers in einem Pod sollte nicht mit dem Neustarten |
| 143 | +eines Pods verwechselt werden. Ein Pod ist kein Prozess, sondern eine Umgebung |
| 144 | +zur Ausführung von Containern. Ein Pod bleibt bestehen bis er gelöscht wird. |
| 145 | +{{< /note >}} |
| 146 | + |
| 147 | +Stelle beim Erstellen des Manifests für ein Pod-Objekt sicher, dass der |
| 148 | +angegebene Name ein gültiger |
| 149 | +[DNS-Subdomain-Name](/docs/concepts/overview/working-with-objects/names#dns-subdomain-names) |
| 150 | +ist. |
| 151 | + |
| 152 | +### Pods und Controller |
| 153 | + |
| 154 | +Mit Workload-Ressourcen kannst du mehrere Pods erstellen und verwalten. Ein |
| 155 | +Controller für die Ressource kümmert sich um Replikation, Roll-Out sowie |
| 156 | +automatische Wiederherstellung im Fall von versagenden Pods. Wenn beispielsweise ein Node |
| 157 | +ausfällt, bemerkt ein Controller, dass die Pods auf dem Node nicht mehr laufen |
| 158 | +und plant die Ausführung eines Ersatzpods auf einem funktionierenden Node. |
| 159 | +Hier sind einige Beispiele für Workload-Ressourcen, die einen oder mehrere Pods |
| 160 | +verwalten: |
| 161 | + |
| 162 | +* {{< glossary_tooltip text="Deployment" term_id="deployment" >}} |
| 163 | +* {{< glossary_tooltip text="StatefulSet" term_id="statefulset" >}} |
| 164 | +* {{< glossary_tooltip text="DaemonSet" term_id="daemonset" >}} |
| 165 | + |
| 166 | +### Pod Vorlagen |
| 167 | + |
| 168 | +Controller für |
| 169 | +{{<glossary_tooltip text="Workload" term_id="workload">}}-Ressourcen |
| 170 | +erstellen Pods von einer _Pod Vorlage_ und verwalten diese Pods für dich. |
| 171 | + |
| 172 | +Pod Vorlagen sind Spezifikationen zum Erstellen von Pods und sind in |
| 173 | +Workload-Ressourcen enthalten wie z. B. |
| 174 | +[Deployments](/docs/concepts/workloads/controllers/deployment/), |
| 175 | +[Jobs](/docs/concepts/workloads/controllers/job/), and |
| 176 | +[DaemonSets](/docs/concepts/workloads/controllers/daemonset/). |
| 177 | + |
| 178 | +Jeder Controller für eine Workload-Ressource verwendet die Pod Vorlage innerhalb |
| 179 | +des Workload-Objektes, um Pods zu erzeugen. Die Pod Vorlage ist Teil des |
| 180 | +gewünschten Zustands der Workload-Ressource, mit der du deine Anwendung |
| 181 | +ausgeführt hast. |
| 182 | + |
| 183 | +Das folgende Beispiel ist ein Manifest für einen einfachen Job mit einer |
| 184 | +`Vorlage`, die einen Container startet. Der Container in diesem Pod druckt |
| 185 | +eine Nachricht und pausiert dann. |
| 186 | + |
| 187 | +```yaml |
| 188 | +apiVersion: batch/v1 |
| 189 | +kind: Job |
| 190 | +metadata: |
| 191 | + name: hello |
| 192 | +spec: |
| 193 | + template: |
| 194 | + # Dies is the Pod Vorlage |
| 195 | + spec: |
| 196 | + containers: |
| 197 | + - name: hello |
| 198 | + image: busybox |
| 199 | + command: ['sh', '-c', 'echo "Hello, Kubernetes!" && sleep 3600'] |
| 200 | + restartPolicy: OnFailure |
| 201 | + # Die Pod Vorlage endet hier |
| 202 | +``` |
| 203 | +Das Ändern der Pod Vorlage oder der Wechsel zu einer neuen Pod Vorlage hat keine |
| 204 | +direkten Auswirkungen auf bereits existierende Pods. Wenn du die Pod Vorlage für |
| 205 | +eine Workload-Ressource änderst, dann muss diese Ressource die Ersatz-Pods |
| 206 | +erstellen, welche die aktualisierte Vorlage verwenden. |
| 207 | + |
| 208 | +Beispielsweise stellt der StatefulSet-Controller sicher, dass für jedes |
| 209 | +StatefulSet-Objekt die ausgeführten Pods mit der aktueller Pod Vorlage |
| 210 | +übereinstimmen. Wenn du das StatefulSet bearbeitest und die Vorlage änderst, |
| 211 | +beginnt das StatefulSet mit der Erstellung neuer Pods basierend auf der |
| 212 | +aktualisierten Vorlage. Schließlich werden alle alten Pods durch neue Pods |
| 213 | +ersetzt, und das Update ist abgeschlossen. |
| 214 | + |
| 215 | +Jede Workload-Ressource implementiert eigenen Regeln für die Umsetzung von |
| 216 | +Änderungen der Pod Vorlage. Wenn du mehr über StatefulSet erfahren möchtest, |
| 217 | +dann lese die Seite |
| 218 | +[Update-Strategien](/docs/tutorials/stateful-application/basic-stateful-set/#updating-statefulsets) |
| 219 | +im Tutorial StatefulSet Basics. |
| 220 | + |
| 221 | + |
| 222 | +Auf Nodes beobachtet oder verwaltet das |
| 223 | +{{< glossary_tooltip term_id="kubelet" text="Kubelet" >}} |
| 224 | +nicht direkt die Details zu Pod Vorlagen und Updates. Diese Details sind |
| 225 | +abstrahiert. Die Abstraktion und Trennung von Aufgaben vereinfacht die |
| 226 | +Systemsemantik und ermöglicht so das Verhalten des Clusters zu ändern ohne |
| 227 | +vorhandenen Code zu ändern. |
| 228 | + |
| 229 | +## Pod Update und Austausch |
| 230 | + |
| 231 | +Wie im vorherigen Abschnitt erwähnt, erstellt der Controller neue Pods basierend |
| 232 | +auf der aktualisierten Vorlage, wenn die Pod Vorlage für eine Workload-Ressource |
| 233 | +geändert wird anstatt die vorhandenen Pods zu aktualisieren oder zu patchen. |
| 234 | + |
| 235 | +Kubernetes hindert dich nicht daran, Pods direkt zu verwalten. Es ist möglich, |
| 236 | +einige Felder eines laufenden Pods zu aktualisieren. Allerdings haben |
| 237 | +Pod-Aktualisierungsvorgänge wie zum Beispiel |
| 238 | +[`patch`](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#patch-pod-v1-core), |
| 239 | +und |
| 240 | +[`replace`](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#replace-pod-v1-core) |
| 241 | +einige Einschränkungen: |
| 242 | + |
| 243 | +- Die meisten Metadaten zu einem Pod können nicht verändert werden. Zum Beispiel kannst |
| 244 | + du nicht die Felder `namespace`, `name`, `uid`, oder `creationTimestamp` |
| 245 | + ändern. Das `generation`-Feld muss eindeutig sein. Es werden nur Aktualisierungen |
| 246 | + akzeptiert, die den Wert des Feldes inkrementieren. |
| 247 | +- Wenn das Feld `metadata.deletionTimestamp` gesetzt ist, kann kein neuer |
| 248 | + Eintrag zur Liste `metadata.finalizers` hinzugefügt werden. |
| 249 | +- Pod-Updates dürfen keine Felder ändern, die Ausnahmen sind |
| 250 | + `spec.containers[*].image`, |
| 251 | + `spec.initContainers[*].image`,` spec.activeDeadlineSeconds` oder |
| 252 | + `spec.tolerations`. Für `spec.tolerations` kannnst du nur neue Einträge |
| 253 | + hinzufügen. |
| 254 | +- Für `spec.activeDeadlineSeconds` sind nur zwei Änderungen erlaubt: |
| 255 | + |
| 256 | + 1. ungesetztes Feld in eine positive Zahl |
| 257 | + 1. positive Zahl in eine kleinere positive Zahl, die nicht negativ ist |
| 258 | + |
| 259 | +## Gemeinsame Nutzung von Ressourcen und Kommunikation |
| 260 | + |
| 261 | +Pods ermöglichen den Datenaustausch und die Kommunikation zwischen den |
| 262 | +Containern, die im Pod enthalten sind. |
| 263 | + |
| 264 | +### Datenspeicherung in Pods |
| 265 | + |
| 266 | +Ein Pod kann eine Reihe von gemeinsam genutzten Speicher- |
| 267 | +{{<glossary_tooltip text="Volumes" term_id="volume">}} spezifizieren. Alle |
| 268 | +Container im Pod können auf die gemeinsamen Volumes zugreifen und dadurch Daten |
| 269 | +austauschen. Volumes ermöglichen auch, dass Daten ohne Verlust gespeichert |
| 270 | +werden, falls einer der Container neu gestartet werden muss. |
| 271 | +Im Kapitel [Datenspeicherung](/docs/concepts/storage/) findest du weitere |
| 272 | +Informationen, wie Kubernetes gemeinsam genutzten Speicher implementiert und |
| 273 | +Pods zur Verfügung stellt. |
| 274 | + |
| 275 | +### Pod-Netzwerk |
| 276 | + |
| 277 | +Jedem Pod wird für jede Adressenfamilie eine eindeutige IP-Adresse zugewiesen. |
| 278 | +Jeder Container in einem Pod nutzt den gemeinsamen Netzwerk-Namespace, |
| 279 | +einschließlich der IP-Adresse und der Ports. In einem Pod (und **nur** dann) |
| 280 | +können die Container, die zum Pod gehören, über `localhost` miteinander |
| 281 | +kommunizieren. Wenn Container in einem Pod mit Entitäten *außerhalb des Pods* |
| 282 | +kommunizieren, müssen sie koordinieren, wie die gemeinsam genutzten |
| 283 | +Netzwerkressourcen (z. B. Ports) verwenden werden. Innerhalb eines Pods teilen |
| 284 | +sich Container eine IP-Adresse und eine Reihe von Ports und können sich |
| 285 | +gegenseitig über `localhost` finden. Die Container in einem Pod können auch die |
| 286 | +üblichen Kommunikationsverfahren zwischen Prozessen nutzen, wie z. B. |
| 287 | +SystemV-Semaphoren oder "POSIX Shared Memory". Container in verschiedenen Pods |
| 288 | +haben unterschiedliche IP-Adressen und können nicht per IPC ohne |
| 289 | +[spezielle Konfiguration](/docs/concepts/policy/pod-security-policy/) |
| 290 | +kommunizieren. Container, die mit einem Container in einem anderen Pod |
| 291 | +interagieren möchten, müssen IP Netzwerke verwenden. |
| 292 | + |
| 293 | +Für die Container innerhalb eines Pods stimmt der "hostname" mit dem |
| 294 | +konfigurierten `Namen` des Pods überein. Mehr dazu im Kapitel |
| 295 | +[Netzwerke](/docs/concepts/cluster-administration/networking/). |
| 296 | + |
| 297 | +## Privilegierter Modus für Container |
| 298 | + |
| 299 | +Jeder Container in einem Pod kann den privilegierten Modus aktivieren, indem |
| 300 | +das Flag `privileged` im |
| 301 | +[Sicherheitskontext](/docs/tasks/configure-pod-container/security-context/) |
| 302 | +der Container-Spezifikation verwendet wird. |
| 303 | +Dies ist nützlich für Container, die Verwaltungsfunktionen des Betriebssystems |
| 304 | +verwenden möchten, z. B. das Manipulieren des Netzwerk-Stacks oder den Zugriff |
| 305 | +auf Hardware. Prozesse innerhalb eines privilegierten Containers erhalten fast |
| 306 | +die gleichen Rechte wie sie Prozessen außerhalb eines Containers zur Verfügung |
| 307 | +stehen. |
| 308 | + |
| 309 | +{{< note >}} |
| 310 | +Ihre |
| 311 | +{{<glossary_tooltip text="Container-Umgebung" term_id="container-runtime">}} |
| 312 | +muss das Konzept eines privilegierten Containers unterstützen, damit diese |
| 313 | +Einstellung relevant ist. |
| 314 | +{{< /note >}} |
| 315 | + |
| 316 | + |
| 317 | +## Statische Pods |
| 318 | + |
| 319 | +_Statische Pods_ werden direkt vom Kubelet-Daemon auf einem bestimmten Node |
| 320 | +verwaltet ohne dass sie vom |
| 321 | +{{<glossary_tooltip text="API Server" term_id="kube-apiserver">}} überwacht |
| 322 | +werden. |
| 323 | + |
| 324 | +Die meisten Pods werden von der Kontrollebene verwaltet (z. B. |
| 325 | +{{< glossary_tooltip text="Deployment" term_id="deployment" >}}). Aber für |
| 326 | +statische Pods überwacht das Kubelet jeden statischen Pod direkt (und startet |
| 327 | +ihn neu, wenn er ausfällt). |
| 328 | + |
| 329 | +Statische Pods sind immer an ein {{<glossary_tooltip term_id="kubelet">}} auf |
| 330 | +einem bestimmten Node gebunden. Der Hauptanwendungsfall für statische Pods |
| 331 | +besteht darin, eine selbst gehostete Steuerebene auszuführen. Mit anderen |
| 332 | +Worten: Das Kubelet dient zur Überwachung der einzelnen |
| 333 | +[Komponenten der Kontrollebene](/docs/concepts/overview/components/#control-plane-components). |
| 334 | + |
| 335 | +Das Kubelet versucht automatisch auf dem Kubernetes API-Server für jeden |
| 336 | +statischen Pod einen spiegelbildlichen Pod |
| 337 | +(im Englischen: {{<glossary_tooltip text="mirror pod" term_id="mirror-pod">}}) |
| 338 | +zu erstellen. |
| 339 | +Das bedeutet, dass die auf einem Node ausgeführten Pods auf dem API-Server |
| 340 | +sichtbar sind jedoch von dort nicht gesteuert werden können. |
| 341 | + |
| 342 | +## {{% heading "whatsnext" %}} |
| 343 | + |
| 344 | +* Verstehe den |
| 345 | + [Lebenszyklus eines Pods](/docs/concepts/workloads/pods/pod-lifecycle/). |
| 346 | +* Erfahre mehr über [RuntimeClass](/docs/concepts/containers/runtime-class/) |
| 347 | + und wie du damit verschiedene Pods mit unterschiedlichen |
| 348 | + Container-Laufzeitumgebungen konfigurieren kannst. |
| 349 | +* Mehr zum Thema |
| 350 | + [Restriktionen für die Verteilung von Pods](/docs/concepts/workloads/pods/pod-topology-spread-constraints/). |
| 351 | +* Lese |
| 352 | + [Pod-Disruption-Budget](/docs/concepts/workloads/pods/disruptions/) |
| 353 | + und wie du es verwenden kannst, um die Verfügbarkeit von Anwendungen bei |
| 354 | + Störungen zu verwalten. Die |
| 355 | + [Pod](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#pod-v1-core) |
| 356 | + -Objektdefinition beschreibt das Objekt im Detail. |
| 357 | +* [The Distributed System Toolkit: Patterns for Composite Containers](https://kubernetes.io/blog/2015/06/the-distributed-system-toolkit-patterns) |
| 358 | + erläutert allgemeine Layouts für Pods mit mehr als einem Container. |
| 359 | + |
| 360 | +Um den Hintergrund zu verstehen, warum Kubernetes eine gemeinsame Pod-API in |
| 361 | +andere Ressourcen, wie z. B. |
| 362 | +{{< glossary_tooltip text="StatefulSets" term_id="statefulset" >}} |
| 363 | +oder {{< glossary_tooltip text="Deployments" term_id="deployment" >}} einbindet, |
| 364 | +kannst du Artikel zu früheren Technologien lesen, unter anderem: |
| 365 | + * [Aurora](https://aurora.apache.org/documentation/latest/reference/configuration/#job-schema) |
| 366 | + * [Borg](https://research.google.com/pubs/pub43438.html) |
| 367 | + * [Marathon](https://mesosphere.github.io/marathon/docs/rest-api.html) |
| 368 | + * [Omega](https://research.google/pubs/pub41684/) |
| 369 | + * [Tupperware](https://engineering.fb.com/data-center-engineering/tupperware/). |
0 commit comments