k8s之pod

1、pod:k8s中最小的资源管理组件,最小化运行容器化应用的资源管理对象

(1)pod是一个抽象的概念,可以理解为一个或者多个容器化应用的集合
(2)一个pod中运行一个容器是最常用的方式
(3)一个pod中同时运行多个容器,在一个pod中可以同时封装多个需要耦合的互相协作的容器,这些多个容器共享资源,互相协作组成一个service单位
(4)一个pod内的容器,必须都运行在一个node节点上,基于现代容器技术的要求,就是一个pod运行一个容器一个容器只运行一个进程
①横向扩展,方便扩缩容
②解耦,一个pod内运行多个容器耦合度太高,一旦一个进程失败,整个pod将全部失败,实现解耦,基于pod可以创建多个副本,实现高可用和负载均衡
③管理方便,简单直观
(5)不论运行一个或者多个容器,k8s管理的都是pod而不是容器

2、pod内的容器共享资源(共享机制)

(1)共享机制:pause底层基础容器来提供共享资源的机制
①pause是基础容器,也可以称为父容器,管理pod内容器的共享操作
②pause还可以管理容器的生命周期
(2)k8s提供了pause容器(pause的作用)
①为pod内的所有容器提供了统一的命名空间
②启动容器的pid命名空间(进程号),每个pod中,pause都作为pid为1的进程(init进程),可回收僵尸进程(pause作为所有容器进程的父进程,管理pod内部的容器进程)
③创建pod时,先创建pause容器,然后再拉取镜像生成容器,最后形成pod(pause来分配和回收容器的资源

(3)kubelet和pause

①kubelet管理node节点上的容器的生命周期,pause管理pod中的容器

(4)pause容器共享两种资源

网络资源

• 每个pod都会被分配一个集群内部的唯一的IP地址,pod内部的容器共享网络,pod在集群内部的IP地址和端口。

• pod内部的容器可以使用localhost互相通信,pod中的容器与外部通信时,从共享的资源当中进行分配,宿主机的端口映射

存储资源

pod可以指定多个共享的volume,pod内的容器共享这些volume

volume可以实现数据的持久化

防止pod重新构建之后文件消失

3、总结

(1)每个pod都有一个基础容器,pause容器
(2)pause容器对应的镜像属于k8s集群的一部分,创建集群就会有pause这个基础镜像
(3)pod里面包含了一个或者多个相关的容器(应用)

4、设置基础基础镜像pause的作用

(1)引入pause机制,代表整个容器组的状态,可以解决对pod内部容器整体状态的判断
(2)pod内的容器共享ip、volume挂载卷,解决了容器内网络通信的问题,解决了容器内部文件共享的问题

5、pod的分类

自主式pod

此类pod不会自我修复,若pod内容器的进程终止或被删除、缺少资源被驱逐,这种pod没有办法自愈

控制器管理pod

能滚动升级、自愈(自动重启)、管理pod的数量以及pod的扩缩容

6、pod的生命周期(重点)

pod生命周期的状态

pending

挂起,pod已被创建,尚未被分配到运行的node节点(原因:节点上资源不够、需要等待其他pod的调度)

running

运行中,pod已经被分配到了node节点,pod内部的所有容器都已经启动,运行状态正常,稳定

complete/

successded

容器内部的进程运行完毕,正常退出,没有发生错误

failed

pod中的容器非正常退出,发生了错误,需要通过查看详情和日志来定位问题

unknow

由于某些原因,k8s集群无法获取pod的状态,一般是APIserver出现问题

terminating

终止中,pod正在被删除,里面的容器正在终止,还要进行资源回收、垃圾清理、以及终止过程中需要执行的命令

7、创建pod的容器分类

(1)基础容器:pause container
(2)init容器(初始化容器):init container(init容器运行完即被终止)
①前两个过程中,pod的状态是init:3/3,才会进入业务容器

init容器的作用

• 环境变量,可以在创建的过程中为业务容器定制好相关的代码和工具

• init容器独立于业务容器,是单独构建的一个镜像,对业务容器不产生任何安全影响

• init容器能以不同于pod内业务容器的文件系统试图运行,secrets的权限,业务容器无法访问secrets的权限

总结:init容器提供了业务容器运行之前的先决条件,提供了一种阻塞或者延迟机制来控制业务容器的启动,只有前置条件满足,才会创建pod的业务容器

(3)业务容器:main container

8、pod容器创建的过程

9、pod创建过程的总结

(1)在pod的启动过程中,容器按照:初始化容器先启动,每个容器必须在下一个容器启动之前成功退出
(2)如果运行失败,会按照容器的重启策略进行指定动作,restartPolicy(always、never、onfailure—非正常退出才会重启)
(3)所有的init容器没有成功之前,pod是不会进入ready状态的,init容器与service无关,不能对外提供访问
(4)如果重启pod,所有的init容器一定会重新执行
(5)如果修改init容器的spec(参数),只限制于image,其他的修改字段都不生效(基于deployment)
(6)每个容器的名称都要唯一,不能重复

10、pod的重启策略(基于容器的状态)

(1)On Failure策略
①状态码正常

②状态码不正常

11、总结

(1)pause容器:底层容器/基础容器
①pause提供pod内容器的网络和存储共享,以及pod内容器退出之后的资源回收
(2)init容器:人为设定的,业务容器启动之前的必要条件
(3)pod的生命周期
①第一步:起pause基础容器
②第二步:init容器全部成功退出,才起业务容器
③poststart、prestop:容器的钩子
④探针:探测容器的健康状态,伴随pod的整个生命周期(除了启动探针)
(4)pod就是用来封装容器的,业务是容器,服务也是容器,端口也是容器

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】常用的基本命令指令①

前言:从今天开始,我们逐步的学习Linux中的内容,和一些网络的基本概念,各位一起努力呐! 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:数据结构 👈 💯代码…

音频DAC,ADC,CODEC高性能立体声

想要让模拟信号和数字信号顺利“交往”,就需要一座像“鹊桥”一样的中介,将两种不同的语言转变成统一的语言,消除无语言障碍。这座鹊桥就是转换器芯片,也就是ADC芯片。ADC芯片的全称是Analog-to-Digital Converter, 即模拟数字转换…

lvs+keepalived+nginx实现四层负载+七层负载

目录 一、lvs配置 二、nginx配置 三、测试 3.1 keepalived负载均衡 3.2 lvskeepalived高可用 3.3 nginx高可用 主机IPlvs01-33 11.0.1.33 lvs02-3411.0.1.34nginx0111.0.1.31nginx0211.0.1.32VIP11.0.1.30 4台主机主机添加host [rootnginx01 sbin]# cat /etc/hosts 127.0.0.…

python flask图书管理系统带文档

python flask图书管理系统带文档。功能:登录,图书的增删改查,读者管理,借阅记录,有文档。 技术:python3,flask,mysql,html。 包含源码数据库文件文档。 源码下载地址: https://download.csd…

Netty使用SSL实现双向通信加密

最近项目有个需求,TCP服务器实现基于证书通信加密,之前没做过,花了一些时间调研,今天整理下。 SSL(Secure Sockets Layer 安全套接字协议) 1、原理 算法原理 简而言之就是非对称加密算法 私钥自己持有,公钥发给对方,对方在发送信息的时候使用公钥进行加密数据,当接收到…

灸哥问答:分布式系统中数据一致性的问题如何解决

在分布式系统,数据一致性的问题是一个老生常谈,必须面对的一个问题,而且又极具挑战和复杂度的一个问题,针对数据一致性的问题,没有一个简单的单一的解决方案可以圆满解决,是需要结合具体的场景,…

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的图像剪切(ROI)功能(C#)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的图像剪切(ROI)功能(C#) Baumer工业相机Baumer工业相机的图像剪切(ROI)功能的技术背景CameraExplorer如何使用图像剪切(ROI)…

【网络安全】有趣的基础知识

背景 逐条记录网络安全学习中有趣的内容和知识。 内容 CNNIC(中国互联网络信息中心)是中国国家域名.cn的管理组织。中国互联网络信息中心于1997年6月3日组建,现为工业和信息化部 直属事业单位 ,行使国家互联网络信息中心职责。…

爆肝整理,企业级性能测试-性能方案设计详细总结(二)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、测试策略 1&a…

【CVPR2023】使用轻量 ToF 传感器的单目密集SLAM的多模态神经辐射场

目录 导读 本文贡献 本文方法 轻量级ToF传感器的感知原理 多模态隐式场景表示 时间滤波技术 实验 实验结果 消融实验 结论 未来工作 论文标题:Multi-Modal Neural Radiance Field for Monocular Dense SLAM with a Light-Weight ToF Sensor 论文链接&am…

Lumerical Script------for语句

Lumerical------for语句 正文正文 关于 Lumerical 中 for 语句的用法这里不做过多说明了,仅仅做一个记录,具体用法如下: 通常我们用的比较多的形式是第一种步长值为 1 的情况。对于其他步长值的情况,我们可以使用第二种用法。对于 while 的类似使用方法可以使用第三种。 …

【SpringBoot框架篇】34.使用Spring Retry完成任务的重试

文章目录 简要1.为什么需要重试?2.添加maven依赖3.使用Retryable注解实现重试4.基于RetryTemplate模板实现重试 简要 Spring实现了一套重试机制,功能简单实用。Spring Retry是从Spring Batch独立出来的一个功能,已经广泛应用于Spring Batch,…

【MySQL·8.0·源码】MySQL 的查询处理

Query processing MySQL 的 Query 处理可以分为 Parse、Prepare(Resolve/Transform)、Optimize 和 Execute 几个阶段 Parse 词法扫描器将 SQL 语句字符串分解为 tokens,语法分析器将 tokens 组装成语法树的子树结构,并 Reduce 为基本查询结构&#xff0…

简单工厂,工厂方法,抽象工厂模式

文章目录 简单工厂模式简单工厂模式的角色简单工厂的介绍 工厂方法UML图片代码工厂方法总结: 抽象工厂代码实现 简单工厂模式 简单工厂模式(Simple Factory Pattern)专门定义一个类来负责创建其他类的实例,被创建的实例通常具有共…

商品推荐系统+可视化+2种协同过滤推荐算法 Django框架 大数据毕业设计(附源码+论文)✅

毕业设计:2023-2024年计算机专业毕业设计选题汇总(建议收藏) 毕业设计:2023-2024年最新最全计算机专业毕设选题推荐汇总 🍅感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题&#xff…

rime中州韵小狼毫 inputShow lua Translator 输入字符透传翻译器

在 rime中州韵小狼毫 help lua Translator 中我们分享了如何使用 lua 脚本定义一个 translator,并以 五笔・拼音 为例引用了该 translator,并且达到了预期的效果。 今天,我们继续通过 lua 脚本为 rime中州韵/小狼毫 输入法打造一个 translat…

std::setlocale详解

头文件 #include <clocale>作用 std::setlocale是C标准库中的一个函数&#xff0c;用于设置当前程序的本地化&#xff08;locale&#xff09;环境。 setlocale 函数安装指定的系统本地环境或其一部分&#xff0c;作为新的 C 本地环境。 修改保持效果&#xff0c;并影…

【MyBatis】配置 SQL 提示(IDEA 代码自动补全)和解决未能解析数据库 Unable to resolve table ‘employee‘ 问题

默认在 MyBatis 中编写 SQL 语句是不识别的。 需要做如下配置&#xff1a; 然后 SQL 语句可以出现提示&#xff0c;但是自己的数据库会报错&#xff1a; 原因是 IDEA 没有和 数据库 建立连接&#xff0c;需要连接数据库&#xff08;注意&#xff1a;需要具体到某个 Schema&…

人工智能_机器学习080_KMeans聚类算法原理和流程_KMeans损失函数_随机聚类中心_对异常值_初始值敏感---人工智能工作笔记0120

然后我们来看一下KMeans聚类算法的原理 可以看到,聚类的过程是,首先1.将N个样本数据,映射到K个簇中,这个K就是我们指定的划分成几类,比如3对吧,那么 指定了K个类别以后,然后 我们再去随机指定K个,簇中心 然后再去计算,我们指定的这个簇中心,到簇中所有样本的距离的平均值, 我…

多模态——旷视大模型Vary更细粒度的视觉感知实现文档级OCR或图表理解

概述 现代大型视觉语言模型&#xff08;LVLMs&#xff09;&#xff0c;例如CLIP&#xff0c;使用一个共同的视觉词汇&#xff0c;以适应多样的视觉任务。然而&#xff0c;在处理一些需要更精细和密集视觉感知的特殊任务时&#xff0c;例如文档级OCR或图表理解&#xff0c;尤其…