Definitions

Kubernetes is a tool that allows you to run workloads in a cluster of computers called nodes. It automates deployment, scaling and management of containerized applications [1].

Workloads are abstracted as Pods, the most atomical element of the Kubernetes architecture, that can group one or more containers.

Objects in Kubernetes are typically described in yaml files. Each object has the required properties apiVersion, kind, metadata and spec [2].

While pods can be run directly on the cluster is likely that based on the workload use case one of the following resource will be used.

When a reliable and scalable application is needed Deployment and ReplicaSet will be used to describe the state of the application and the number of replica Pods desired. A StatefulSet is used when a stateful application is desired. A DeamonSet will make sure a Pod with the desired spec will be available on all nodes. For workloads that need to be executed once a Job is defined that allows specifying the number of completions and parallelism. Finally for workloads that need to be scheduled to run at specific time intervals a CronJob is defined.

[1] https://kubernetes.io/

[2] https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields

Last updated

Was this helpful?