k8s yaml文件pod的生命周期
Pod是k8s中最小限额资源管理组件,也是最小化运行容器化的应用的资源管理对象。
Pod是一个抽象的概念,可以理解为一个或者多个容器化应用的集合。
在一个pod当中运行一个容器是最常用的方式。
在一个pod当中同时运行多个容器,在一个pod当中可以同时封装几个需要耦合的相互协作的容器。这些多个容器共享资源,也可以互相协作组成一个service单位。
不论运行一个容器还是多个容器。k8s管理的都是pod而不是容器。
一个pod内的容器,必须都运行在同一个节点上。基于现代容器技术的要求,一个pod运行一个容器,一个容器只运行一个进程。
横向扩展,方便扩缩容
解耦,一个pod内运行多个容器,耦合度太高,一但一个进程失败,整个pod将全部失败,实现解耦。基于pod可以创建多个副本实现高可用和负载均衡。管理方便简单直观。
Pod内的容器共享资源。共享机制:pause底层基础容器来提供共享资源的机制。
Pause容器是基础容器,也可以称为父容器,管理pod内容器的共享操作。
Pause还可以管理容器的生命周期
k8s提供了pause容器两大功能:
- 为pod内的所有容器提供一个命名空间
- 启动容器的pid(进程号)命名空间,每个pod中都作为pid唯一的进程(init进程)。回收僵尸进程。
- 创建pod时,先创建pause容器,然后拉取镜像,形成pod。

第一步:master节点发出指令,pod使用的镜像nginx。Pod的副本数
第二部:kube-scheduler来分配执行的node节点
第三部:node节点的kubelet收到master指令。拉pause,拉nginx:1.22 pod1
第四部:pause容器先启动,提供命名空间,进程管理pid1 来为pod内的容器提供共享服务以及 容器的进程管理。
Pause容器共享两种资源
网络:每个pod都会被分配一个集群内部的唯一IP地址,pod内的容器共享网络。Pod在集群内部的ip地址和端口。
Pod内部的容器可以使用localhost互通通信。Pod的中容器与外部通信时,从共享的资源当中进行分配,宿主机的端口映射。
Pause容器共享两种资源
网络:每个pod都会被分配一个集群内部的唯一IP地址,pod内的容器共享网络。Pod在集群内部的ip地址和端口。
Pod内部的容器可以使用localhost互通通信。Pod的中容器与外部通信时,从共享的资源当中进行分配,宿主机的端口映射。
总结:
每个pod都有一个基础容器pause容器。
Pause容器对应的镜像属于k8s集群的一部分。创建集群就会有pause这个基础镜像。
Pod里面包含看一个或者多个相关的容器(应用)
Pod外再设置一个基础镜像:
- pod内部有一组容器,挂了一个,就算这个pod失效了吗? 引入pause禁止,代表整个容器的组的状态。可以解决对pod内部容器整体状态的判断。
- Pod内的容器共享ip 共享volume,解决了容器内网络通信的问题,解决了容器内部文件共享问题。
Pod的生命周期状态
- pending 挂起 pod已被创建,但是尚未被分配到运行的node节点(节点上资源不够,需要等待其他pod的调度)
- running:运行中。Pod已经被分配到了node节点,pod内部的所有容器都已经启动,运行状态正常,稳定。
- complete:容器内部的进程运行完毕,正常退出。没有发生错误。
- faild:pod中的容器非正常退出。发生错误,需要通过查看详情和日志来定位问题。
- UNkown:由于某些原因,k8s集群无法获取pod的状态。APIserver出了问题。
- terminating:终止中 ,pod正在被删除,里面的容器正在终止。终止过程中,资源回收,垃圾清理,以及终止过程中需要执行的命令。

