0

我看到 KubernetesJob提供Deployment了非常相似的配置。两者都可以部署一个或多个具有特定配置的 Pod。所以我对这些有几个疑问:

  • &中的吊舱规格是否.spec.template不同?JobDeployment
  • Job's completions& Deployment's有什么区别replicas
  • 如果命令在Deployment的唯一容器中运行并完成(没有服务器或守护进程容器),则 pod 将终止。这同样适用于 a Job。那么这两种资源中的 pod 生命周期有何不同呢?
4

2 回答 2

2

关于 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-jobshttps://kubernetes.io/docs/tasks/job/indexed-parallel-processing-static/。部署中的副本不会提供此功能。

在 Deployment 中,Pod 的默认 restartPolicy 设置为 Always。在工作中:从不。一个作业并不意味着一旦它退出就重新启动你的容器。部署并不意味着退出。

于 2021-08-24T11:52:43.423 回答
2

Kubernetes 中的许多资源都使用Pod 模板。两者都Deployments使用Jobs它,因为它们管理 Pod。

工作负载资源的控制器从 Pod 模板创建 Pod 并代表您管理这些 Pod。

PodTemplates 是用于创建 Pod 的规范,并且包含在工作负载资源中,例如 Deployment、Jobs 和 DaemonSet。

Deployments和之间的主要区别在于Jobs它们如何处理终止的 Pod。Deployment 旨在成为一种“服务”,例如它应该是启动并运行的,因此它将尝试重新启动它管理的 Pod,以匹配所需的副本数量。虽然 Job 旨在执行并成功终止。

于 2021-08-24T15:57:34.017 回答