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就是用来封装容器的,业务是容器,服务也是容器,端口也是容器
相关文章:
k8s之pod
1、pod:k8s中最小的资源管理组件,最小化运行容器化应用的资源管理对象 (1)pod是一个抽象的概念,可以理解为一个或者多个容器化应用的集合 (2)一个pod中运行一个容器是最常用的方式 ÿ…...
第二百四十三回 再分享一个Json工具
文章目录 1. 概念介绍2. 分析与比较2.1 分析问题2.2 比较差异 3. 使用方法4. 内容总结 我们在上一章回中介绍了"分享三个使用TextField的细节"相关的内容,本章回中将再 分享一个Json插件.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我…...
electron自定义菜单
创建menu.js const { app, Menu } require("electron"); const createMenu () > {const menu [{label: "菜单",submenu: [{label: "新增",click: () > {},}, ],},{label: "关于",submenu: [{label: "新增",click:…...
变量和函数提升(js的问题)
• js解释执行 • 变量和函数提升 变量声明提前,函数声明提前 • 变量声明提前:值停留在本地 • 函数声明提前:整个函数体提前 如果是var赋值声明的函数,变量提前,函数体停留在本地 1、变量提…...
Excel 插件:ASAP Utilities Crack
ASAP Utilities是一款功能强大的 Excel 插件,填补了 Excel 的空白。在过去的 20 年里,我们的加载项已经发展成为世界上最受欢迎的 Microsoft Excel 加载项之一。 ASAP Utilities 中的功能数量(300 多个)可能看起来有点令人眼花缭乱…...
hyperf 十九 数据库 二 模型
教程:Hyperf 一、命令行 symfony/console-CSDN博客 hypery 十一、命令行-CSDN博客 hyperf console 执行-CSDN博客 根据之前应该能了解到命令行的基本实现,和hyperf中命令行的定义。 1.1 命令初始化 hyperf.php中系统初始化中通过ApplicationFacto…...
使用python快速开发与PDF文档对话的Gemini聊天机器人
检索增强生成(Retrieval-augmented generation,RAG)使得我们可以让大型语言模型(LLMs)访问外部知识库数据(如pdf,word、text等),从而让人们可以更加方便的通过LLM来学习外部数据的知识。今天我们将利用之前学习到的RAG方法,谷歌Gemini模型和l…...
Spring Cloud Gateway集成Knife4j
1、前提 网关路由能够正常工作。 案例 基于 Spring Cloud Gateway Nacos 实现动态路由拓展的参考地址:Spring Cloud Gateway Nacos 实现动态路由 详细官网案例:https://doc.xiaominfo.com/docs/middleware-sources/spring-cloud-gateway/spring-gatewa…...
Hive10_窗口函数
窗口函数(开窗函数) 1 相关函数说明 普通的聚合函数聚合的行集是组,开窗函数聚合的行集是窗口。因此,普通的聚合函数每组(Group by)只返回一个值,而开窗函数则可为窗口中的每行都返回一个值。简单理解,就是对查询的结果多出一列…...
ipvsadm命令详解
ipvsadm命令详解 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨一个在Linux系统网络管理中极具威力的命令——ipvsadm,通过详细解析…...
zabbix通过自动发现-配置监控项、触发器(小白教程)
自动发现配置参考链接(不小白,不友好) zabbix-get介绍 1配置 zabbix server:版本7(不影响),IP地址:192.168.0.60zabbix agent:版本agent1(不影响)ÿ…...
Dockerfile文件介绍
0 Preface/Foreword 0.1 Docker docker用来自制镜像。 1 Introduction 1.1 Dockerfile Dockerfile是用于定义Docker镜像的构建过程,它包含一系列的指令用于安装 软件包、配置环境等操作。 Dockerfile文件的格式如下: FROM base_image RUN apt-get up…...
【PHP】函数array_reduce()使用场景
目录 1.计算数组中所有元素的和 2.计算数组中所有元素的乘积 3.将多个字符串连接在一起 4.对数组中的元素进行逻辑计算 5.取出第一个满足条件的数组,筛选有用数组 6.array_reduce()函数的基本语法: array_reduce 函数通常用于对数组中的元素进行累…...
软件测试基础理论学习-软件测试方法论
软件测试方法论 软件测试的方法应该建立在不同的软件测试类型上,不同的测试类型会存在不同的方法。本文以软件测试中常见的黑盒测试为例,简述常见软件测试方法。 黑盒测试用例设计方法包括等价类划分法、边界值分析法、因果图法、判定表驱动法、正交试…...
Unity 关于点击不同物品移动并触发不同事件
关于点击不同物品触发不同事件 可以实现在界面中点击不同的物体,移动到物品附近位置,然后触发对应的事件。 首先建立一个公共管理的类: public class InteractionObject : MonoBehaviour {private NavMeshAgent PlayerAgent;private bool …...
c++IO库详细介绍
文章目录 前言c IO 类简介1. iostream库iostream 类标准IO对象 2. fstream库fstream 类 3. stringstream库stringstream 类 格式化和控制错误处理 IO对象无拷贝或赋值IO条件状态主要的状态标志检查流状态控制流状态示例 管理输出缓冲主要操作示例 文件输入输出使用文件流对象示…...
海外静态IP和动态IP有什么区别?推荐哪种?
什么是静态ip、动态ip,二者有什么区别?哪种好?关于这个问题,不难发现,在知道、知乎上面的解释有很多,但据小编的发现,这些回答都是关于静态ip和动态ip的专业术语解释,普通非专业人事…...
OpenHarmony从入门到放弃(一)
OpenHarmony从入门到放弃(二) 一、OpenHarmony的基本概念和特性 OpenHarmony是由开放原子开源基金会孵化及运营的开源项目,其目标是构建一个面向全场景、全连接、全智能的时代的智能终端设备操作系统。 分布式架构 OpenHarmony采用分布式…...
Unity3D UGUI图集打包与动态使用(TexturePacker)
制作图集的好处: 众所周知CPU是用来处理游戏的逻辑运算的,而GPU是用来处理游戏中图像的。在GPU中,我们要绘制一个图像需要提交图片(纹理)到显存,然后再进行绘制(在这个过程中会产生一次DrawCall…...
java maven项目添加oracle jdbc的依赖
一般添加依赖是直接在pom.xml中添加配置即可,Maven会自动获取对应的jar包,但是oracle驱动依赖添加后会显示红色,代表找不到依赖项,是因为Oracle授权问题,Maven3不提供Oracle JDBC driver,为了在Maven项目中…...
半导体诊断技术:从扫描逻辑到根因解卷积
1. 半导体诊断技术演进与挑战 在半导体制造领域,诊断技术始终扮演着至关重要的角色。想象一下,当芯片在测试阶段出现故障时,工程师们就像医生面对病患一样,需要通过一系列"检查手段"来定位问题根源。扫描逻辑诊断&#…...
别再搞混了!DCI-P3、Display P3、sRGB色彩空间到底差在哪?给设计师和开发者的实用指南
别再搞混了!DCI-P3、Display P3、sRGB色彩空间到底差在哪?给设计师和开发者的实用指南 打开设计软件的色彩配置选项,你是否曾被DCI-P3、Display P3、sRGB这些术语搞得晕头转向?当客户抱怨"这个红色在手机上看起来不一样"…...
零基础避坑指南什么工具可以录音转待办
还在手动把面试录音扒成文字再摘待办?做HR的谁没踩过这个坑:整理一小时,漏了候选人关键信息,还把待办记错,今天直接讲能直接上手的方法,零基础也不会踩坑。我做HR那几年,光整理录音待办就熬了无…...
XSP25全协议 100W PD快充诱骗芯片_串口读电压电流信息
在Type-C快充技术普及的今天,快充诱骗协议芯片成为小家电、智能硬件、锂电设备等产品实现高效取电的核心器件。XSP25作为汇铭达推出的Type‑C受电端(Sink)多功能快充取电芯片,以全协议兼容、100W大功率输出、串口智能通信、极简外…...
如何永久保存微信聊天记录:WeChatMsg完整指南与数据安全终极方案
如何永久保存微信聊天记录:WeChatMsg完整指南与数据安全终极方案 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trendin…...
HDiffPatch嵌入式系统应用:如何在MCU和NB-IoT设备上实现OTA更新
HDiffPatch嵌入式系统应用:如何在MCU和NB-IoT设备上实现OTA更新 【免费下载链接】HDiffPatch a C\C library and command-line tools for Diff & Patch between binary files or directories(folder); cross-platform; runs fast; create small delta/different…...
FPGA频率测量实战:从原理到实现,三种方法深度解析与选型指南
1. FPGA频率测量的工程意义与挑战 在数字电路设计中,频率测量就像给信号"把脉",是评估系统健康状况的基础操作。想象你正在开发一款智能温控器,需要精确测量风扇转速信号;或者设计无线通信模块,要监控本振频…...
北京数据恢复公司哪个公司好
在当今数字化时代,数据的重要性不言而喻。无论是个人用户的珍贵照片、文档,还是企业的重要商业数据,一旦丢失,都可能造成巨大的损失。在北京,有众多的数据恢复公司,那么哪家公司才是最好的选择呢࿱…...
现实是期待的土壤,期待是改变现实的方向
期待的对立统一结构期待 理想应然(正题) vs 现实实然(反题),二者的统一构成一个动态的矛盾运动。同一性(相互依存):没有对现实的不满足和对未来的向往,就没有期待&#…...
如何做谷歌SEO排名优化?搞定高质量外链的4种高成功率技巧
很多刚接触谷歌SEO的朋友发现,自己的网站内容写了不少,可排名始终在搜索结果的五六页开外晃悠。排除掉网站技术层面的小毛病,最让大家头疼的往往就是外链。你可以把外链看作是其他网站给你的“信任投票”,如果投给你的都是些街边的…...
