资源创建方式-Job

news2024/9/23 6:20:13
  1. Job:
    1. 容器按照持续运行的时间可分为两类,服务类容器,和工作类容器

    2. 服务类容器通常持续提供服务,需要一直运行,比如HTTP,Server,Daemon等,

    3. 工作类容器则是一次性任务,比如批处理程序,完成后容器就退出

    4. kubernetes的Deployment,ReplicaSet和DaemonSet都用于管理服务类容器,对于工作类容器,使用Job

    5. myjob.yam配置解析

      1. batch/v1是当前Job的apiVersion
      2. 指明当前资源的类型为Job
      3. restartPolicy指定什么情况下需要重启容器,对于Job,只能设置为Never或者OnFailure,对于其他controller,比如Deployment,可以设置为Always
      4. 通过kubectl apply -f myjob.yml启动Job
    6. 通过kubectl get job 查看Job的状态在这里插入图片描述

      1. desired和successful都为1,表示按照预期启动了一个pod,并且已经成功执行,通过kubectl get pod 查看pod的状态在这里插入图片描述

      2. 因为pod执行完毕后容器已经退出,需要用–show-all才能看到Completed状态的Pod

      3. 通过kubectl logs可以查看Pod的标准输出在这里插入图片描述

    7. Pod失败的情况

      1. 修改myjob.yml,故意引入一个错误在这里插入图片描述

      2. 先删除之前的job在这里插入图片描述

      3. 运行新的job并查看状态在这里插入图片描述

      4. 当前successful的Pod数量为0,查看Pod的状态在这里插入图片描述

      5. 可以看到有多个Pod,状态均为不正常,通过kubectl describe pod查看某个pod的启动日志在这里插入图片描述

      6. 日志显示没有可执行程序

      7. 为什么kubectl get pod会看到多个失败的pod?

        1. 当第一个pod启动时,容器失败退出,根据restartPolicy:Never,此容器失败不会被重启,但Job desired的pod是1,目前successful为0,不满足,所以job controller会启动新的Pod,直到successful为1,对于这上面的例子而言,successful永远也到不了1,所以Job controller会一直创建新的Pod,为了终止这个行为,只能删除Job在这里插入图片描述
      8. 将restartPolicy设置为OnFailure,修改myjob。yml后重新启动在这里插入图片描述

        1. Job的successful的pod的数量还是0,再看Pod的状态在这里插入图片描述
        2. 这里只有一个Pod,不过restarts为3,而且不断增加,说明OnFailure生效,容器失败后会自动重启
      9. Job的并行性

        1. 如果希望能同时运行多个Pod,提高Pod的执行效率,可以通过parallelism设置在这里插入图片描述

        2. 将并行的Pod数量设置为2,可以看到job一共启动了两个Pod,而且age相同在这里插入图片描述

        3. 通过completions设置Job成功完成Pod的总数在这里插入图片描述

        4. 上面配置的含义是:每次运行两个Pod,直到总共有6个Pod成功完成在这里插入图片描述

        5. desired和successful均为6,符合预期,如果不指定completions和parallelism,默认值都为1

        6. 对于批处理程序,每个副本Pod都会从任务池中读取任务并执行,副本越多,执行时间就越短,效率就越高,这种场景可以使用Job来实现

      10. 定时Job

        1. linux中有cron程序定时执行任务,kubernetes的CronJob提供了类似的功能,可以定时执行Job,

        2. 在这里插入图片描述

        3. 配置解读

          1. batch/v2alpha1是当前CronJob的apiVersion

          2. 指明当前资源的类型为CronJob

          3. schedule指定什么时候运行Job,其格式与Linux cron一致,这里的*/1 * * * *的含义是每一分钟启动一次

          4. jobTemplate定义Job的模板,格式与前面的Job一致

          5. 通过kubectl apply创建CronJob,然后失败在这里插入图片描述

          6. 是因为kubernetes默认没有enable CronJob功能,需要在kube-apiserver中加入这个功能,修改kube-apiserver的配置文件/etc/kubernetes/manifests/kubeapiserver.yaml在这里插入图片描述

          7. kube-apiserver本身也是一个pod,在启动参数中加上–runtime-config=batch/v2alpha1=true即可,然后重启kubelet服务:systemctl restart kubelet.service。kubelet会重启kube-apiserver Pod,通过kubectl api-versions确认kube-apiserver现在已经支持batch/v2alpha1在这里插入图片描述

          8. 再次创建CronJob在这里插入图片描述

          9. 通过kubectl get cronjob查看CronJob的状态在这里插入图片描述

          10. 等待几分钟,查看job的状态在这里插入图片描述

          11. 可以看到每隔一分钟就会启动一个Job,执行kubectl logs查看某个Job的运行日志在这里插入图片描述

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

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

