某不知名博客 某不知名博客
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Carsaid

安全界的小学生
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 前言

  • 学习建议

  • Docker命令大全
  • Kubernetes教程

    • Kubernetes(K8s)学习教程 - 前言
    • 第1章-Kubernetes集群部署
    • 第2章-便捷性设置以及集群插件的安装
    • 第3章-基础操作
    • 第4章-集群升级
    • 第5章-Pod
    • 第6章-Pod生命周期与资源限制
    • 第7章-Pod与节点
    • 第8章-控制器Deployment
    • 第9章-Deployment镜像变更和滚动更新
    • 第10章-其他控制器-以及标签表达式
    • 第11章-控制器与节点驱逐
    • 暂缓更新
    • 练习题

    • 常用命令及yaml配置

      • 常见的集群配置文件
      • kubectl

      • kubeadm

      • ctr

      • etcd(etcdctl)

      • yaml常用配置项

        • Pod文件常用配置项
        • LimitRange文件常用配置项
        • ResourceQuota文件常用配置项
        • 控制器(Deployment)
        • 水平自动扩缩(HPA)
        • 其他控制器(DS、RC和RS)
        • 持久卷(PV)
        • 持久卷申领(PVC)
        • 存储类(StorageClass)
        • Secret
        • ConfigMap
        • 任务(Job)
          • 一个简单的Job
            • 示例1
            • 示例2
          • restartPolicy(重启策略)
          • parallelism
          • completions
          • backoffLimit
          • activeDeadlineSeconds
        • 周期任务(CronJob)
        • 服务(Service)
        • 路由规则(Ingress)
        • 网络策略(NetworkPolicy)
        • 角色(Role)
        • 角色绑定(RoleBinding)
        • 集群角色(ClusterRole)
        • 集群角色绑定(ClusterRoleBinding)
        • 证书签名请求(CertificateSigningRequest)
      • 具有特殊作用的标签或注释

  • CKS教程

  • 云原生安全
  • Kubernetes教程
  • 常用命令及yaml配置
  • yaml常用配置项
carsaid
2023-11-28
目录

任务(Job)

# Job 常用配置项

学习更多

官方文档-Job (opens new window) 官方文档-CronJob (opens new window)

# 1一个简单的Job

# 示例1

apiVersion: batch/v1
kind: Job
metadata:
  name: job1
spec:
  template:
    metadata:
      creationTimestamp: null
    spec:
      containers:
      - image: busybox
        imagePullPolicy: IfNotPresent
        name: job1
        command: ['sh', '-c', 'echo hello ; sleep 10']
        resources: {}
      restartPolicy: Never
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 示例2

apiVersion: batch/v1
kind: Job
metadata:
  name: job1
spec:
  parallelism: 3                # 并行运行 3 个 Pod
  completions: 6                # Job 必须成功 6 次才算成功
  backoffLimit: 4               # 重试次数为 4
  activeDeadlineSeconds: 1800   # 最大运行时间为 1800 秒
  template:
    metadata:
    spec:
      containers:
      - image: busybox
        imagePullPolicy: IfNotPresent
        name: job1
        command: ['sh', '-c', 'echo hello && sleep 10']
      restartPolicy: Never
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# spec.restartPolicy(重启策略)

重启策略共有三种,但是 Job 只能使用除了 Always 之外的两种:

  • Never:只要任务没有完成,就创建新的 Pod 运行,直到 Job 完成(会产生多个 Pod)
  • Onfailure:只要任务没有完成,就会重启 Pod,重新执行任务

# spec.parallelism

并行运行 N 个 Pod。

spec:
  parallelism: N    # 绝对数值,单位:个
1
2

# spec.completions

Job 必须成功 M 次才算成功。即,必须要有 M 个状态为 “Completed” 的 Pod。如果没有就重复执行。

spec:
  completions: M    # 绝对数值,单位:次
1
2

# spec.backoffLimit

Job 失败后的重试次数。

spec:
  backoffLimit: N   # 绝对数值,单位:次
1
2

注意

  • 如果并行创建 2 个 Pod,则算是重复 2 次,以此类推。
  • 有时创建的 Pod 会被自动删除,例如总共创建了 5 个 Pod,自动删除了 2 个,最终看到的是 3 个。所以不能以最终的 Pod 数来计算重试的次数。

# spec.activeDeadlineSeconds

Job 运行的最长时间。超过这个时间,不管 Job 有没有完成都会被终止,没完成的 Pod 也会被强制删除,不会再产生新的 Pod。

spec:
  activeDeadlineSeconds: N  # 绝对数值,单位:秒
1
2
编辑 (opens new window)
ConfigMap
周期任务(CronJob)

← ConfigMap 周期任务(CronJob)→

最近更新
01
API测试笔记
04-30
02
msfvenom
03-29
03
Metasploit
03-29
更多文章>
Theme by Vdoing | Copyright © 2023-2024 Carsaid | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式