Job 和 DaemonSet

news/发布时间2024/5/14 8:44:21

一、Job

1Job 背景问题

K8s 里,最小的调度单元是 Pod,如果直接通过 Pod 来运行任务进程,会产生以下几种问题:

如何保证 Pod 内进程正确的结束?

如何保证进程运行失败后重试?

如何管理多个任务,且任务之间有依赖关系?

如何并行地运行任务,并管理任务的队列大小?

2Job:管理任务的控制器

Kubernetes 的 Job 为我们提供了什么功能:

创建一个或多个Pod确保指定数量的Pod可以成功地运行终止;

跟踪Pod状态,根据配置及时重试失败的 Pod;

确定依赖关系,保证上一个任务运行完毕后再运行下一个任务;

控制任务并行度,并根据配置确保Pod 队列大小。

3、Job 解读:

(1) Job 语法:

① metadata 里面的 name 指定这个 Job 的名称,spec.template 是 pod 的 spec。

② restartPolicy 重启策略:

在 Job 里面可以设置 Never、OnFailure、Always 这三种重试策略。

Never 表示不会重启 Pod,即使 Pod 失败也不会重启。

OnFailure 表示只有在 Pod 失败时才会重启。

Always 表示无论何时,都会尝试重启 Pod,即使它已经成功运行。

③ backoffLimit 重试次数限制:

Job 在运行的时候不可能去无限的重试,需要一个参数来控制重试的次数。backoffLimit 就是来保证一个 Job 到底能重试多少次。

(2) 查看 Job 状态:

Job 创建完成之后,可以通过 kubectl get jobs 这个命令,查看当前 job 的运行状态。

(3) 查看 Pod:

通过 Job 创建出来的 Pod 比普通的 Pod 多了一个 ownerReferences,用来声明此 pod 是归哪个上一层 controller 来管理。可以通过 pod 返查到它的控制器是谁,同时也能根据 Job 来查一下它下属有哪些 Pod。

(4) 并行 Job:

Job 控制器可以并行出 n 个 Pod 去快速地执行,同时设置并行度。

主要看两个参数:一个是 completions,一个是 parallelism。

第一个参数是用来指定 Pod 队列执行次数。可以把它认为是这个 Job 指定的可以运行的总次数。比如这里设置成 8,即这个任务一共会被执行 8 次。

第二个参数代表这个并行执行的个数。所谓并行执行的次数,就是一个管道或者缓冲器中缓冲队列的大小,把它设置成 2,就是说这个 Job 要执行 8 次,每次并行 2 个 Pod,这样的话,一共会执行 4 个批次。

(5) Cronjob

CronJob,也叫定时运行 Job。它可以设计一个时间决定 Job 在几点几分执行。

① schedule:这个字段主要设置时间格式。

② startingDeadlineSeconds:每次运行 Job 的时候,它最长可以等多长时间,如果超过时间,CronJob 就会停止这个 Job。

③ concurrencyPolicy:是否允许并行运行。如果这个 policy 设置为 true 的话,不管前面的 Job 是否运行完成,下一个 Job 都会去执行;如果是 false,它就会等上一个 Job 运行完成之后才会运行下一个。

④ JobsHistoryLimit:每一次 CronJob 运行完之后,它都会遗留上一个 Job 的运行历史、查看时间。可以根据需要设置历史存留数,一般可以设置默认 10 个或 100 个。

二、DaemonSet

1DaemonSet 背景问题

如何保证每个节点都运行一个pod?

如果新节点加入集群,如何感知并部署对应的Pod?

如果有节点退出,如何删除对应的Pod?

如果Pod状态异常,如何监控并恢复Pod的状态 ?

2DaemonSet 功能:

保证集群内每一个(或者一些)节点都运行一组相同的 Pod;

跟踪集群节点状态,保证新加入的节点自动创建对应的 Pod;

跟踪集群节点状态,保证移除的节点删除对应的 Pod;

跟踪 Pod 状态,保证每个节点 Pod 处于运行状态。

3、DaemonSet 语法:

(1) 查看 DaemonSet 状态:

创建完 DaemonSet 之后,我们可以使用 kubectl get DaemonSet(DaemonSet 缩写为 ds)

(2) 更新 DaemonSet:

DaemonSet 有两种更新策略:一个是 RollingUpdate,另一个是 OnDelete

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

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

相关文章

阿里云OTA升级指南

阿里云OTA升级指南 OTA简介 OTA是Over-The-Air的缩写,中文意为“通过空中传输”。在计算机和通信技术领域中,OTA指的是通过无线网络等方式将软件、固件、配置文件等更新、下载、安装到设备上的一种技术手段。它可以实现远程升级和管理设备的软件和配置…

【k8s初始化过程解析】

k8s初始化过程解析 [rootk8s-master ~]# kubeadm init –apiserver-advertise-address10.10.10.100 –image-repository registry.aliyuncs.com/google_containers –kubernetes-version v1.25.0 –service-cidr10.1.0.0/16 –pod-network-cidr10.2.0.0/16 –cri-socket …

Vue路由缓存问题

路由缓存问题的产生 VueRouter允许用户在页面中创建多个视图(多级路由),并根据路由参数来动态的切换视图。使用带参数的路由时,相同的组件实例将被重复使用。因为两个路由都渲染同一个组件,比起销毁再创建,…

鸿蒙Next怎么升级,有便捷的方法?

早在2023年11月,市场上有自媒体博主表示,华为HarmonyOS NEXT的升级计划是2X年底到2X年初完成一亿部,2X年底完成三亿部。虽然该博主没有明确具体年份,但预计是2024年底2025年初升级一亿部HarmonyOS NEXT设备,2025年底完…

一个基于.NET Core开源、跨平台的仓储管理系统

前言 今天给大家推荐一个基于.NET Core开源、跨平台的仓储管理系统,数据库支持MSSQL/MySQL:ZEQP.WMS。 仓储管理系统(WMS)介绍 仓储管理系统(Warehouse Management System,WMS)是一种用于管理…

springboot+flowable 使用方式

创建flowble制定流程图 登录flowalbe 制定流程图 进入建模器应用程序 创建流程图 分配用户 下载流程图 使用springboot 调用flowable /*** 导入流程图老师流程*/Testvoid startTeacherApprover(){Deployment deploy repositoryService.createDeployment().addClasspathRes…

【C++语法基础】3.常用数学运算和位运算技巧(✨新手推荐阅读)

前言 在C编程中,数学运算是非常基础和常用的功能。C提供了多种数学运算符和函数,用于执行基本的数学计算,如加减乘除、取模运算以及位运算等。 一、加减乘除四则运算 C中的基本算术运算符包括加法()、减法(-)、乘法(*)、除法(/)。这些运算…

使用多线程完成两个文件的拷贝,第一个线程拷贝前一半,第二个线程拷贝后一半,主线程回收两个线程的资源

#include <myhead.h> typedef struct {const char *srcfile;const char *destfile;int len;}info;void *task1(void *arg) {info buf*((info *)(arg));//打开这两个文件&#xff0c;只读的形式int fd-1;if((fdopen(buf.srcfile,O_RDONLY))-1){perror("open error&qu…

总结Rabbitmq的六种模式

RabbitMQ六种工作模式 RabbitMQ是由erlang语言开发&#xff0c;基于AMQP&#xff08;Advanced Message Queue 高级消息队列协议&#xff09;协议实现的消息队列&#xff0c;它是一种应用程序之间的通信方法&#xff0c;消息队列在分布式系统开发中应用非常广泛。 RabbitMQ有六…

CSS之BFC

BFC概念 BFC&#xff08;Block Formatting Context&#xff09;即块级格式化上下文&#xff0c;是Web页面的可视CSS渲染的一部分。它是一个独立的渲染区域&#xff0c;让其中的元素在布局上与外部的元素互不影响。简单来说&#xff0c;BFC提供了一个环境&#xff0c;允许内部的…

⭐北邮复试刷题105. 从前序与中序遍历序列构造二叉树__递归分治 (力扣每日一题)

105. 从前序与中序遍历序列构造二叉树 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,…

网站管理新利器:免费在线生成 robots.txt 文件!

&#x1f916; 探索网站管理新利器&#xff1a;免费在线生成 robots.txt 文件&#xff01; 你是否曾为搜索引擎爬虫而烦恼&#xff1f;现在&#xff0c;我们推出全新的在线 robots.txt 文件生成工具&#xff0c;让你轻松管理网站爬虫访问权限&#xff0c;提升网站的可搜索性和…

中期国际2.19黄金市场分析:美国通胀数据火热,黄金面临高利率削弱的挑战

周一(2月19日)亚市&#xff0c;现货黄金震荡走高&#xff0c;目前交投于2018.32美元/盎司左右&#xff0c;涨幅约为0.25%。上周五金价收涨0.46%&#xff0c;报价2013.46美元/盎司&#xff0c;虽然黄金周五略有上涨&#xff0c;但由于通胀数据炽热&#xff0c;美联储提前降息的可…

pikachu靶场-暴力破解

目录 1.基于表单的暴力破解&#xff1a; 2.验证码绕过(on server)&#xff1a; 3.验证码绕过(on client)&#xff1a; 1.基于表单的暴力破解&#xff1a; 个人理解&#xff1a;无验证码和各种校验程序&#xff0c;最为简单的暴力破解。 随便输入错误的账密&#xff0c;burp抓…

Linux 权限详解

目录 一、权限的概念 二、权限管理 三、文件访问权限的相关设置方法 3.1chmod 3.2chmod ax /home/abc.txt 一、权限的概念 Linux 下有两种用户&#xff1a;超级用户&#xff08; root &#xff09;、普通用户。 超级用户&#xff1a;可以再linux系统下做任何事情&#xff…

【AI大语言模型】ChatGPT在地学、GIS、气象、农业、生态、环境等领域中的应用

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮&#xff0c;可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…

文生视频模型调研

文生视频只有OpenAI的Sora&#xff0c;其他的&#xff08;&#xff09;都是动图。 OpenAI发布了可以生成60s视频的Sora模型。刚刚发布的google的Gemini pro 1.5就一下子变得无人问津了&#xff0c;太尴尬了。 在这之前视频生成的天花板是Runway&#xff0c;支持最多18s视频生成…

react使用Map方法遍历列表不显示的问题

问题&#xff1a; 在最开始搭建选项卡的时候&#xff0c;我的js代码是这样的 import React, { Component } from react import ./css/02-maizuo.css export default class App extends Component {state {list: [{id: 1,text: 电影},{id: 2,text: 影院}, {id: 3,text: 我的}…

机器学习——正规方程

正规方程的基本介绍 之前我们使用梯度下降算法求代价函数J(θ)的最小值&#xff0c;而梯度下降算法是通过一步步不断地迭代来收敛到全局最小值&#xff0c;如下 而正规方程则是另一种求解J(θ)最小值的方法&#xff0c;并且正规方程不需要通过迭代&#xff0c;而是一次性得到θ…

09、全文检索 -- Solr -- SpringBoot 整合 Spring Data Solr (生成DAO组件 和 实现自定义查询方法)

目录 SpringBoot 整合 Spring Data SolrSpring Data Solr的功能&#xff08;生成DAO组件&#xff09;&#xff1a;Spring Data Solr大致包括如下几方面功能&#xff1a;Query查询&#xff08;属于半自动&#xff09;代码演示&#xff1a;1、演示通过dao组件来保存文档1、实体类…
推荐文章