This document describes how to select different types of workloads to run your services in an elastic cluster.
- Elastic clusters do not have nodes. Workloads allocate resources for each pod based on parameter settings when they are created. For more information, please see Specifying Resource Specifications.
- To create and manage Kubernetes objects using a YAML file, specify annotations. For more information, please see Annotation Description.
A Deployment declares the pod template and pod running policies. It is used to deploy stateless applications. You can specify the number of replicas, scheduling policy, and update policy for pods running in the Deployment as needed.
A StatefulSet is used to manage stateful applications. A Pod created by a StatefulSet has a persistent identifier that is created according to the specifications. The identifier will be retained after the Pod is migrated, terminated, or restarted. When using persistent storage, you can map storage volumes to identifiers. If your application does not require any persistent identifier, we recommend that you use a Deployment to deploy the application.
A Job creates one or more pods and ensures that these pods run according to specified rules until they are terminated. Jobs can be used in many scenarios, such as batch computing and data analysis. You can specify the number of repeated runs, concurrency, and restart policy as required.
A Job will keep existing pods and will not create new pods after it is complete. You can view the logs of completed pods in "Logs". Deleting a Job will clean up the pods it created as well as the logs of those pods.
A CronJob object is similar to a line in a crontab (cron table) file. It periodically runs a Job according to the specified schedule. For more information about the format, please see the Cron documentation.
The format of a Cron is as follows: