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就是用来封装容器的,业务是容器。服务也是容器端口也是容器

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

异常处理:全面覆盖与精细化管理的平衡

异常处理:全面覆盖与精细化管理的平衡 在软件开发中,异常处理是保证系统稳定性和用户体验的重要环节。对于是否应当全面覆盖所有异常并设立兜底机制,业界存在着两种主流思路:全面覆盖原则和精细化处理。如何在这两者间取得平衡&a…

1.框架介绍项目环境配置与项目启动!

目录 1.框架开发方向:2.项目启动与环境搭建 1.框架开发方向: 1.前后端分离项目 2.纯后端项目 3.移动端开发uni-app(ios、Android、H5、微信小程序) 4.内容管理系统2.项目启动与环境搭建 1.安装node.js 下载地址可以用nvm安装 便于运行前端项目https://blog.csdn.net/qq_58647…

webpack的性能优化(一)——分包优化

1.什么是分包?为什么要分包? 默认情况下,Webpack 会将所有代码构建成一个单独的包,这在小型项目通常不会有明显的性能问题,但伴随着项目的推进,包体积逐步增长可能会导致应用的响应耗时越来越长。归根结底这…

led恒流式驱动电源芯片一览表

LED恒流式驱动电源芯片是一种用于驱动LED灯的关键组件。它能够稳定地提供恒定的电流,确保LED灯的亮度和颜色始终保持一致。 LED恒流式驱动电源芯片通常由电源管理单元、恒流输出部分和保护电路组成。电源管理单元负责转换输入电压为恒定的直流电压,并通…

App Crawler

Google官方出了一款App遍历工具App Crawler。 文档:应用抓取工具 | Android 开发者 | Android Developers App Crawler工具是Android Jetpack的一部分,它可自动的运行你的App,不需要编写或维护任何代码。 通过App Crawler运行App&…

数字后端设计实现之自动化useful skew技术(Concurrent Clock Data)

在数字IC后端设计实现过程中,我们一直强调做时钟树综合要把clock skew做到最小。原因是clock skew的存在对整体设计的timing是不利的。 但是具体到某些timing path,可能它的local clock skew对timing是有帮助的,比如如下图所示。 第一级FF到第…

简单易懂的PyTorch激活函数大全详解

目录 torch.nn子模块Non-linear Activations nn.ELU 主要特点与注意事项 使用方法与技巧 示例代码 图示 nn.Hardshrink Hardshrink函数定义 参数 形状 示例代码 图示 nn.Hardsigmoid Hardsigmoid函数定义 参数 形状 示例代码 图示 nn.Hardtanh HardTanh函数…

windows系统升级

问题 windows系统升级 详细问题 笔者手边有台电脑,操作系统版本为windowsXP,现需要升级至windows较新版本 解决方案 1、 内容备份 若C盘有重要数据文件 ,对于C盘(重要数据文件)进行备份 2、下载软件天猫一键重装…

【数据结构】数据结构中应用题大全(完结)

自己在学习过程中总结了DS中几乎所有的应用题,可以用于速通期末考/考研/各种考试。很多方法来源于B站大佬,底层原理本文不做过多介绍,建议自己研究。例题大部分选自紫皮严书。pdf版在主页资源 一、递归时间/空间分析 1.时间复杂度的分析 设…

MySQL之子查询、连接查询(内外)以及分页查询(实操)

文章目录 前言一、SQL脚本二、实操以及实现思路 前言 续上篇博主MySQL之视图&索引&执行计划这篇给大家讲解MySQL之子查询、连接查询(内&外)以及分页查询 一、SQL脚本 /*Navicat Premium Data TransferSource Server : localhostSource Server Type :…

Koodo Reader : 一个开源免费的电子书阅读器

今天在浏览 GitHub 的时候,偶然发现了一个非常有趣的开源项目——Koodo Reader。这个项目是一款开源免费的电子书阅读器,支持多种格式。它具有一些非常独特的功能,深深地吸引了我的注意。在接下来的内容中,我将为大家详细介绍一下…

07、Kafka ------ 消息生产者(演示 发送消息) 和 消息消费者(演示 监听消息)

目录 Kafka --- 消息生产者★ 消息★ 消息的分发机制★ 分发到哪个分区★ 轮询策略(round-robin)★ 使用命令行工具发送消息演示添加消息 Kafka --- 消息消费者★ 消息消费者命令▲ 监听 【指定主题】 的所有消息:▲ 监听 【指定主题、指定分区】的所有消…

LED电平显示驱动电路图

LB1409九位LED电平显示驱动电路 如图所示为LBl409九位LED电平显示驱动电路。图(a)是用LB1409做电平显示驱动电路,图(b)是应用基准电压电平显示驱动电路。LB1409是日本东京互洋电机株式会社生产的产品,与其…

开启Android学习之旅-5-Activity全屏

Android 两种方式设置全屏: 1. 第一行代码中的方法 通过 getWindow().getDecorView()方法拿到当前Activity的DecorView,再调用 setSystemUiVisibility() 方法来改变系统UI的显示,这里传入了 View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 和 View.SYSTEM_UI_…

上海雏鸟科技无人机灯光秀跨年表演点亮三国五地夜空

2023年12月31日晚,五场别开生面的无人机灯光秀跨年表演在新加坡圣淘沙、印尼雅加达、中国江苏无锡、浙江衢州、陕西西安等五地同步举行。据悉,这5场表演背后均出自上海的一家无人机企业之手——上海雏鸟科技。 在新加坡圣淘沙西乐索海滩,500架…

设计模式的艺术P1基础—2.2 类与类的UML图示

设计模式的艺术P1基础—2.2 类与类的UML图示 在UML 2.0的13种图形中,类图是使用频率最高的两种UML图之一(另一种是用于需求建模的用例图),它用于描述系统中所包含的类以及它们之间的相互关系,帮助人们简化对系统的理解…

Avalonia学习(二十一)-自定义界面演示

今天开始继续Avalonia练习。 本节&#xff1a;自定义界面 在网上看见一个博客&#xff0c;根据需要演示一下。 前台代码 <Window xmlns"https://github.com/avaloniaui"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:vm"using:…

系列三十五、获取Excel中的总记录数

一、获取Excel中的总记录数 1.1、概述 使用EasyExcel开发进行文件上传时&#xff0c;通常会碰到一个问题&#xff0c;那就是Excel中的记录数太多&#xff0c;使用传统的方案进行文件上传&#xff0c;很容易就超时了&#xff0c;这时可以通过对用户上传的Excel中的数量进行限制…

vue3+echarts应用——深度遍历html的dom结构并用树图进行可视化

文章目录 ⭐前言&#x1f496;vue3系列文章 ⭐html数据解析&#x1f496; html字符串转为html对象&#x1f496; 深度遍历html对象内容 ⭐echarts 树图的渲染&#x1f496; 处理html内容为树状结构&#x1f496; 渲染树状图&#x1f496; inscode代码块 ⭐总结⭐结束 ⭐前言 大…

CentOS 7 安装私有平台OpenNebula

目录 一、配置yum源 二、配置数据库MySQL 2.1 安装MySQL 2.2 修改MySQL密码 2.3 创建项目用户和库 三、安装配置前端包 四、设置oneadmin账号密码 五、验证安装 5.1 命令行验证安装 5.2 数据存放位置 5.3 端口介绍 5.4 命令介绍 六、访问 6.1 设置语言 6.2 创建主…