创建pod的容器分类:
- 基础容器:pause
- Init容器(初始化容器):init c
1和2这个过程中。Pod的状态就是init: 0/3
- 业务容器
init容器的作用:
环境变量
可以在创建的过程中为业务容器定制好相关的代码和工具
Init容器独立与业务容器,他是单独构建的一个镜像,对业务容器不产生任何安全影响。
Init容器能以不同于pod内应用容器的文件系统视图运行。Secrets的权限。应用容器无法访问sercerts的权限。
总结:init容器提供了应用容器运行之前的先决条件,提供了一种阻塞或者延迟机制来控制应用容器的启动,只有前置条件满足,才会创建pod的应用容器。
- 在pod的启动过程中,容器按照初始化容器先启动,每个容器必须在下一个容器启动之前,要成功退出。
- 如果运行失败,会按照容器的重启策略进行指定动作。RestartPolicy Always never onFailure(非正常退出才会重启)
- 所有的init容器没有成功之前,pod是不会进入ready状态。
Init容器与service无法。不能对外提供访问。
- 如果重启pod,所有的init容器一定会重新执行
- 如果修改init容器的spec(参数),只限于image,其他的修改字段 都不生效(基于deploment。
- 每个容的名称都要唯一,不能重复。

![]()

Pod的重启策略:


总结:
Pause容器:底层容器/基础容器
提供pod内容器的网络和存储共享,以及pod内容器退出之后的资源回收。、
Init容器:人为设定的,业务容器启动之间的必要条件。
Pod的生命周期:
- pause基础容器
- Init容器----全部成功退出-------业务容器
- Poststart prestop 容器的钩子
启动时命令和退出时的命令
- 探针:探测容器的健康状态。伴随pod的整个生命周期(除了启动探针)
总结:pod就是用来封装容器的,业务是容器。服务也是容器端口也是容器
相关文章:
k8s yaml文件pod的生命周期
Pod是k8s中最小限额资源管理组件,也是最小化运行容器化的应用的资源管理对象。 Pod是一个抽象的概念,可以理解为一个或者多个容器化应用的集合。 在一个pod当中运行一个容器是最常用的方式。 在一个pod当中同时运行多个容器,在一个pod当中…...
MPEG4Extractor
1、readMetaData 必须要找到 Moov box,找到 Mdat box或者 Moof box,并且创建了 ItemTable 大端 box 分为 box header 和 box content: box header由8个字节组成,前面四个字节表示这个box 的大小(包含这个头的8字节&a…...
我在工作一年时怎么都看不懂的编程写法。今天手把手教给你
作为一名程序员,你一定遇到或亲自写过这样的代码。有人将它形象的形容为shi山,或者被戏称为“面向保就业编程”。 以下面这个代码为例,其中的问题也显而易见,当越来越多的条件判断时,代码会变得非常臃肿,难…...
ThinkPHP5多小区物业管理系统源码(支持多小区)
基于 ThinkPHP5 Bootstrap 倾力打造的多小区物业 管理系统源码,操作简单,功能完善,用户体验良好 开发环境PHP7mysql 安装步骤: 1.新建数据库db_estate,还原数据db_estate.sql 2.修改配置文件:application/database.php 3.运…...
2024 年 API 安全:预测和趋势
随着技术以前所未有的速度不断进步,API(应用程序编程接口)安全性的复杂性也随之增加。随着 API 在现代应用程序和服务中的激增,组织将需要更好地了解其 API 环境以及 API 给运营带来的风险。 到 2024 年,预计几个关键…...
3D模型UV展开原理
今年早些时候,我为 MAKE 杂志写了一篇教程,介绍如何制作视频游戏角色的毛绒动物。 该技术采用给定的角色 3D 模型及其纹理,并以编程方式生成缝纫图案。 虽然我已经编写了一般摘要并将源代码上传到 GitHub,但我在这里编写了对使这一…...
SPL-cmcRVFL+
吐槽 作者未提供代码,还有图1敢再糊点吗?...
Vue3+TS+Vite 构建自动导入开发环境
关注⬆️⬆️⬆️⬆️ 专栏后期更新更多前端内容 在一个使用 Vue 3、Vite 和 TypeScript 的项目中,配置 unplugin-auto-import 和 unplugin-vue-components 插件可以极大地提高开发效率,因为它们可以自动导入 Vue 相关的 API 和 Vue 组件,从而减少了手动导入的需要。 文章目…...
长期使用外接键盘,外物压着自带键盘,容易导致华硕飞行堡垒FX53VD键盘全部失灵【除电源键】
华硕飞行堡垒FX53VD键盘全部失灵【除电源键】 前言一、故障排查二、发现问题三、使用方法总结 前言 版本型号: 型号 ASUS FX53VD(华硕-飞行堡垒) 板号:GL553VD 故障情况描述: 键盘无法使用,键盘除开机键外…...
JavaScript-循环嵌套断点调试-笔记
1.do...while循环 do while语法结构: 循环初始值; do{ //代码; 增量; }while(循环条件); <script> // 输出十句 : 你好世界 var …...
1042: 数列求和3 和 1057: 素数判定 和 1063: 最大公约与最小公倍
1042: 数列求和3 题目描述 求1-2/33/5-4/75/9-6/11...的前n项和,结果保留3位小数。 输入 输入正整数n(n>0)。 输出 输出一个实数,保留3位小数,单独占一行。 样例输入 5 样例输出 0.917 #include<stdio.h> int main(){in…...
[足式机器人]Part2 Dr. CAN学习笔记-动态系统建模与分析 Ch02-8 Bode Plot伯德图
本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-动态系统建模与分析 Ch02-8 Bode Plot伯德图 Bode Plot 手绘技巧与应用...
Java 将Excel转换为TXT文本格式
TXT文件是一种非常简单、通用且易于处理的文本格式。在处理大规模数据时,将Excel转为TXT纯文本文件可以提高处理效率。此外,许多编程语言和数据处理工具都有内置的函数和库来读取和处理TXT文件,因此将Excel文件转换为TXT还可以简化数据导入过…...
什么事“网络水军”?他们的违法活动主要有四种形式
我国治理网络水军,包括造谣引流、舆情敲诈、刷量控评、有偿删帖等各类“网络水军”等违法犯罪活动已经许久。 日前,官方召开新闻发布会,公布了相关的一些案件进程,今年已累计侦办相关案件339起,超过历年的全年侦办案件…...
授权策略(authorize方法)
authorize方法(授权策略的使用示例) $this->authorize(destroy, $status) 要实现这个功能,你需要执行以下步骤: 1、创建一个授权策略: 在Laravel中,授权策略是用于定义用户对特定操作的权限的类。你可…...
FFmpeg获取音视频流信息
文章目录 前言一、需求二、源码三、运行结果 前言 本文记录用 FFmpeg 获取视频流音频流的信息(编码格式、分辨率、帧率、播放时长…),所用的工程基于上个博客编译成功的工程:使用FFmpeg4.3.1的SDK官方开发包编译ffmpeg.c 一、需求…...
编程语言的走向又将如何呢?
编程语言的未来? 随着科技的飞速发展,编程语言在计算机领域中扮演着至关重要的角色。它们是软件开发的核心,为程序员提供了与机器沟通的桥梁。那么,在技术不断进步的未来,编程语言的走向又将如何呢? 1. 更…...
基于SpringBoot的电影评论网站
文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的电影评论网站,java项目…...
粒子群算法优化支持向量SVM的供热量预测,粒子群优化支持向量机SVM回归分析
目录 背影 支持向量机SVM的详细原理 SVM的定义 SVM理论 粒子群算法原理 SVM应用实例,粒子群算法优化支持向量SVM的供热量预测,粒子群优化支持向量机SVM回归分析 代码 结果分析 展望 完整代码:粒子群算法优化支持向量SVM的供热量预测,粒子群优化支持向量机SVM回归分析_lssv…...
【Verilog】运算符
系列文章 数值(整数,实数,字符串)与数据类型(wire、reg、mem、parameter) 系列文章算术运算符关系运算符相等关系运算符逻辑运算符按位运算符归约运算符移位运算符条件运算符连接和复制运算符 算术运算符 …...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
