@@ -9,61 +9,68 @@ no_list: true
9
9
{{< glossary_definition term_id="workload" length="short" >}}
10
10
Whether your workload is a single component or several that work together, on Kubernetes you run
11
11
it inside a set of [ _ pods_ ] ( /docs/concepts/workloads/pods ) .
12
- In Kubernetes, a ` Pod ` represents a set of running
12
+ In Kubernetes, a Pod represents a set of running
13
13
{{< glossary_tooltip text="containers" term_id="container" >}} on your cluster.
14
14
15
15
Kubernetes pods have a [ defined lifecycle] ( /docs/concepts/workloads/pods/pod-lifecycle/ ) .
16
16
For example, once a pod is running in your cluster then a critical fault on the
17
17
{{< glossary_tooltip text="node" term_id="node" >}} where that pod is running means that
18
18
all the pods on that node fail. Kubernetes treats that level of failure as final: you
19
- would need to create a new ` Pod ` to recover, even if the node later becomes healthy.
19
+ would need to create a new Pod to recover, even if the node later becomes healthy.
20
20
21
- However, to make life considerably easier, you don't need to manage each ` Pod ` directly.
21
+ However, to make life considerably easier, you don't need to manage each Pod directly.
22
22
Instead, you can use _ workload resources_ that manage a set of pods on your behalf.
23
23
These resources configure {{< glossary_tooltip term_id="controller" text="controllers" >}}
24
24
that make sure the right number of the right kind of pod are running, to match the state
25
25
you specified.
26
26
27
27
Kubernetes provides several built-in workload resources:
28
28
29
- * [ ` Deployment ` ] ( /docs/concepts/workloads/controllers/deployment/ ) and [ ` ReplicaSet ` ] ( /docs/concepts/workloads/controllers/replicaset/ )
29
+ * [ Deployment] ( /docs/concepts/workloads/controllers/deployment/ ) and [ ReplicaSet] ( /docs/concepts/workloads/controllers/replicaset/ )
30
30
(replacing the legacy resource
31
31
{{< glossary_tooltip text="ReplicationController" term_id="replication-controller" >}}).
32
- ` Deployment ` is a good fit for managing a stateless application workload on your cluster,
33
- where any ` Pod ` in the ` Deployment ` is interchangeable and can be replaced if needed.
34
- * [ ` StatefulSet ` ] ( /docs/concepts/workloads/controllers/statefulset/ ) lets you
32
+ Deployment is a good fit for managing a stateless application workload on your cluster,
33
+ where any Pod in the Deployment is interchangeable and can be replaced if needed.
34
+ * [ StatefulSet] ( /docs/concepts/workloads/controllers/statefulset/ ) lets you
35
35
run one or more related Pods that do track state somehow. For example, if your workload
36
- records data persistently, you can run a ` StatefulSet ` that matches each ` Pod ` with a
37
- [ ` PersistentVolume ` ] ( /docs/concepts/storage/persistent-volumes/ ) . Your code, running in the
38
- ` Pods ` for that ` StatefulSet ` , can replicate data to other ` Pods ` in the same ` StatefulSet `
36
+ records data persistently, you can run a StatefulSet that matches each Pod with a
37
+ [ PersistentVolume] ( /docs/concepts/storage/persistent-volumes/ ) . Your code, running in the
38
+ Pods for that StatefulSet, can replicate data to other Pods in the same StatefulSet
39
39
to improve overall resilience.
40
- * [ ` DaemonSet ` ] ( /docs/concepts/workloads/controllers/daemonset/ ) defines ` Pods ` that provide
41
- node-local facilities. These might be fundamental to the operation of your cluster, such
42
- as a networking helper tool, or be part of an
43
- {{< glossary_tooltip text="add-on" term_id="addons" >}}.
44
- Every time you add a node to your cluster that matches the specification in a ` DaemonSet ` ,
45
- the control plane schedules a ` Pod ` for that ` DaemonSet ` onto the new node.
46
- * [ ` Job ` ] ( /docs/concepts/workloads/controllers/job/ ) and
47
- [ ` CronJob ` ] ( /docs/concepts/workloads/controllers/cron-jobs/ )
48
- define tasks that run to completion and then stop. Jobs represent one-off tasks, whereas
49
- ` CronJobs ` recur according to a schedule.
40
+ * [ DaemonSet] ( /docs/concepts/workloads/controllers/daemonset/ ) defines Pods that provide
41
+ facilities that are local to nodes.
42
+ Every time you add a node to your cluster that matches the specification in a DaemonSet,
43
+ the control plane schedules a Pod for that DaemonSet onto the new node.
44
+ Each pod in a DaemonSet performs a job similar to a system daemon on a classic Unix / POSIX
45
+ server. A DaemonSet might be fundamental to the operation of your cluster, such as
46
+ a plugin to run [ cluster networking] ( /docs/concepts/cluster-administration/networking/#how-to-implement-the-kubernetes-network-model ) ,
47
+ it might help you to manage the node,
48
+ or it could provide optional behavior that enhances the container platform you are running.
49
+ * [ Job] ( /docs/concepts/workloads/controllers/job/ ) and
50
+ [ CronJob] ( /docs/concepts/workloads/controllers/cron-jobs/ ) provide different ways to
51
+ define tasks that run to completion and then stop.
52
+ You can use a [ Job] ( /docs/concepts/workloads/controllers/job/ ) to
53
+ define a task that runs to completion, just once. You can use a
54
+ [ CronJob] ( /docs/concepts/workloads/controllers/cron-jobs/ ) to run
55
+ the same Job multiple times according a schedule.
50
56
51
57
In the wider Kubernetes ecosystem, you can find third-party workload resources that provide
52
58
additional behaviors. Using a
53
59
[ custom resource definition] ( /docs/concepts/extend-kubernetes/api-extension/custom-resources/ ) ,
54
60
you can add in a third-party workload resource if you want a specific behavior that's not part
55
- of Kubernetes' core. For example, if you wanted to run a group of ` Pods ` for your application but
61
+ of Kubernetes' core. For example, if you wanted to run a group of Pods for your application but
56
62
stop work unless _ all_ the Pods are available (perhaps for some high-throughput distributed task),
57
63
then you can implement or install an extension that does provide that feature.
58
64
59
65
## {{% heading "whatsnext" %}}
60
66
61
- As well as reading about each resource, you can learn about specific tasks that relate to them:
67
+ As well as reading about each API kind for workload management, you can read how to
68
+ do specific tasks:
62
69
63
- * [ Run a stateless application using a ` Deployment ` ] ( /docs/tasks/run-application/run-stateless-application-deployment/ )
70
+ * [ Run a stateless application using a Deployment] ( /docs/tasks/run-application/run-stateless-application-deployment/ )
64
71
* Run a stateful application either as a [ single instance] ( /docs/tasks/run-application/run-single-instance-stateful-application/ )
65
72
or as a [ replicated set] ( /docs/tasks/run-application/run-replicated-stateful-application/ )
66
- * [ Run automated tasks with a ` CronJob ` ] ( /docs/tasks/job/automated-tasks-with-cron-jobs/ )
73
+ * [ Run automated tasks with a CronJob] ( /docs/tasks/job/automated-tasks-with-cron-jobs/ )
67
74
68
75
To learn about Kubernetes' mechanisms for separating code from configuration,
69
76
visit [ Configuration] ( /docs/concepts/configuration/ ) .
@@ -76,6 +83,6 @@ for applications:
76
83
removes Jobs once a defined time has passed since they completed.
77
84
78
85
Once your application is running, you might want to make it available on the internet as
79
- a [ ` Service ` ] ( /docs/concepts/services-networking/service/ ) or, for web application only,
80
- using an [ ` Ingress ` ] ( /docs/concepts/services-networking/ingress ) .
86
+ a [ Service] ( /docs/concepts/services-networking/service/ ) or, for web application only,
87
+ using an [ Ingress] ( /docs/concepts/services-networking/ingress ) .
81
88
0 commit comments