目录
1.Job
Job用于负责批处理任务,即仅执行一次的任务(例如数据库迁移,批处理脚本等),它保证批处理任务的一个或多个Pod成功运行到结束(与Linux基础中的at命令相似)。
1、spec.template格式同 Pod;
2、RestartPolicy仅支持Never或OnFailure;
3、单个Pod 时,默认Pod成功运行后Job 即结束;
4、spec.completions标志Job 结束需要成功运行的Pod个数,默认为1; 默认为1;
5、spec.parallelism标志并行运行的Pod的个数;
6、spec.activeDeadlineSeconds标志失败Pod的重试最大时间,超过这个时间不会继续重试;
架构: 1.Job Controller负责根据配置创建Pod 2.Job Controller 跟踪Job状态,根据配置及时重试Pod或者继续创建 3.Job Controller 会自动添加label来跟踪对应的pod,并根据配置并行或者串行创建pod
所有的 job都是一个controller,它会watch这个APl Server,我们每次提交一个Job的yaml都会经过 api-server传到ETCD里面去,然后Job Controller 会注册几个Handler(触发器),每当有添加、更新、删除等操作的时候,它会通过一个内存级的消息队列,发到 controller 里面。
通过Job Controller检查当前是否有运行的 pod,如果没有的话,通过 scale up把这个pod 创建出来|如果有的话,或者如果大于这个数&#x