k8s pod理论

一、Pod概述

1、Pod的定义

Pod是K8S中创建和管理的最小单位。

2、一个Pod至少包含多少容器

1个pause容器(基础容器/父容器/根容器)和 1个或者多个应用容器(业务容器)

通常一个Pod最好只包含一个应用容器,一个应用容器最好也只运行一个应用进程
同一个Pod里的容器都是运行在同一个node节点上的,并且共享 net mnt uts pid ipc 命名空间

3、pause容器的作用

给Pod容器组做环境初始化

作为linux命名空间共享的基础,为Pod里的其它容器提供网络、存储资源的共享
作为pid=1的init管控类进程管理整个Pod容器组的生命周期

二、Pod的3种类型

  • 控制器管理的Pod:

由scheduler调度到node节点运行的;被控制器管理的;有自愈能力,一旦Pod挂掉了,会被控制器重新拉起;有副本管理、滚动更新等功能
创建命令:kubectl create deployment ....     控制器有 deployment  statefulset   deamonset 

  • 自主独立的Pod:

由scheduler调度到node节点运行的;不被控制器管理的;没有自愈能力,一旦Pod挂掉了,不会被重新拉起;没有副本管理、滚动更新等功能
创建命令:kubectl run

  • 静态Pod:

不由scheduler调度到node节点运行的,而是由kubelet自行管理的;始终与kubelet运行在同一个node节点上;通过向apiserver发送请求无法直接删除的
在node节点的/etc/kubernetes/manifests目录中放置Pod的yaml配置文件,kubelet就会自动根据yaml配置文件创建静态Pod

三、Pod中的3种容器

  • pause容器(基础容器/父容器/根容器)

给Pod容器组做环境初始化,作为linux命名空间共享的基础,为Pod里的其它容器提供网络、存储资源的共享,作为pid=1的init管控类进程管理整个Pod容器组的生命周期。pause容器是Pod最先启动的容器。

  • init容器(初始化容器/init container)

可以在应用容器启动前,为应用容器提供运行依赖环境或工具包;还可以阻塞或延迟应用容器的启动
init容器是在pause容器之后启动的;如果Pod定义了多个init容器,它们是串行启动的,即要在上一个init容器成功的完成启动退出后才会启动

  • 应用容器(业务容器/main container)

提供应用程序业务,应用容器是在所有init容器都成功的完成启动退出后才会启动;如果Pod定义了多个应用容器,它们是并行启动

四、Pod容器的3种镜像拉取策略

imagePullPolicy(与image字段同一层级)

IfNotPresent:优先使用node节点本地已存在的镜像,如果本地没有则从仓库拉取镜像。是标签为非latest的镜像的默认拉取策略
Always:总是从仓库拉取镜像,无论node节点本地是否已存在镜像。是标签为latest或无标签的镜像的默认拉取策略
Never:仅使用node节点本地镜像,总是不从仓库拉取镜像。

五、Pod容器的3种重启策略

restartPolicy(与containers字段同一层级)

Always:当Pod容器退出时,总是重启容器,无论容器退出状态码如何。是默认的容器重启策略
OnFailure:当Pod容器异常退出时(容器退出状态码为非0),才会重启容器;正常退出的容器(容器退出状态码为0)不重启
Never:当Pod容器退出时,总是不重启容器,无论容器退出状态码如何

deamonset statefulset控制器的Pod容器重启策略只能设置为 Always,自主类型的Pod容器重启策略可选择 Always OnFailure Never

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

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

相关文章

找不到FeignClient Bean对象的解决方法(两个)

当我们自己在编写独立的模块过着jar包的时候,在另外一个模块引用到这个依赖,若像是本例中的UserClient,是需要注入成Bean才能成功注入到Spring的IO容器中,从而成功调用。下面有两个解决方法: 问题: UserCl…

基于Redisson,实现分布式锁注解

1.原始写法 我们平常使用redisson的分布式锁是不是基本都用下面的这个模板,既然是模板,那为何不把他抽出来呢? // 尝试加锁,最多等待100秒,上锁以后10秒自动解锁 boolean res lock.tryLock(100, 10, TimeUnit.SECON…

华为OD技术面试案例5-2024年

背景 985本计算机专业,目标院校。 1.15 投递 在某BOSS上投递的简历,HR人很nice,非常负责任。 1.19 收到机试通知 第一题是一个哈夫曼编码,第三题是一个动态规划,机试整体难度不算高,刷leetcode hot100…

PTA——L2-016 愿天下有情人都是失散多年的兄妹(dfs)

