k8s之pod

pod是k8s中最小的资源管理组件

pod也是最小化运行容器化的应用的资源管理对象

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

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为1的进程(init进程),回收僵尸进程

pod里面是容器,容器运行的是进程 pid

pause 父进程1 在pod内部管理容器进程

3、创建pod时,先创建pause容器,然后拉取镜像,生成容器,形成pod

第一步:master节点发出指令,pod使用的镜像nginx  pod副本数

第二步:kube-scheduler来分配执行的node节点

第三步:node节点的kubelet收到master指令,拉pause,拉ngixn:1.22 pod1

第四步:pause容器先启动,提供命名空间,进程管理pid1 来为pod内的容器提供共享服务以及容器的进程管理

pause容器共享两种资源

网络:每个pod都会被分配一个集群内部的唯一ip地址。pod内的容器共享网络,pod在集群内部的IP地址和端口。pod内部的容器可以使用localhost互相通信。pod中的容器与外部通信时,从共享的资源当中进行分配。宿主机的端口映射

存储:pod可以指定多个共享的volume,pod内的容器共享这些vloume。这些volume可以实现数据的持久化。防止pod重新构建之后文件消失

总结:

每个pod都有一个基础容器pause容器

pause容器对应的镜像属于k8s集群的一部分。创建集群就会有pause这个基础镜像

pod里面包含了一个或者多个相关的容器(应用)

kube-controller-manager

pod外再设置一个基础镜像:

1、pod内部有一组容器,挂了一个,就算这个pod失效了嘛? 引入pause禁止,代表整个容器的组的状态,可以解决对pod内部容器整体状态的判断。

2、pod内的容器共享IP、共享volume挂载卷。解决了容器内网络通信的问题,解决了容器内部文件共享的问题

pod的分类:

1、自主式pod。pod不会自我修复,pod内容器的进程终止,被删除,缺少资源被驱逐,这个pod没有办法自愈

deployment daemanset

2、控制器管理pod。可以自愈(自动重启),可以管理pod的数量以及pod的扩缩容

pod的生命周期

1、Pending  挂起

pod已被创建,但是尚未被分配到运行的node节点

一直panding:①节点上资源不够;②需要等待其他pod的调度

2、Running  运行

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

3、Complete/Successed  容器内部的进程运行完毕,正常退出。没有发生错误

4、Faild  pod中的容器非正常退出

发生了错误,需要通过查看详情和日志来定位问题

5、Unkown  由于某些原因,k8s集群无法获取pod状态

一般是APIserver出了问题

6、Terminating  终止中

pod正在被删除,但是里面的容器正在终止

终止过程中,资源回收、垃圾清理、终止过程中需要执行的命令(终止需要时间的原因)

创建pod的容器分类:

1、基础容器:pause

2、init容器(初始化容器):init c

1和2这个过程中,pod的状态叫做init。pod的状态:init:3/3

3、业务容器

init容器的作用:环境变量

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

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

③init容器能以不同于pod内应用容器的文件系统视图运行。secrets的权限,应用容器无法访问secrets的权限

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

1、在pod的启动过程中,容器时按照初始化容器先启动,每个容器必须在下一个容器启动之前,要成功退出

2、如果运行失败,会按照容器的重启策略进行指定动作,restartPolicy(Always  Never  onFailure{非正常退出才会重启})

3、所有都init容器没有成功之前,pod是不会进入ready状态的

init容器与service无关,不能对外提供访问

4、如果重启pod,所有的init容器一定会重新执行

5、如果修改init容器的spe(参数),只限制于image,其他的修改字段都不生效(基于deployment)

6、每个容器的名称都要唯一,不能重复

总结:

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

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

init容器不是一定要有,是人为设定的,业务容器启动之前的必要条件

pod的生命周期:①起pause基础容器;②init容器全部成功退出,到业务容器;③poststart prestop 容器的钩子(启动时命令和退出时命令);④探针:探测容器的健康状态。伴随颇多的整个声明周期(除了启动探针)

总结:pod就是用来封装容器的,业务是容器、服务是容器、端口也是容器

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

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

相关文章

第二证券:长期布局重要窗口或至 险资看涨A股

新年伊始,稳妥资金对2024年权益商场出资更为达观。多家险资组织告诉上海证券报记者,在经历了2023年的震动调整行情后,2024年A股商场机遇大于危险,商场体现或将显着优于2023年。 详细来看,两方面要素支撑权益商场向好&…

总结MySQL 的一些知识点:MySQL 排序

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

[每周一更]-(第56期):不能不懂的网络知识

作为程序员,在网络方面具备一定的知识和技能是非常重要的。以下是一些程序员需要熟练掌握的网络知识: 基础网络概念: IP地址:了解IPv4和IPv6地址的格式和分配方式,以及常见的IP地址分类。子网掩码:理解子…

Vue3 使用路由 Router

Vue3 使用路由 Router 之前几篇博文说了一下 vue 的基本语法和 vue 的传参,今天这篇博文稍微说一下 vue3 里面使用路由。 介绍 众所周知,vue 是用来构建单页面应用的前端框架,大于大多数此类型应用来讲,都推荐使用官方支持的 vue…

宋仕强论道之华强北后山寨手机时代(三十六)

