⒈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,仅此而已。

Kubernetes---资源控制器之DaemonSet、Job和CronJob的更多相关文章

  1. 十六、资源控制器之DaemonSet

    资源控制器之DaemonSet DaemonSet 确保全部(或者一些) Node上运行一个 Pod 的副本,当有 Node 加入集群时,也会为他们新增一个 Pod,当有 Node 从集群移除时,这些 ...

  2. kubernetes资源清单之DaemonSet

    什么是 DaemonSet? DaemonSet 确保全部(或者某些)节点上运行一个 Pod 的副本.当有节点加入集群时,也会为他们新增一个 Pod . 当有节点从集群移除时,这些 Pod 也会被回收 ...

  3. Kubernetes的pod控制器之DaemonSet

    DaemonSet 顶级参数介绍 [root@master manifests]# kubectl explain ds KIND: DaemonSet VERSION: extensions/v1b ...

  4. kubernetes控制器之DaemonSet

    转载于https://blog.csdn.net/bbwangj/article/details/82867472 什么是 DaemonSet? DaemonSet 确保全部(或者一些)Node 上运 ...

  5. kubernetes学习控制器之StatefulSet控制器

    StatefulSet介绍 一.StatefulSet概述 StatefulSet是用来管理stateful(有状态)应用的StatefulSet管理Pod时,确保Pod有一个按序增长的ID与Depl ...

  6. Kubernetes的控制器之Deployment的定义

    Deploy 的控制器定义参数介绍 [root@master manifests]# kubectl explain deploy KIND: Deployment VERSION: extensio ...

  7. 十四、资源控制器之RS

    RC (ReplicationController )主要的作用就是用来确保容器应用的副本数始终保持在用户定义的副本数 .即如果有容器异常退出,会自动创建新的 Pod 来替代:而如果异常多出来的容器也 ...

  8. 十五、资源控制之Deployment

    资源控制器之Deployment Deployment 为 Pod 和 ReplicaSet 提供了一个声明式定义(declarative)方法,用来替代以前的ReplicationControlle ...

  9. Kubernetes资源与对象简述

    资料 k8s基本对象概念 背景 资源和对象   Kubernetes 中的所有内容都被抽象为"资源",如 Pod.Service.Node 等都是资源."对象" ...

随机推荐

  1. P1169 [ZJOI2007]棋盘制作——悬线法

    ---恢复内容开始--- 给你一个矩阵,选出最大的棋盘,棋盘的要求是黑白相间(01不能相邻),求出最大的正方形和矩形棋盘的面积: 数据n,m<=2000; 这个一看就可能是n2DP,但是写不出. ...

  2. 字典-Python基础前传(9)

    (一)Python中为什么要有字典 jacky说科学存在的逻辑只有两个: 1.解释问题 2.解决问题 我们明白了科学的逻辑,我们理解任何的知识和技能,都是很简单的 之前jacky跟大家说list因为太 ...

  3. CF1030C

    CF1030C 题意: 给你一个数字,问能否拆分成k段,使得每一段的每一位数字相加结果相等. 解法: 考虑数位DP. 暴力按位考虑每一位是否满足条件 CODE: #include<cstdio& ...

  4. intle官方手册下载

    如题:https://software.intel.com/en-us/articles/intel-sdm#three-volume 方便哪些不会怎么搜索的同学吧. 链接: https://pan. ...

  5. 冲刺阶段——Day4

    [今日内容] 完成对登陆成功后输入数据界面的设计,以及对Jswing组件功能的正确使用 布局类代码(布局部分是该类其中的一个部分,下述代码没有构成完整的类) public class NewGold ...

  6. js中那些方法不改变原来的数组对象

    一.map方法 function fuzzyPlural(single) { var result = single.replace(/o/g, 'e'); //replace也不会修改原来数组的值, ...

  7. linux设置脚本开机自启

    由于在centos7中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权 chmod +x /etc/rc.d/rc.local 赋予脚本可执行权限假设/opt/script/ ...

  8. 文件上传对servlet的要求

    request.getParamter(String name)方法不能再使用了 需要使用request.getInputStream()获取输入流对象然后在进行读取数据 解析数据 ServletIn ...

  9. java批量修改指定目录下的文件名

    package io; import java.io.File; import java.io.IOException; /** * @Auther: Code * @Date: 2018/9/9 1 ...

  10. Qt编写自定义控件29-颜色选取面板

    一.前言 这个控件主要是模仿QColorDialog对话框中的颜色选取面板,提供一个十字形状的标识器,鼠标按下开始选取颜色,移动到哪就选择该处的颜色值,对应右侧颜色条放大显示,本控件的难点就是如何绘制 ...