【K8s】专题四(6):Kubernetes 控制器之 Job

以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发!欢迎扫码关注个人公众号!

公众号二维码


目录

一、基本介绍

二、工作原理

三、相关特性

四、资源清单(示例)

五、常用操作


一、基本介绍

Job 控制器是 Kubernetes 中用于运行一次性任务的 API 对象,它负责启动指定数量的 Pod,通过跟踪记录达到 Completed 状态的 Pod 个数,并判断是否达到设定的阈值来确保这些 Pod 成功完既定任务。

Job 通常用于部署一次性任务或批处理任务。


二、工作原理
  • 定义对象:用户定义一个 Job 对象,指定 Pod 模板和其他配置选项
  • 调度 Pod:Kubernetes 根据 Job 的定义创建 PodPod 被调度到节点后开始执行任务
  • 监控 Pod:Job 控制器会监控这些 Pod 的状态,确保它们成功完成任务
  • 完成任务:当所有 Pod 都成功完成任务后,Job 状态会被标记为 Completed
  • 清理资源:完成的 Job 及对应的 Pod 会在一定时间后被系统自动清理


三、相关特性
  • 并行执行:Job 可以指定并行运行的 Pod 数量,允许任务并行执行以提高效率
  • 成功计数:Job 控制器会跟踪成功完成任务的 Pod 数量,直到达到用户指定的完成数量
  • 失败重试:Job 可以配置重试策略,当 Pod 失败时可以重新启动新的 Pod 来尝试完成任务
  • 自动清理:Job 完成后,相关的资源(如 Pod)会被自动清理,减少资源浪费
  • 依赖管理:Job 可以设置依赖,确保任务按照特定的顺序执行
  • 生命周期:Job 提供了一种机制来管理任务的生命周期,包括任务的启动、监控、完成和清理
  • 弹性伸缩:可以根据任务的需求动态调整并行执行的 Pod 数量
  • 监控和日志:可以对 Job 的执行情况进行监控,并收集相关的日志信息,方便问题排查和性能分析


四、资源清单(示例)
# job.yaml
apiVersion: batch/v1
kind: Job
metadata:name: demo-job
spec:backoffLimit: 3completions: 1parallelism: 1ttlSecondsAfterFinished: 20template:metadata:labels:app: demo-jobspec:restartPolicy: Nevercontainers:- name: demo-containerimage: busyboxcommand:- sh- -c- for i in 1 2 3 4 5 6;do echo $i;done🔔 默认情况下,Job 任务运行失败或异常结束时,Pod 状态会变为Error,同时创建新的 Pod 继续运行任务
🔔 backoffLimit:指定任务运行失败时,尝试重新运行任务的次数,默认为 6 次,0 表示不尝试重新运行
🔔 completions: 指定任务需要完成的次数
🔔 parallelism: 指定并行运行的任务个数
🔔 ttlSecondsAfterFinished:任务完成后,自动清理 Pod 的时间(单位s)

上述 job.yaml 文件定义了一个名为 demo-job 的 Job 对象,每个 Pod 包含一个名为 demo-container 的容器,该容器使用 busybox 镜像,启动后执行一次性任务(打印数字 1 ~ 6)。

说明:可以通过以下命令查看 Job 资源清单支持定义的内容

kubectl explain job --recursive


五、常用操作

1、创建 Job

kubectl create -f job.yaml
或
kubectl apply -f job.yaml


2、查看 Job

# 查看实例列表
kubetcl get job# 查看详细信息
kubectl describe job demo-job


3、删除 Job

# 方式一:命令行
kubectl delete job demo-job# 方式二:资源清单
kubectl delete -f job.yaml

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/23072.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言经典习题20