文章目录 一、题目二、题解1.基本思路:2.代码: 一、题目 L2-016 愿天下有情人都是失散多年的兄妹 分数 25 全屏浏览 作者 陈越 单位 浙江大学 呵呵。大家都知道五服以内不得通婚,即两个人最近的共同祖先如果在五代以内(即本人、…

react + umi中如何使用rem完成自适应布局

只要写css就可以实现:flex rem布局; 在项目的global.less中根据媒体查询; 媒体查询是用于根据设备的特性(如屏幕尺寸、屏幕方向、分辨率等)来应用不同的 CSS 样式的技术。以下是一些常用的媒体查询尺寸: 小…

WordPress分类目录ID怎么看?如何查找WordPress标签ID?

在WordPress网站中,我们需要判断某篇文章是否属于某个分类目录,或者是否拥有某个标签,那么就需要用到分类目录ID和标签ID,那么WordPress分类目录ID怎么看?如何查找WordPress标签ID?下面boke112百科就跟大家…

五、生成数字列表

输入描述: 输入一行整数,数字之间以空格间隔。 输出描述: 输出这些数字组成的完整列表。 示例1 输入: 1 2 3 4 5 复制输出: [1, 2, 3, 4, 5] numinput() list_strnum.split() int_list[int(i) for i in list_str…

Node.js基础---加载机制

模块的加载机制 1. 优先成缓存中加载 模块在第一次加载后会被缓存,意味着多次调用 require() 不会导致模块代码被多次执行 注意:无论是什么模块都会优先从缓存内加载,以提高加载效率 2. 内置模块的加载机制 内置模块是 Node.js官网提供的模块…

数据结构·顺序表实现通讯录

目录 1 基本格式 2 结构体的声明 3 初始化 销毁 扩容 插入 删除 4 增加联系人 5 查看通讯录 6 删除联系人 7 查找联系人 8 修改联系人 9 整体代码 引言: 有了前面顺序表的基础,我们可以尝试利用顺序表实现通讯录,日常使用中&#x…

【论文阅读】微纳米气泡技术作为CO2-EOR和CO2地质储存技术的新方向:综述

Micro and nanobubbles technologies as a new horizon for CO2-EOR and CO2 geological storage techniques: A review 微纳米气泡技术作为CO2-EOR和CO2地质储存技术的新方向:综述 期刊信息:Fuel 2023 期刊级别:EI检索 SCI升级版工程技术1区…

【LeetCode-简单】69.x的平方根 + 367.有效的完全平方数 - 二分法

力扣题目链接 给定非负整数x,求x的算数平方根(只保留整数部分) 这个问题可以看成在区间 [0, x) 中寻找一个整数 target 使得 target * target 趋近于x 采用二分法,排除0与1这两个特殊情况后(不排除则left 0, right…

Python实现时间序列分析进行平稳性检验(ADF和KPSS)和差分去趋势(adfuller和kpss算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 时间序列分析中的平稳性检验是评估一个时间序列是否具有稳定的均值和方差。在经济学、金融学以及其他诸…

麒麟OS:操作系统国家队

这是ren_dong的第31篇原创 1、中标软件 中标软件:国产操作系统龙头 中标软件有限公司成立于2003 年,是国产自主操作系统和办公软件产品提供商,拥有 国防、民用两方面的相关企业与产品资质,是安全操作系统旗舰企业。 中标软件的主要…

飞天使-学以致用-devops知识点3-安装jenkins

文章目录 构建带maven环境的jenkins 镜像安装jenkinsjenkins yaml 文件安装插件jenkins 配置k8s创建用户凭证 构建带maven环境的jenkins 镜像 # 构建带 maven 环境的 jenkins 镜像 docker build -t 192.168.113.122:8858/library/jenkins-maven:jdk-11 .# 登录 harbor docker …

解读人工智能的理论基石

1956年的一个夏天,在达特茅斯学院的一个小会议室里,一群充满好奇和野心的年轻科学家聚集在一起,他们有一个共同的梦想:创造能够模仿人类智能的机器。这不仅仅是科幻小说的情节,更是人工智能历史上一个真实的起点。从那…

基于JAVA的毕业生追踪系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 登陆注册模块2.2 学生基本配置模块2.3 就业状况模块2.4 学历深造模块2.5 信息汇总分析模块2.6 校友论坛模块 三、系统设计3.1 用例设计3.2 实体设计 四、系统展示五、核心代码5.1 查询我的就业状况5.2 初始化就业状况5.…

防御保护:防火墙内容安全

一、IAE(Intelligent Awareness Engine)引擎 二、深度检测技术(DFI和DPI) 1.DPI – 深度包检测技术 DPI主要针对完整的数据包(数据包分片,分段需要重组),之后对数据包的内容进行识别。&#x…

微服务 人工智能AI 物联网智慧工地云平台源码

目录 ​编辑 智慧工地架构 智慧工地系统 智慧工地云平台功能模块 1、基础数据管理 2、考勤管理 3、安全隐患管理 4、视频监控 5、塔吊监控 6、升降机监控 7、移动端数据推送 智慧工地管理平台子系统构成 智慧工地物联网解决方案,对工地施工安全人员、设…

2024.2.28 训练记录(3)

还有个扫描线单调栈树状数组的没有完全搞懂今天不写,晚上vp了下昨天的div3,绝佳的上分机会居然没打,好顺手的A-E。。。 洛谷 P1050 [NOIP2005 普及组] 循环 题目链接 按位来看,先看最后一位,假设乘x次循环&#xff…

引入本地图片报错:require is not defined

文章目录 问题分析1. 原始写法2. 最初的解决方案3. 尝试使用 require 引入4. 封装方法进行解析引入图片 问题 Vue3 Vite 使用本地图片报错:require is not defined 分析 1. 原始写法 刚开始我是这样写的,数据是这样定义的,但是数据没出…