云原生系列(八)

简介: 云原生系列(八)

k8s的工作负载pod

什么是wordloads呢?

工作负载是运行在k8s上的一个应用程序,一个应用很复杂,可能由单个组件或者多个组件共同完成。无论怎么样,可以用一组pod来表示一个工作负载(应用程序)。

什么是pod呢?

pod是一组容器(Containers),多个容器组成的。一个pod至少包含三种容器。

根/pause容器:基础容器

边车容器:从业务角度来说,也是属于应用程序的容器,在isitio里面它是服务网格服务治理那块会剥离出一个容器,这个叫做边车/数据面容器。

应用容器:应用程序的容器

临时容器:调试bug用的一种容器,需要在api-server.yaml开启门禁

pod是一种资源,可以独立使用,是没有调度的,不具备副本管理的能力

简单的Pod资源的例子:


apiVersion: v1kind: Podmetadata:  name: my-pod    spec:  containers:    - name: hello      image: busybox:latest      command: ['sh', '-c', 'echo "Hello, Kubernetes!" && sleep 3600']  restartPolicy: OnFailure

结果如下:kubectl logs -f 容器名:类似tail -f的方式来查看日志

7ca7ace4b03b3213f35f38eb485944ec.png

Pod的生命周期,从大的方向,分为两个节点

第一个阶段初始化容器:比方说有三个初始化容器,这时Pause根容器先把它的活做完,然后初始化容器执行,串行执行。

第二个阶段是运行主容器标准的容器

每个pod都有一个特殊的被称为根容器(父容器)/pause容器。

为什么会存在pause容器呢?

在同一个pod的多个容器是共享命名空间的:共享网络通讯的命名空间,比方说通过localhost,不用ip,这种是容器的标准功能。容器在创建的时候,网络空间是隔离的,localhost是无法访问的,但是pod要打破这种壁垒。

pause容器的职责:

①、它作为pod中共享Linux名称空间的基础容器

②、启用PID进程ID名称空间共享后,它作为每个pod的PID为1的根进程,并回收僵尸进程。

③、共享Pause融国企挂载的持久化卷,这样简化了业务容器之间的通信问题,也解决了容器之间的文件共享问题。

④、共享Pause容器分配的网络资源或者网络命名空间,共享整个Pod的其他容器,其他所有容器都会通过join Namespace的方式加入到根容器的命名空间中。

pasue容器是一个非常小的镜像,大概700KB左右,是一个C语言写的,永远处于暂停状态。注意:进程ID的命名空间没有共享,启动的时候,其他所有容器可以共享存储命名空间和网络共享命名空间。开始启用一下,之后就暂停了。

下面的都是pasue容器:

724eed79150a9a5f7114182907d97732.png

pod健康检查的探针机制

在启动业务容器的之前会调用start钩子方法,然后会调用容器的存活探测:liveness probe和就绪性探测:readiness probe。这两个探测机制也可以同时,也可以自己配置什么时候调用。然后容器的存活性探测会不断的探测是否死亡,如果死亡的话会开启二次调度,然后再停止业务容器之前会调用stop钩子方法。

总之,Pod启动过程中的要点是:

①、pod启动,会先依次执行所有的初始化容器,有一个失败,则Pod不能启动。

②、接下来启动所有的应用容器(每一个应用容器都必须能一直运行起来),Pod开始正式工作,一个启动失败就会尝试重启pod内的这个容器,pod只要NotReady,pod就不对外提供服务了。

相关文章
|
7天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
4天前
|
机器学习/深度学习 算法 大数据
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
2024“华为杯”数学建模竞赛,对ABCDEF每个题进行详细的分析,涵盖风电场功率优化、WLAN网络吞吐量、磁性元件损耗建模、地理环境问题、高速公路应急车道启用和X射线脉冲星建模等多领域问题,解析了问题类型、专业和技能的需要。
2463 14
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
|
4天前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1499 14
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
|
1月前
|
运维 Cloud Native Devops
一线实战:运维人少,我们从 0 到 1 实践 DevOps 和云原生
上海经证科技有限公司为有效推进软件项目管理和开发工作,选择了阿里云云效作为 DevOps 解决方案。通过云效,实现了从 0 开始,到现在近百个微服务、数百条流水线与应用交付的全面覆盖,有效支撑了敏捷开发流程。
19273 29
|
1月前
|
人工智能 自然语言处理 搜索推荐
阿里云Elasticsearch AI搜索实践
本文介绍了阿里云 Elasticsearch 在AI 搜索方面的技术实践与探索。
18822 20
|
1月前
|
Rust Apache 对象存储
Apache Paimon V0.9最新进展
Apache Paimon V0.9 版本即将发布,此版本带来了多项新特性并解决了关键挑战。Paimon自2022年从Flink社区诞生以来迅速成长,已成为Apache顶级项目,并广泛应用于阿里集团内外的多家企业。
17515 13
Apache Paimon V0.9最新进展
|
6天前
|
编解码 JSON 自然语言处理
通义千问重磅开源Qwen2.5,性能超越Llama
击败Meta,阿里Qwen2.5再登全球开源大模型王座
361 11
|
1月前
|
存储 人工智能 前端开发
AI 网关零代码解决 AI 幻觉问题
本文主要介绍了 AI Agent 的背景,概念,探讨了 AI Agent 网关插件的使用方法,效果以及实现原理。
18697 16
|
2天前
|
算法 Java
JAVA并发编程系列(8)CountDownLatch核心原理
面试中的编程题目“模拟拼团”,我们通过使用CountDownLatch来实现多线程条件下的拼团逻辑。此外,深入解析了CountDownLatch的核心原理及其内部实现机制,特别是`await()`方法的具体工作流程。通过详细分析源码与内部结构,帮助读者更好地理解并发编程的关键概念。
|
2天前
|
SQL 监控 druid
Druid连接池学习
Druid学习笔记,使用Druid进行密码加密。参考文档:https://github.com/alibaba/druid
195 82