zoukankan      html  css  js  c++  java
  • Kubernetes---资源控制器之DaemonSet、Job和CronJob

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

  • 相关阅读:
    序列JSON数据和四种AJAX操作方式
    jquery.validate和jquery.form.js实现表单提交
    JQuery Validate使用总结1:
    HOWTO: Include Base64 Encoded Binary Image Data (data URI scheme) in Inline Cascading Style Sheets (CSS)(转)
    SharePoint 2007 使用4.0 .Net
    动态IP解决方案
    取MS CRM表单的URL
    从Iframe或新开的窗口访问MS CRM 2011(转)
    Toggle or Hidden MS CRM Tab
    Windows 2008下修改域用户密码
  • 原文地址:https://www.cnblogs.com/fanqisoft/p/11577889.html
Copyright © 2011-2022 走看看