应用编排与管理:Job 和 DaemonSet(二)|学习笔记

简介: 快速学习应用编排与管理:Job 和 DaemonSet(二)

开发者学堂课程【Kubernetes 入门应用编排与管理:Job 和 DaemonSet(二)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/51/detail/1013


应用编排与管理:Job 和 DaemonSet(二)


5查看并行 Job 运行

1.pod age 表明每次 job 同时创建了两个 pod

2.本 job 一共运行了四个批次,一共运行8个 pod

image.png

image.png

6、CronJob 语法

新知识点:

schedule: crontab 时间格式相同

startingDeadlineSeconds: Job 最长启动时间

concurrencyPolicy:是否允许并行运行

successfulJobsHistoryLimit:允许留存历史 job 个数

 

三、操作演示

首先看 job.yaml 是一个计算pi的任务,使用 kubectl create -f job .yaml 就可以提交成功了

可以看到 job 运行完成

去 log 一下 job

可以看到打印出了圆周率

pod 正在运行

image.png

 

四、架构设计

1、管理模式

l Job Controller 负责根据配置创建 Pod

l Job Controller 跟踪 Job 状态,根据配置及时重试 Pod 或者继续创建

l Job Controller 会自动添加 label 来跟踪对应的 pod,并根据配置并行或者串行创建 Pod

2、DaemonSet 背景问题

我们可以让每个集群内的节点都运行一个相同的 Pod 吗?

如果这样做,以下的问题有什么方式来解决?

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

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

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

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

3、DaemonSet:守护进程控制器

DaemonSet 能帮助我们做什么事情?

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

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

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

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

4、DaemonSet 语法

适用场景:

l 集群存储进程: glusterd, ceph

l 日志收集进程: fluentd,logstash

l 需要在每个节点运行的监控收集器

5、查看 DaemonSet 状态

# kubectl get ds

# kubectl get pods

NAME READY  STATUS  RESTARTS  AGE

fluentd-elasticsearch-bdq2q  1/1  Running 0     9s

fluentd-elasticsearch-gxv68   1/1  Running 0     9s

fluentd-elasticsearch-nwczf   1/1  Running 0     9s

fluentd-elasticsearch-xmv8k   1/1  Running 0     9s

状态描述:(本集群公有四个节点)

DESIRED: 需要的 pod 个数 UP-TO-DATE:最新创建的个数

CURRENT: 当前已存在的 pod 个数 AVAILABLE:可用 pod 个数

READY:就绪的个数 NODE SELECTOR:节点选择标签

6、更新 DaemonSet

更新策略:

1. Rallngupdate: DaemonSel 默认更新策略,当更新 DaemonSet 模板后,老的Pod会被先删除,然后再去创建新的 Pod,可以配合健康检查做滚动更新

2. OnDelete:当 DaemonSet 模板更新后,只有手动的删除某一个对应的 Pod,此节点 Pod 才会被更新。

kubectl set image ds/fluentd-elasticsearch fluentd-elasticsearch=fluent/fluentd:v1.4

# kubectl rollout status ds/fluentd-elasticsearch

Waiting for daemon set "fluentd-elasticsearch" rollout to finish: 2 out of 4 new pods have been updated...

Waiting for daemon set "fuentd-elasticsearch" rollout to finish: 2 out of 4 new pods have been updated...

Waiting for daemon set "fluentd-elasticsearch" rollout to finish: 3 of 4 updated pods are available...

daemon set "fluentd-elasticsearch" successfully rolled out

7、管理模式

1. DaemonSet Controller 负责根据配置创建 Pod

2. DaemonSet Controller 跟踪 Job 状态,根据配置及时重试 Pod 或者继续创建

3. DaemonSet Controller 会自动添加 affinity&label 来跟踪对应的 pod,并根据配置在每个节点或者适合的部分节点创建 Pod

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
3天前
|
数据采集 人工智能 安全
|
12天前
|
云安全 监控 安全
|
4天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1052 151
|
4天前
|
编解码 人工智能 机器人
通义万相2.6,模型使用指南
智能分镜 | 多镜头叙事 | 支持15秒视频生成 | 高品质声音生成 | 多人稳定对话
|
17天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1736 9
|
9天前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
683 152
|
11天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
648 12
|
6天前
|
SQL 自然语言处理 调度
Agent Skills 的一次工程实践
**本文采用 Agent Skills 实现整体智能体**,开发框架采用 AgentScope,模型使用 **qwen3-max**。Agent Skills 是 Anthropic 新推出的一种有别于mcp server的一种开发方式,用于为 AI **引入可共享的专业技能**。经验封装到**可发现、可复用的能力单元**中,每个技能以文件夹形式存在,包含特定任务的指导性说明(SKILL.md 文件)、脚本代码和资源等 。大模型可以根据需要动态加载这些技能,从而扩展自身的功能。目前不少国内外的一些框架也开始支持此种的开发方式,详细介绍如下。
409 4