Kubernetes 作业和部署之间有什么区别
What is difference between Kubernetes Jobs & Deployments
我看到 Kubernetes Job
和 Deployment
提供了非常相似的配置。两者都可以部署一个或多个 pods 具有一定的配置。所以我对这些问题几乎没有疑问:
- 在
Job
和 Deployment
中 pod 规格 .spec.template
是否不同?
Job
的 completions
和 Deployment
的 replicas
有什么区别?
- 如果命令 运行 在
Deployment
的唯一容器中并完成(没有服务器或守护进程容器),pod 将终止。这同样适用于 Job
。那么这两种资源的 pod 生命周期有何不同?
关于 spec.template:Job 和 Deployment 都包含类似的定义。参见:https://v1-21.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#podtemplate-v1-core
作业完成和并行性让您可以将任务拆分为子任务。参见 https://kubernetes.io/docs/concepts/workloads/controllers/job/#parallel-jobs , https://kubernetes.io/docs/tasks/job/indexed-parallel-processing-static/。部署中的副本不会提供此功能。
在 Deployment 中,Pod 的默认 restartPolicy 设置为 Always。在工作中:从不。作业并不意味着一旦容器退出就重新启动它。部署并不意味着退出。
Kubernetes 中的许多资源使用 Pod template。 Deployments
和 Jobs
都使用它,因为他们管理 Pods.
Controllers for workload resources create Pods from a pod template and manage those Pods on your behalf.
PodTemplates are specifications for creating Pods, and are included in workload resources such as Deployments, Jobs, and DaemonSets.
Deployments
和 Jobs
之间的主要区别在于它们如何处理终止的 Pod。 Deployment 旨在成为“服务”,例如它应该是 up-and-运行,因此它将尝试重新启动它管理的 Pods,以匹配所需的副本数。虽然作业旨在执行并成功终止。
我看到 Kubernetes Job
和 Deployment
提供了非常相似的配置。两者都可以部署一个或多个 pods 具有一定的配置。所以我对这些问题几乎没有疑问:
- 在
Job
和Deployment
中 pod 规格.spec.template
是否不同? Job
的completions
和Deployment
的replicas
有什么区别?- 如果命令 运行 在
Deployment
的唯一容器中并完成(没有服务器或守护进程容器),pod 将终止。这同样适用于Job
。那么这两种资源的 pod 生命周期有何不同?
关于 spec.template:Job 和 Deployment 都包含类似的定义。参见:https://v1-21.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#podtemplate-v1-core
作业完成和并行性让您可以将任务拆分为子任务。参见 https://kubernetes.io/docs/concepts/workloads/controllers/job/#parallel-jobs , https://kubernetes.io/docs/tasks/job/indexed-parallel-processing-static/。部署中的副本不会提供此功能。
在 Deployment 中,Pod 的默认 restartPolicy 设置为 Always。在工作中:从不。作业并不意味着一旦容器退出就重新启动它。部署并不意味着退出。
Kubernetes 中的许多资源使用 Pod template。 Deployments
和 Jobs
都使用它,因为他们管理 Pods.
Controllers for workload resources create Pods from a pod template and manage those Pods on your behalf.
PodTemplates are specifications for creating Pods, and are included in workload resources such as Deployments, Jobs, and DaemonSets.
Deployments
和 Jobs
之间的主要区别在于它们如何处理终止的 Pod。 Deployment 旨在成为“服务”,例如它应该是 up-and-运行,因此它将尝试重新启动它管理的 Pods,以匹配所需的副本数。虽然作业旨在执行并成功终止。