今天继续讲华强北山寨手机,跟手机配套周边产品。华强北,作为中国电子产品的集散地和创新中心,一直以来都是电子产品和数码产品的聚集地。在早期,赛格市场以其走私、翻新的电脑和电脑周边产品而闻名。赛格大厦以前5楼以上都是做电脑…

乒乓球廉价底板评测之五F勒布伦打法讨论

菲利克斯勒布伦的直拍打法让直板又焕发了青春,那他的打法又有什么特点呢?和中国众多直板选手的区别在哪呢?这篇微博我们简单分一下。 首先说下他的器材,纤维板中置碳,淘宝上的版本是碳在大芯两侧,是七层板&…

Unity中URP下统一不同平台下的z值

文章目录 前言一、ComputeFogFactor 来计算雾效混合因子二、UNITY_Z_0_FAR_FROM_CLIPSPACE 来统一计算不同平台下的Z值1、DirectX平台2、GL平台下(在Unity.2022.LTS下,该功能没有完善)3、Opengl下 前言 在之前的文章中,我们实现了URP下的雾效…

电动汽车BMS PCB制板的技术分析与可制造性设计

随着电动汽车行业的迅猛发展,各大厂商纷纷投入巨资进行技术研发和创新。电动汽车的核心之一在于其电池管理系统(Battery Management System, BMS),而BMS的心脏则是其印刷电路板(PCB)。通过这篇文章探讨电动…

Graphics Control

Graphics Control提供了一个易于使用的图形设置管理解决方案,帮助您加快开发。它附带了一个常用设置库,如分辨率、垂直同步、全屏模式、光晕、颗粒、环境光遮挡等。我们的可自定义设置面板UI预制件为您提供了一个可用的UI面板,支持完整的游戏手柄和键盘输入。图形控制还附带…

Spark---RDD介绍

文章目录 1.Spark核心编程2.RDD介绍2.1.RDD基本原理2.2 RDD特点1.弹性2.分布式 :数据存储在大数据集群的不同节点上3.数据集 :RDD封装了计算逻辑,并不保存数据4.数据抽象 :RDD是一个抽象类,具体实现由子类来实现5. 不可…

CCF模拟题 202312-1 仓库规划

问题描述 试题编号: 202312-1 试题名称: 仓库规划 时间限制: 1.0s 内存限制: 512.0MB 问题描述: 输入格式 输出格式 样例输入 4 2 0 0 -1 -1 1 2 0 -1样例输出 3 1 0 3样例解释 Java实现代码: import …

macbook录屏快捷键大全,教你快速录制视频

“有人知道macbook电脑有录屏快捷键吗,现在录屏的速度太慢了,每次打开都要浪费不少时间,要是有录屏快捷键,应该会快很多,有哪位大佬知道吗?教教我!” 无论是在工作还是生活中,电脑已…

生活中危险的气体:一氧化碳与二氧化碳中毒的症状及安全预防措施

一氧化碳和血红蛋白亲和力超过氧气,会占用血红蛋白,导致缺氧。 二氧化碳会和血浆结合,导致血液pH值不正常,抑制呼吸,导致窒息。 通俗点说:一氧化碳是中毒,二氧化碳则是窒息。 一氧化碳中毒 …

通过Vue自定义指令实现前端埋点

在营销活动中,通过埋点可以获取用户的喜好及交互习惯,从而优化流程,进一步提升用户体验,提高转化率。 在之前的埋点方案实现中,都是在具体的按钮或者图片被点击或者被曝光时主动通过事件去上报埋点。这种方法在项目中…

K8Spod组件

一个pod能包含几个容器 一个pause容器(基础容器/父容器/根容器) 一个或者多个应用容器(业务容器) 通常一个Pod最好只包含一个应用容器,一个应用容器最好也只运行一个业务进程。 同一个Pod里的容器都是运行在同一个node节点上的,并且共享 net、…

javaweb学习笔记

JSP 动态网页,指的是随时间、地点、用户操作改变的网页 架构 CS架构 client-server 缺点:每一台客户端都需要安装客户端软件,如果升级全要升级,如果坏了就得维护 优点:响应快,界面美观 BS架构 browser-…

以STM32为例,实现按键的短按和长按

以STM32为例,实现按键的短按和长按 目录 以STM32为例,实现按键的短按和长按1 实现原理2 实现代码3 测试结束语 1 实现原理 简单来说就是通过设置一个定时器来定时扫描几个按键的状态,并分别记录按键按下的持续时间,通过时间的长短…

后端杂七杂八系列篇一

后端杂七杂八系列篇一 ① MySQL选择合适的数据类型① Char与Varchar② Text与Blob ② EqualsAndHashCode(callSuper true)的作用③ mybatis-plus 相关① 主键生成策略② 使用Model实现CRUD③ Wrapper的用法① Wrapper的继承关系② 项目中最常用的warpper [LambdaQueryWrapper]…

[NISACTF 2022]level-up

[NISACTF 2022]level-up wp level 1 robots.txt 通过目录爆破,发现存在 robots.txt 文件(或者说查看源码,源码中有 disallow 提示,说明存在 robots.txt 文件): dirsearch -u "http://node5.anna.n…

Docker入门教程(详解)

Docker容器化 一 入门 1. 引言 (1)单机部署 场景: 将多个应用部署一台服务器上。 问题 每个应用软件,都会消耗物理资源,共用计算机资源,彼此之间会形成竞争关系。 (2)多机部署 …