k8s初级实战06--Job CronJob

2024-05-31 00:08

本文主要是介绍k8s初级实战06--Job CronJob,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

k8s初级实战06--Job & CronJob

  • 1 基础概念
  • 2 常见用法
    • 2.1 Job
    • 2.2 CronJob
  • 3 注意事项
  • 4 说明

1 基础概念

  1. Job
    Job负责批量处理短暂的一次性任务 (short lived one-off tasks),即仅执行一次的任务,它保证批处理任务的一个或多个Pod成功结束。
    当第一个 Pod 失败或者被删除(比如因为节点硬件失效或者重启)时,Job 对象会启动一个新的 Pod。删除 Job 的操作会清除所创建的全部 Pods。
    Kubernetes支持以下几种Job:
    1. 非并行Job:通常创建一个Pod直至其成功结束
    2. 固定结束次数的Job:设置.spec.completions,创建多个Pod,直到.spec.completions个Pod成功结束
    3. 带有工作队列的并行Job:设置.spec.Parallelism但不设置.spec.completions,当所有Pod结束并且至少一个成功时,Job就认为是成功
  2. CronJob
    CronJob 即定时任务,就类似于 Linux 系统的 crontab,在指定的时间周期运行指定的任务。
    CronJobs 对于创建周期性的、反复重复的任务很有用,例如执行数据备份或者发送邮件。 CronJobs 也可以用来计划在指定时间来执行的独立任务,例如计划当集群看起来很空闲时 执行某个 Job。
    crontab 时间表7语法:
    # ┌───────────── 分钟 (0 - 59)
    # │ ┌───────────── 小时 (0 - 23)
    # │ │ ┌───────────── 月的某天 (1 - 31)
    # │ │ │ ┌───────────── 月份 (1 - 12)
    # │ │ │ │ ┌───────────── 周的某天 (0 - 6) (周日到周一;在某些系统上,7 也是星期日)
    # │ │ │ │ │ 
    # │ │ │ │ │
    # │ │ │ │ │
    # * * * * *
    

2 常见用法

2.1 Job

  1. 创建Job 计算pi小数点后100位
    $ kubectl create job cal-pi --image=perl:5.32 -- perl -Mbignum=bpi -wle 'print bpi(100)'
    job.batch/cal-pi created
    查看输出日志:
    $ kubectl logs cal-pi-dh766     
    3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068
    或者yaml
    vim job-cal-pi.yaml 
    kind: Job
    apiVersion: batch/v1
    metadata:name: cal-pi
    spec:template:spec:containers:- name: cal-piimage: perl:5.32command:- perl- '-Mbignum=bpi'- '-wle'- 'print bpi(100)'imagePullPolicy: IfNotPresentrestartPolicy: NeverbackoffLimit: 4
    $ kubectl apply -f job-cal-pi.yaml
    
  2. 查看job
    $ kubectl get jobs[.batch]
    NAME     COMPLETIONS   DURATION   AGE
    cal-pi   1/1           4s         22s
    
  3. 删除job
    $ kubectl delete -f job-cal-pi.yaml 
    job.batch "cal-pi" deleted
    
  4. 创建job 执行10次任务
    vim job-cal-pi-10.yaml 
    kind: Job
    apiVersion: batch/v1
    metadata:name: cal-pi-10
    spec:completions: 10template:spec:containers:- name: cal-piimage: perl:5.32command:- perl- '-Mbignum=bpi'- '-wle'- 'print bpi(100)'imagePullPolicy: IfNotPresentrestartPolicy: NeverbackoffLimit: 4
    $ kubectl apply -f job-cal-pi-10.yaml 
    
    过一会可以在lens前端上发现该任务执行完成: 在这里插入图片描述

2.2 CronJob

  1. 创建cronjob
    $ kubectl create cronjob cal-pi-cj --schedule="*/1 * * * *" --image=perl:5.32 -- perl -Mbignum=bpi -wle 'print bpi(100)'
    cronjob.batch/cal-pi-cj created或者yaml创建
    vim cronjob-cal-pi.yaml 
    kind: CronJob
    apiVersion: batch/v1beta1
    metadata:name: cal-pi-cj
    spec:schedule: '*/1 * * * *'jobTemplate:spec:template:spec:containers:- name: cal-pi-cjimage: perl:5.32command:- perl- '-Mbignum=bpi'- '-wle'- 'print bpi(100)'imagePullPolicy: IfNotPresentrestartPolicy: OnFailure
    $ kubectl apply -f cronjob-cal-pi.yaml 
    
    lens 中执行任务的状态如下: 在这里插入图片描述
  2. 查看cronjob
    $ kubectl get cronjobs.batch 
    NAME        SCHEDULE      SUSPEND   ACTIVE   LAST SCHEDULE   AGE
    cal-pi-cj   */1 * * * *   False     0        <none>          31s
    
  3. 删除cronjob
    kubectl delete cronjobs[.batch] cal-pi-cj 
    cronjob.batch "cal-pi-cj" deleted
    

3 注意事项

  1. job执行完成后,对应的pod不会自动删除(),删除job后才会删除对应的pod。

4 说明

概念->工作负载->工作负载资源->Jobs
Kubernetes指南->Job

这篇关于k8s初级实战06--Job CronJob的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1017119

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

06 C++Lambda表达式

lambda表达式的定义 没有显式模版形参的lambda表达式 [捕获] 前属性 (形参列表) 说明符 异常 后属性 尾随类型 约束 {函数体} 有显式模版形参的lambda表达式 [捕获] <模版形参> 模版约束 前属性 (形参列表) 说明符 异常 后属性 尾随类型 约束 {函数体} 含义 捕获:包含零个或者多个捕获符的逗号分隔列表 模板形参:用于泛型lambda提供个模板形参的名

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

90、k8s之secret+configMap

一、secret配置管理 配置管理: 加密配置:保存密码,token,其他敏感信息的k8s资源 应用配置:我们需要定制化的给应用进行配置,我们需要把定制好的配置文件同步到pod当中容器 1.1、加密配置: secret: [root@master01 ~]# kubectl get secrets ##查看加密配置[root@master01 ~]# kubectl get se

滚雪球学Java(87):Java事务处理:JDBC的ACID属性与实战技巧!真有两下子!

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~ 🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!! 环境说明:Windows 10

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟

springboot实战学习(1)(开发模式与环境)

目录 一、实战学习的引言 (1)前后端的大致学习模块 (2)后端 (3)前端 二、开发模式 一、实战学习的引言 (1)前后端的大致学习模块 (2)后端 Validation:做参数校验Mybatis:做数据库的操作Redis:做缓存Junit:单元测试项目部署:springboot项目部署相关的知识 (3)前端 Vite:Vue项目的脚手架Router:路由Pina:状态管理Eleme