当前位置: 首页 > news >正文

k8s yaml文件pod的生命周期

Pod是k8s中最小限额资源管理组件,也是最小化运行容器化的应用的资源管理对象。

Pod是一个抽象的概念,可以理解为一个或者多个容器化应用的集合。

在一个pod当中运行一个容器是最常用的方式。

在一个pod当中同时运行多个容器,在一个pod当中可以同时封装几个需要耦合的相互协作的容器。这些多个容器共享资源,也可以互相协作组成一个service单位。

不论运行一个容器还是多个容器。k8s管理的都是pod而不是容器。

一个pod内的容器,必须都运行在同一个节点上。基于现代容器技术的要求,一个pod运行一个容器,一个容器只运行一个进程。

横向扩展,方便扩缩容

解耦,一个pod内运行多个容器,耦合度太高,一但一个进程失败,整个pod将全部失败,实现解耦。基于pod可以创建多个副本实现高可用和负载均衡。管理方便简单直观。

Pod内的容器共享资源。共享机制:pause底层基础容器来提供共享资源的机制。

Pause容器是基础容器,也可以称为父容器,管理pod内容器的共享操作。

Pause还可以管理容器的生命周期

k8s提供了pause容器两大功能:

  1. 为pod内的所有容器提供一个命名空间
  2. 启动容器的pid(进程号)命名空间,每个pod中都作为pid唯一的进程(init进程)。回收僵尸进程。
  3. 创建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外再设置一个基础镜像:

  1. pod内部有一组容器,挂了一个,就算这个pod失效了吗? 引入pause禁止,代表整个容器的组的状态。可以解决对pod内部容器整体状态的判断。
  2. Pod内的容器共享ip 共享volume,解决了容器内网络通信的问题,解决了容器内部文件共享问题。

Pod的生命周期状态

  1. pending  挂起  pod已被创建,但是尚未被分配到运行的node节点(节点上资源不够,需要等待其他pod的调度)
  2. running:运行中。Pod已经被分配到了node节点,pod内部的所有容器都已经启动,运行状态正常,稳定。
  3. complete:容器内部的进程运行完毕,正常退出。没有发生错误。
  4. faild:pod中的容器非正常退出。发生错误,需要通过查看详情和日志来定位问题。
  5. UNkown:由于某些原因,k8s集群无法获取pod的状态。APIserver出了问题。
  6. terminating:终止中 ,pod正在被删除,里面的容器正在终止。终止过程中,资源回收,垃圾清理,以及终止过程中需要执行的命令。

创建pod的容器分类:

  1. 基础容器:pause
  2. Init容器(初始化容器):init c

    1和2这个过程中。Pod的状态就是init:  0/3

  1. 业务容器

init容器的作用:

环境变量      

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

Init容器独立与业务容器,他是单独构建的一个镜像,对业务容器不产生任何安全影响。

Init容器能以不同于pod内应用容器的文件系统视图运行。Secrets的权限。应用容器无法访问sercerts的权限。

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

  1. 在pod的启动过程中,容器按照初始化容器先启动,每个容器必须在下一个容器启动之前,要成功退出。
  2. 如果运行失败,会按照容器的重启策略进行指定动作。RestartPolicy  Always never  onFailure(非正常退出才会重启)
  3. 所有的init容器没有成功之前,pod是不会进入ready状态。