相关文章

跟着问题学12——GRU详解

1 GRU 1. 什么是GRU GRU(Gate Recurrent Unit)是循环神经网络(Recurrent Neural Network, RNN)的一种。和LSTM(Long-Short Term Memory)一样,也是为了解决长期记忆 和反向传播中的梯度等问题…

数据集-目标检测系列-吸烟检测数据集 smoking cigarette >> DataBall

数据集-目标检测系列-吸烟检测数据集 smoking cigarette >> DataBall 数据集-目标检测系列-吸烟检测数据集 (smoking cigarette) 数据量:1W 想要进一步了解,请联系 DataBall。 DataBall 助力快速掌握数据集的信息和使用方…

闯关leetcode——67. Add Binary

大纲 题目地址内容 解题代码地址 题目 地址 https://leetcode.com/problems/add-binary/description/ 内容 Given two binary strings a and b, return their sum as a binary string. Example 1: Input: a “11”, b “1” Output: “100” Example 2: Input: a “101…

Qt系统相关——事件

文章目录 事件和信号槽的关系事件处理鼠标事件鼠标进入和离开鼠标点击获取位置鼠标释放鼠标双击鼠标移动鼠标滚轮 键盘事件定时器事件窗口移动和窗口改变 事件和信号槽的关系 Qt信号槽机制: 用户进行的操作就可能产生信号,可以给某个信号指定槽函数&…

Effective Java 学习笔记 如何为方法编写文档

目录 方法的文档注解设计的原则 Javadoc常用的文档注释 一些注意细节 通过Javadoc命令生成h5页面 这是第8章Java方法的最后一部分,聚焦为导出的API编写文档注释。 如果要想使得API真正可用,配套的文档是必须的。Java提供了Javadoc这个文档生成工具&…

Renesas R7FA8D1BH (Cortex®-M85)的 General PWM的应用实践

目录 概述 1 General PWM介绍 1.1 特性 1.2 定时器选择注意点 2 时钟配置 3 应用案例 3.1 基本定时器应用 3.2 定时器回调函数案例 3.3 输入捕捉功能案例 3.4 更新周期案例 3.5 更新占空比案例 3.6 单次触发脉冲案例 4 测试 4.1 代码介绍 4.2 验证 概述 本文主…

基于SpringBoot+Vue+MySQL的特色旅游网站系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着旅游业的蓬勃发展,人们对旅游体验的需求日益多样化与个性化。传统的旅游信息查询与预订方式已难以满足现代游客的需求。因此,我们开发了这款基于SpringBootVueMySQL的特色旅游网站系统。该系统旨在通…

HTML实现的简单网站首页模板

这个是简单的网站首页模板&#xff0c;用于学习或者参考 实现代码: <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"&…

移动硬盘‘需格式化‘困境:原因剖析、恢复策略与预防之道

困境直击&#xff1a;移动硬盘为何需格式化才能访问&#xff1f; 在数字化时代&#xff0c;移动硬盘作为数据存储与传输的重要工具&#xff0c;其稳定性与可靠性直接关系到用户数据的安全。然而&#xff0c;不少用户在使用过程中遭遇了“移动硬盘需要格式化才能打开”的尴尬境…

Qt_对话框QDialog的介绍

