Kubernetes---资源控制器之DaemonSet、Job和CronJob
2024-09-07 09:32:06
⒈DaemonSet介绍,什么是DaemonSet
DaemonSet 确保全部(或者一些)Node 上运行一个Pod的副本【注意主节点并不会参加调度】。当有 Node 加入集群时,也会为他们新增一个Pod。当有Node从集群移除时,这些Pod 也会被回收。删除DaemonSet将会删除它创建的所有Pod
使用DaemonSet的一些典型用法:
·运行集群存储 daemon,例如在每个Node 上运行glusterd、ceph
·在每个Node 上运行日志收集 daemon,例如fluentd、logstash
·在每个Node 上运行监控daemon,例如Prometheus Node Exporter、collectd、Datadog代理、New Relic 代理,或Ganglia gmond
⒉DaemonSet资源文件示例
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: deamonset-example
labels:
app: daemonset
spec:
selector:
matchLabels:
name: deamonset-example
template:
metadata:
1abels:
name: deamonset-example
spec:
containers:
- name: daemonset-example
image: fanqisoft/myapp:v1
⒊Job介绍,什么是Job
Job负责批处理任务,即仅执行一次的任务,它保证批处理任务的一个或多个Pod成功结束
特殊说明
·spec.template格式同Pod
·RestartPolicy仅支持Never或OnFailure
·单个Pod时,默认Pod成功运行后Job即结束·
.spec.completions 标志Job结束需要成功运行的Pod个数,默认为1·
.spec.parallelism 标志并行运行的Pod的个数,默认为1
·spec.activeDeadlineseconds标志失败Pod的重试最大时间,超过这个时间不会继续重试
⒋Job资源文件示例
apiVersion: batch/v1
kind: Job
metadata:
name:pi
spec:
template:
metadata:
name:pi
spec:
containers:
- name: pi
image: perl
command: ["per1","-Mbignum=bpi","-wle","print bpi(2000)"]
restartPolicy: Never
⒌CronJob
CronJob管理基于时间的Job,即:
·在给定时间点只运行一次
·周期性地在给定时间点运行
使用条件:当前使用的Kubernetes 集群,版本>=1.8(对CronJob)
典型的用法如下所示:
·在给定的时间点调度Job运行
·创建周期性运行的Job,例如:数据库备份、发送邮件
⒍CronJob Spec
·spec.template格式同Pod
·RestartPolicy仅支持Never或OnFailure
·单个Pod时,默认Pod成功运行后Job即结束·
.spec.completions标志Job结束需要成功运行的Pod个数,默认为1·
.spec.parallelism 标志并行运行的Pod的个数,默认为1
·spec.activeDeadlineSeconds 标志失败Pod的重试最大时间,超过这个时间不会继续重试
.spec.schedule:调度,必需字段,指定任务运行周期,格式同 Cron·
.spec.jobTemplate:Job模板,必需字段,指定需要运行的任务,格式同Job
.spec.startingDeadlineSeconds:启动Job的期限(秒级别),该字段是可选的。如果因为任何原因而错过了被调度的时间,那么错过执行时间的Job将被认为是失败的。如果没有指定,则没有期限.spec.concurrencyPolicy:并发策略,该字段也是可选的。它指定了如何处理被 Cron Job创建的Job的并发执行。只允许指定下面策略中的一种:
Allow(默认):允许并发运行Job
Forbid:禁止并发运行,如果前一个还没有完成,则直接跳过下一个
Replace:取消当前正在运行的Job,用一个新的来替换
注意,当前策略只能应用于同一个CronJob创建的Job。如果存在多个Cron Job,它们创建的Job之间总是允许并发运行。
.spec.suspend:挂起,该字段也是可选的。如果设置为true,后续所有执行都会被挂起。它对已经开始执行的Job不起作用。默认值为false。
.spec.successfulJobsHistoryLimit和.spec.failed]obsHistoryLimit:历史限制,是可选的字段。它们指定了可以保留多少完成和失败的Job。默认情况下,它们分别设置为3和1。设置限制的值为e,相关类型的Job完成后将不会被保留。
⒎CronJob资源文件示例
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: he11o
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox
args:
- /bin/sh
- -c
- date;echo Hello from the Kubernetes cluster
restartPolicy: OnFailure
⒏Cronjob本身的一些限制
创建Job操作应该是幂等的
CronJob并不太好去判断任务是否成功,CronJob通过创建Job去完成任务,Job成功与否可以判断,但CronJob无法链接到Job去获取成功与否,Cron只会定期的去创建Job,仅此而已。
最新文章
- JS控制TABLE表格在任意一行下面添加一行(有待完善)
- Caliburn实现MVVM模式的编程
- [转] Android Volley完全解析(一),初识Volley的基本用法
- PHP - 获取和设置include_path .
- 《python核心编程》读书笔记--第16章 网络编程
- (1)搭建opencv-android环境
- Javascript Basic Operation Extraction
- POJ 1222 EXTENDED LIGHTS OUT(翻转+二维开关问题)
- Linux命令之文件与用户权限
- [置顶] oracle 快速查询数据库各种信息、及转换对应java代码
- 17.4.3 使用MulticastSocket实现多点广播(5)
- 高精度模板 Luogu P1932 A+B &; A-B &; A*B &; A/B Problem
- java-js知识库之一——canvas绘制9*9乘法表
- ESP32 I2S
- github使用指南(2015年3月23日更新了本地创建仓库再推送到remote仓库的使用方法)
- python 全栈开发,Day122(人工智能初识,百度AI)
- 《Android进阶之光》--多线程编程
- Selenium--调用js,对话框处理 (python)
- ZOJ 3456 Traveler Nobita 最小生成树
- php开启与关闭错误提示