一编写一个函数用于计算高于平均分的人数 编写一个函数int fun(float s[],int n),用于计算高于平均分的人数,并作为函数值返回,其中数组s中存放n位学生的成绩。再编写一个主函数,从键盘输入一批分数(用-1来结束输入&a…

电路分析答疑 1

三要素法求解的时候, 电容先求U,再利用求导求I 电感先求I,再利用求导求U 若I的头上没有点点,那就是求有效值 叠加定理,不要忘记 若电流值或者电压值已经给出来了,那就说明这一定是直流电。 在画画圈的时候…

数据库(25)——多表关系介绍

在项目开发中,进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,各个表之间的结构基本上分为三种:一对多,多对多,一对一。 一对多 例如,一个学校可以有…

Mac修改Mysql8.0密码

转载请标明出处:http://blog.csdn.net/donkor_/article/details/139392605 文章目录 前言修改密码Step1:修改my.conf文件Step2:添加配置skip-grant-tablesStep3:重启mysql服务Step4:进入mysqlStep5:刷新权限Step6:修改密码Step7:再次刷新权限Step8:删除/注释 skip-…

DNS域名

DNS域名 DNS是域名系统的简称 域名和ip地址之间的映射关系 互联网中,ip地址是通信的唯一标识 访问网站,域名,ip地址不好记,域名朗朗上口,好记。 域名解析的目的就是为了实现,访问域名就等于访问ip地址…

【Python】 获取当前日期的Python代码解析与应用

标题:Python中获取当前日期的简单指南 基本原理 在Python中,获取当前日期是一个常见的需求,尤其是在处理日志、数据记录和时间相关的任务时。Python提供了多种方式来获取和处理日期和时间,其中最常用的模块是datetime。datetime…

多客陪玩系统-开源陪玩系统平台源码-支持游戏线上陪玩家政线下预约等多场景应用支持H5+小程序+APP

多客陪玩系统-开源陪玩系统平台源码-支持游戏线上陪玩家政按摩线下预约等多场景应用支持H5小程序APP 软件架构 前端:Uniapp-vue2.0 后端:Thinkphp6 前后端分离 前端支持: H5小程序双端APP(安卓苹果) 安装教程 【商业…

学习VUE3——组件(一)

组件注册 分为全局注册和局部注册两种。 全局注册: 在main.js或main.ts中,使用 Vue 应用实例的 .component() 方法,让组件在当前 Vue 应用中全局可用。 import { createApp } from vue import MyComponent from ./App.vueconst app crea…

11、“十四五”大数据产业发展规划

数据是新时代重要的生产要素, 是国家基础性战略资源。 大数据是数据的集合, 以容量大、 类型多、 速度快、 精度准、 价值高为主要特征, 是推动经济转型发展的新动力,是提升政府治理能力的新途径, 是重塑国家竞争优势的新机遇。 大数据产业是以数据生成、 采集、 存储、 加…

QT C++ QTableWidget 表格合并 setSpan 简单例子

这里说的合并指的是单元格,不是表头。span的意思是跨度、宽度、范围。 setSpan函数需要设定行、列、行跨几格,列跨几格。 //函数原型如下 void QTableView::setSpan(int row, i nt column, 、 int rowSpanCount,/*行跨过的格数*/ int columnSpanCount…

【算法无用系列】电影推荐——余弦相似度计算用户相似度原理

【算法无用系列】通过余弦相似度计算电影、用户相似度 话不多说,本文通过电影推荐系统中,基于余弦相似度算法计算出用户相似和电影相似原理。希望可以帮助一些代码不懂的同学一些思路。 记录用户电影评分数据 一般情况来说,会根据用户的行为…

什么是数字化转型?

作者: 峡山老曹 数字神化 ”企业如何实现数字化转型“是摆在现代企业面前一个无法回避的问题,数字化转型的重要性不容忽视,它不仅是企业适应数字化时代的必然要求,更是提升竞争力、实现可持续发展的关键。随着科技的飞速发展和市场…

学会spring boot 的这些技巧,编程瞬间变得简单了,效率也提高了!

在Spring Boot应用中,断言主要用于测试环境中验证代码行为是否符合预期。虽然Spring Boot自身不直接包含断言库,但通常我们会使用JUnit(一个广泛应用于Java的单元测试框架)来进行测试,其中包含了丰富的断言方法来帮助我们进行各种条件验证。下面通过一些具体的示例来详细说…

二叉树的层序遍历-力扣

本题是二叉树的层序遍历,通过一个队列来控制遍历的节点,二叉树每层的节点和上一层入队的节点个数是相同的,根据这一点编写循环条件。 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* …

八、C语言:操作符详解

一、移位操作符 1.1左移操作 左边丢弃,右边补0 1.2右移操作 算数右移:右边丢弃,左边补原符号位 逻辑右移:右边丢弃,左边补0 int main() {int a -1;int b a >> 1;printf("b%d\n",b);return 0; } 原码…

【Linux进程篇】Linux进程管理应用——虚假的shell脚本

W...Y的主页 😊 代码仓库分享💕 前言:我们已经了解了进程的工作原理,并且学习了进程创建、进程终止、进程等待以及进程程序替换。为了更好的巩固这些知识,我们可以创建一个简易的shell命令行。 目录 做一个简易的s…

GAT1399协议分析(六)--校时

一、官方消息定义 DeviceIDType :GA/T1400.1,采集设备、 卡口点位、 采集系统、分析系统、视图库、应用平台等设备编码规则 TimeCorrectModeType: dateTime时间格式: TimeZone:时区,GAT1400里面没有找到具体内容&…

卧式搅拌机:一键自动称重轻松搞定

在现代化工业生产中,G效、精准的设备是提高生产效率、降低生产成本。近年来,卧式搅拌机一键自动称重包装机的出现,无疑为众多行业带来了变革。这种集搅拌、称重、包装于一体的智能化设备,以其G效、便捷、精准的特点,迅…

六轴机器手臂运动控制——直流伺服反馈系统设计(比赛项目计划书+设计总结+硬件+源代码+上位机等)

TW的硬件一直很强,这是难得的硬件创新比赛的优秀作品,资料非常完整理。 硬件设计,源码,项目计划书,甚至包含了事后的复盘总结文档。 是不可多得的好资料。 项目系统框架图 1. 硬件系统框架图 (请以方块图形式呈现) …

C#.net MassTransit和DotNetCore.CAP区别

MassTransit和DotNetCore.CAP对比 https://github.com/MassTransit/MassTransit https://github.com/dotnetcore/CAP MassTransit和DotNetCore.CAP是两种不同的.NET库,它们在核心概念、设计目的和技术实现等方面存在差异。具体分析如下: 核心概念 Mas…