目录 1、新建项目对话框 2、非模态对话框 3、模态对话框 4、自定义对话框 5、Qt内置对话框 5.1 消息对话框QMessageBox 5.2 颜色对话框QColorDialog 5.3 文件对话框QFileDialog 5.4 字体对话框QFontDialog 5.5 输入对话框QInputDialog 结语 前言: 在Qt中&…

布草洗涤必备4张表-———未来之窗行业应用跨平台架构

一、洗涤厂客户月度报表 二、大酒店楼层布草月度统计报表 三、职员月度报表 四、司机当日统计报表 五、阿雪技术观 拥抱开源与共享&#xff0c;见证科技进步奇迹&#xff0c;畅享人类幸福时光&#xff01; 让我们积极投身于技术共享的浪潮中&#xff0c;不仅仅是作为受益者&a…

【软件测试】Bug 篇

哈喽&#xff0c;哈喽&#xff0c;大家好~ 我是你们的老朋友&#xff1a;保护小周ღ 今天给大家带来的是 【软件测试】Bug 篇&#xff0c;首先了解, 什么是Bug, 如何定义一个Bug, 如何描述一个 Bug, Bug的级别, 和 Bug 的生命周期, 以及测试人员跟开发人员产生争执如何处理,…

最佳植树距离 - 华为OD统一考试(E卷)

2024华为OD机试&#xff08;C卷D卷E卷&#xff09;最新题库【超值优惠】Java/Python/C合集 题目描述 按照环保公司要求&#xff0c;小明需要在沙化严重的地区进行植树防沙工作&#xff0c;初步目标是种植一条直线的树带。由于有些区域目前不适合种植树木&#xff0c;所以只能在…

橙子质量检测系统源码分享

橙子质量检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

【报告阅读】chatgpt-o1 技术报告阅读 | 新的迭代开始了~

OpenAI o1是通过强化学习去进行复杂推理&#xff0c;在它回答之前&#xff0c;他会经过复杂的内部思维链的思考。 经过强化训练的o1多强 1 表现 在美国数学奥林匹克预选赛中名列前500名的学生中&#xff0c;o1排89名 在物理、生物、化学问题的基准测试中超过人类博士水平 其…

stm32单片机个人学习笔记7(TIM定时中断)

前言 本篇文章属于stm32单片机&#xff08;以下简称单片机&#xff09;的学习笔记&#xff0c;来源于B站教学视频。下面是这位up主的视频链接。本文为个人学习笔记&#xff0c;只能做参考&#xff0c;细节方面建议观看视频&#xff0c;肯定受益匪浅。 STM32入门教程-2023版 细…

Python可迭代对象(1)---从C++开发者学习python日记

目录 1。什么是可迭代对象&#xff1f; 2。列表(list) 列表的创建 列表基本操作 以上全部代码的总运行结果 列表脚本操作符 列表常用的方法和函数 列表推导式 ​编辑列表的嵌套 以上全部代码的总运行结果 复习列表内容 3。元组(tuple) 元组的基本运算 元组的方法 …

SFUD库移植

1.源码 GitHub - armink/SFUD: An using JEDECs SFDP standard serial (SPI) flash universal driver library | 一款使用 JEDEC SFDP 标准的串行 (SPI) Flash 通用驱动库 2.介绍 这个通用驱动库,实际就是帮你封装好了读写spiflash的函数, 我们只需要对接以下底层,就可以轻松…

快速了解使用路由器

插槽的使用和用法&#xff1a;slot 为什么要使用插槽&#xff1a; 在Vue.js等前端框架中 在Vue.js等前端框架中&#xff0c;插槽&#xff08;Slot&#xff09;是一种强大的工具&#xff0c;允许开发者在组件之间动态地传递和呈现内容。使用插槽的主要原因包括&#xff1a; …

【LTW】Domain General Face Forgery Detection by Learning to Weight

文章目录 Domain General Face Forgery Detection by Learning to Weightkey points方法LTW元分割策略学习过程损失函数实验评价结果消融实验总结Domain General Face Forgery Detection by Learning to Weight 会议:AAAI-21 作者: code: https://github.com/skJack/LTW 上…