使用 K8s 进行作业调度实战分享( 三 )

2)Pod 重启策略 RestartPolicy=onFailure
当 RestartPolicy=onFailure , Pod 发生非正常退出时 , Pod 会尝试重启 , 直到该 Pod 正常执行完成 , 此时 Job 就不会重新启动一个 Pod 执行了 , 如下:
$ kubectl get pod --namespace zdtp-namespaceNAME                READY   STATUS             RESTARTS   AGEzdtp-worker-5tbxw   0/1     CrashLoopBackOff   5          67s如何选择 K8s 调度策略?以上内容把 K8s 的调度方案与 Pod 的重启策略都研究了一番后 , 接下来就需要针对项目的调度需求选择合适的调度方式 。
1、增量同步 Worker
增量同步 Worker 会一直同步下去 , 中途不停止 , 这意味着 Pod 的重启策略必须为 RestartPolicy=Always , 那么这种方式只能选择 Deployment 调度或者直接创建 Pod 部署 , 但建议使用 Deployment , 官方已经说明了即使 Pod 副本为 1 , 依然建议使用 Deployment 进行部署 。
2、 全量同步 Worker
全量同步 Worker 在数据同步完就退出 , 看起来 Job 调度或者直接创建 Pod 部署都可以满足 , 但现阶段由于全量同步暂时没有记录同步进度 , 因此要求中途发生任何错误容器退出后都不能自动重启 , 目前的做法是当 Worker 执行过程中发生非正常退出时 , 需要用户自行删除已同步的资源 , 再手动启动 Worker 再次进行全量同步 。
因此 , Job 目前还还不适合调度 Worker Pod , 全量同步 Worker 现阶段只适合直接使用 Pod 进行部署 , 且需要设置 Pod 重启策略 RestartPolicy=Never 。




推荐阅读