3.2 KiB
title | weight | description | no_list |
---|---|---|---|
Workloads | 50 | Understand Pods, the smallest deployable compute object in Kubernetes, and the higher-level abstractions that help you to run them. | true |
{{< glossary_definition term_id="workload" length="short" >}} Whether your workload is a single component or several that work together, on Kubernetes you run it inside a set of Pods. In Kubernetes, a Pod represents a set of running {{< glossary_tooltip text="containers" term_id="container" >}} on your cluster.
A Pod has a defined lifecycle. For example, once a Pod is running in your cluster then a critical failure on the {{< glossary_tooltip text="node" term_id="node" >}} where that Pod is running means that all the Pods on that node fail. Kubernetes treats that level of failure as final: you would need to create a new Pod even if the node later recovers.
However, to make life considerably easier, you don't need to manage each Pod directly. Instead, you can use workload resources that manage a set of Pods on your behalf. These resources configure {{< glossary_tooltip term_id="controller" text="controllers" >}} that make sure the right number of the right kind of Pod are running, to match the state you specified.
Those workload resources include:
- Deployment and ReplicaSet (replacing the legacy resource {{< glossary_tooltip text="ReplicationController" term_id="replication-controller" >}});
- StatefulSet;
- DaemonSet for running Pods that provide node-local facilities, such as a storage driver or network plugin;
- Job and CronJob for tasks that run to completion.
There are also two supporting concepts that you might find relevant:
- Garbage collection tidies up objects from your cluster after their owning resource has been removed.
- The time-to-live after finished controller removes Jobs once a defined time has passed since they completed.
{{% heading "whatsnext" %}}
As well as reading about each resource, you can learn about specific tasks that relate to them:
- Run a stateless application using a Deployment
- Run a stateful application either as a single instance or as a replicated set
- Run Automated Tasks with a CronJob
Once your application is running, you might want to make it available on the internet as a Service or, for web application only, using an Ingress.
You can also visit Configuration to learn about Kubernetes' mechanisms for separating code from configuration.