Init容器与service无法。不能对外提供访问。

  1. 如果重启pod,所有的init容器一定会重新执行
  2. 如果修改init容器的spec(参数),只限于image,其他的修改字段 都不生效(基于deploment。
  3. 每个容的名称都要唯一,不能重复。

Pod的重启策略:

总结:

Pause容器:底层容器/基础容器

提供pod内容器的网络和存储共享,以及pod内容器退出之后的资源回收。、

Init容器:人为设定的,业务容器启动之间的必要条件。

Pod的生命周期:

  1. pause基础容器
  2. Init容器----全部成功退出-------业务容器
  3. Poststart  prestop  容器的钩子

启动时命令和退出时的命令

  1. 探针:探测容器的健康状态。伴随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语法结构&#xff1a; 循环初始值&#xff1b; do{ //代码&#xff1b; 增量&#xff1b; }while(循环条件)&#xff1b; <script> // 输出十句 &#xff1a; 你好世界 var …...

1042: 数列求和3 和 1057: 素数判定 和 1063: 最大公约与最小公倍

1042: 数列求和3 题目描述 求1-2/33/5-4/75/9-6/11...的前n项和&#xff0c;结果保留3位小数。 输入 输入正整数n(n>0)。 输出 输出一个实数&#xff0c;保留3位小数&#xff0c;单独占一行。 样例输入 5 样例输出 0.917 #include<stdio.h> int main(){in…...

[足式机器人]Part2 Dr. CAN学习笔记-动态系统建模与分析 Ch02-8 Bode Plot伯德图

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-动态系统建模与分析 Ch02-8 Bode Plot伯德图 Bode Plot 手绘技巧与应用...

Java 将Excel转换为TXT文本格式

TXT文件是一种非常简单、通用且易于处理的文本格式。在处理大规模数据时&#xff0c;将Excel转为TXT纯文本文件可以提高处理效率。此外&#xff0c;许多编程语言和数据处理工具都有内置的函数和库来读取和处理TXT文件&#xff0c;因此将Excel文件转换为TXT还可以简化数据导入过…...

什么事“网络水军”?他们的违法活动主要有四种形式

我国治理网络水军&#xff0c;包括造谣引流、舆情敲诈、刷量控评、有偿删帖等各类“网络水军”等违法犯罪活动已经许久。 日前&#xff0c;官方召开新闻发布会&#xff0c;公布了相关的一些案件进程&#xff0c;今年已累计侦办相关案件339起&#xff0c;超过历年的全年侦办案件…...

授权策略(authorize方法)

authorize方法&#xff08;授权策略的使用示例&#xff09; $this->authorize(destroy, $status) 要实现这个功能&#xff0c;你需要执行以下步骤&#xff1a; 1、创建一个授权策略&#xff1a; 在Laravel中&#xff0c;授权策略是用于定义用户对特定操作的权限的类。你可…...

FFmpeg获取音视频流信息

文章目录 前言一、需求二、源码三、运行结果 前言 本文记录用 FFmpeg 获取视频流音频流的信息&#xff08;编码格式、分辨率、帧率、播放时长…&#xff09;&#xff0c;所用的工程基于上个博客编译成功的工程&#xff1a;使用FFmpeg4.3.1的SDK官方开发包编译ffmpeg.c 一、需求…...

编程语言的走向又将如何呢?

编程语言的未来&#xff1f; 随着科技的飞速发展&#xff0c;编程语言在计算机领域中扮演着至关重要的角色。它们是软件开发的核心&#xff0c;为程序员提供了与机器沟通的桥梁。那么&#xff0c;在技术不断进步的未来&#xff0c;编程语言的走向又将如何呢&#xff1f; 1. 更…...

基于SpringBoot的电影评论网站

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的电影评论网站,java项目…...

粒子群算法优化支持向量SVM的供热量预测,粒子群优化支持向量机SVM回归分析

目录 背影 支持向量机SVM的详细原理 SVM的定义 SVM理论 粒子群算法原理 SVM应用实例,粒子群算法优化支持向量SVM的供热量预测,粒子群优化支持向量机SVM回归分析 代码 结果分析 展望 完整代码:粒子群算法优化支持向量SVM的供热量预测,粒子群优化支持向量机SVM回归分析_lssv…...

【Verilog】运算符

系列文章 数值&#xff08;整数&#xff0c;实数&#xff0c;字符串&#xff09;与数据类型&#xff08;wire、reg、mem、parameter&#xff09; 系列文章算术运算符关系运算符相等关系运算符逻辑运算符按位运算符归约运算符移位运算符条件运算符连接和复制运算符 算术运算符 …...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化&#xff1a;从政策驱动到多元盈利 政策全面赋能 2025年4月&#xff0c;国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》&#xff0c;首次明确虚拟电厂为“独立市场主体”&#xff0c;提出硬性目标&#xff1a;2027年全国调节能力≥2000万千瓦&#xff0…...