K8S之Pod详解与进阶
Pod详解与进阶
文章目录
- Pod详解与进阶
- 一、Pod详解
- 1.pod定义
- 2.pause容器作用
- 3.Pod 的 3 种类型
- 4.Pod 的 3 种容器
- 5.Pod 的 3 种镜像拉取策略
- 6.Pod 的 3 种容器重启策略
- 二、Pod进阶
- 1.资源限制
- 2.Pod 容器的 3 种探针(健康检查)
- 3.探针的 3 种探测方式
- 探针参数
- 4.Pod 应用容器生命周期的启动动作和退出动作
一、Pod详解
1.pod定义
Pod 是 K8S 最小的创建和运行管理单元
一个 Pod 能包含几个容器?
1个 pause容器(基础容器/父容器/根容器)
1个或多个应用容器(业务容器)通常一个Pod最好只包含一个应用容器,一个应用容器最好只运行一个业务进程同一个Pod里的容器,都是运行在同一个Node节点上的,并且共享 NET MNT UTS IPC PID 命名空间
2.pause容器作用
是作为共享 NET MNT UTS IPC PID 命名空间的基础
给Pod里的其它容器提供网络、存储资源的共享
作为PID=1的进程(init进程)管理整个Pod容器组的生命周期
3.Pod 的 3 种类型
控制器管理的Pod:由scheduler进行调度的;被控制器管理的;有自愈能力,一旦Pod挂掉了,会被重新拉起;有副本管理、滚动更新等功能自主式Pod:由scheduler进行调度的;不被控制器管理;没有自愈能力,一旦Pod挂掉了,不会被重新拉起;没有副本管理、滚动更新等功能静态Pod:不由scheduler调度的,而是由kubelet自行管理的;始终与kubelet运行在同一个Node节点上,不能被直接删除静态Pod资源配置文件默认放置在/etc/kubernetes/manifests目录中,当此目录中有Pod资源配置文件存在或者消失时kubelet会自动创建或删除静态Pod
4.Pod 的 3 种容器
pause容器(基础容器/父容器/根容器):给Pod的容器组作环境初始化,具体见上init容器(初始化容器/init container):可以为应用容器事先提供运行环境或辅助工具;还可以阻塞或延迟应用容器的启动如果Pod有多个init容器时,是串行启动的,要在上一个init容器成功的完成启动、运行和退出后才会启动下一个init容器应用容器(业务容器/main container):提供应用程序业务如果Pod有多个应用容器时,是并行启动的,应用容器要在所有init容器都成功的完成启动、运行和退出后才会启动
5.Pod 的 3 种镜像拉取策略
yaml中字段设置:spec.containers.imagePullPolicyIfNotPresent:优先使用本地已存在的镜像,如果本地没有则从仓库拉取镜像。是标签为非latest的镜像的默认镜像拉取策略Always:总是从仓库拉取镜像,无论本地是否已存在镜像。是标签为latest或无标签的镜像的默认镜像拉取策略Never:仅使用本地镜像,总是不从仓库拉取镜像
6.Pod 的 3 种容器重启策略
yaml中字段设置:spec.restartPolicyAlways:当Pod中的容器退出时,总是重启容器,无论容器退出状态码如何。是默认的容器重启策略OnFailure:当Pod中的容器异常退出时(容器退出状态码为非0),才会重启容器;正常退出的容器(容器退出状态码为0)不会重启Never:当Pod中的容器退出时,总是不重启容器,无论容器退出状态码如何。
二、Pod进阶
1.资源限制
spec.containers.resources.requests.cpu|memory 设置Pod容器创建时需要预留的资源量 容器应用最低配置 <= requests <= limitsspec.containers.resources.limits.cpu|memory 设置Pod容器能够使用的资源量上限,如果容器进程内存使用量超过limits.memory会引发OOM
CPU资源量单位: cpu个数 1 2 0.1 0.5 0.25 毫核 100m 250m 1000m 1500m
内存资源量单位:整数(默认单位为字节) 2的底数单位(Ki Mi Gi Ti) 10的底数单位(K M G T)kubectl describe -n 命名空间 pod <pod名称> 查看Pod中每个容器的资源量限制
kubectl describe node <node名称> 查看Node节点中的每个Pod或总的资源限制使用情况
2.Pod 容器的 3 种探针(健康检查)
存活探针(livenessProbe):探测是否正常运行。如果探测失败则kubelet杀掉容器(Pod容器会根据重启策略决定是否重启)就绪探针(readinessProbe):探测Pod是否进入就绪状态(ready状态栏1/1),并做好接收service请求的准备。如果探测失败则Pod会变成未就绪状态(ready状态栏0/1),service资源会删除所关联的端点(endpoints),并不再转发请求给就绪探测失败的Pod启动探针(startupProbe):探测容器内的应用是否启动成功。在启动探针探测成功之前,存活探针和就绪探针都会暂时处于禁用状态,直到启动探针探测成功
3.探针的 3 种探测方式
exec:在command字段中指定在容器内执行的Linux命令来进行探测,如果命令返回码为0则认为探测成功,如果返回码为非0则认为探测失败tcpSocket:向指定的Pod容器端口发送tcp连接请求,如果端口正确且tcp连接成功则认为探测成功,如果tcp连接失败则认为探测失败httpGet:向指定的Pod容器端口和URL路径发送http get请求,如果http响应状态码为2XX 3XX则认为探测成功,如果响应状态码为4XX 5XX则认为探测失败
探针参数
initialDelaySeconds:指定容器启动后延迟几秒开始探测
periodSeconds:每天探测的间隔时间(秒数)
failureThreshold:探测连续失败几次后判断探测失败
timeoutSeconds:指定探测超时等待时间(秒数)
4.Pod 应用容器生命周期的启动动作和退出动作
spec.containers.lifecycle.postStart 配置子字段 exec.command 设置 Pod 容器启动时额外的命令操作spec.containers.lifecycle.preStop 配置子字段 exec.command 设置 Pod 容器运行中被kubelet杀掉退出时所执行的命令操作(不包含容器自行退出的情况)
相关文章:
K8S之Pod详解与进阶
Pod详解与进阶 文章目录 Pod详解与进阶一、Pod详解1.pod定义2.pause容器作用3.Pod 的 3 种类型4.Pod 的 3 种容器5.Pod 的 3 种镜像拉取策略6.Pod 的 3 种容器重启策略 二、Pod进阶1.资源限制2.Pod 容器的 3 种探针(健康检查)3.探针的 3 种探测方式探针参…...

【小曾同学赠书活动】开始啦—〖测试设计思想〗
文章目录 ❤️ 赠书 —《测试设计思想》🌟 书籍介绍🌟 作者简介图书链接❤️ 活动介绍 — 赠送 3 本 ❤️ 赠书 —《测试设计思想》 首先提问 你知道测试设计思想有哪几类吗?你想奠定扎实的测试理论基础吗?你想改变关于你当前测试…...

【Docker晋升记】No.1--- Docker工具核心组件构成(镜像、容器、仓库)及性能属性
文章目录 前言🌟一、Docker工具🌟二、Docker 引擎🌏2.1.容器管理:🌏2.2.镜像管理:🌏2.3.资源管理:🌏2.4.网络管理:🌏2.5.存储管理:&am…...
ROBOGUIDE教程:FANUC机器人X型焊枪气动点焊焊接
目录 概述 机器人系统创建 X型点焊焊枪安装与配置 机器人组输出(GO)信号配置 气动点焊初始设置 点焊设备设置 点焊设备I/O信号设置 焊接控制器I/O信号设置 X型点焊焊枪运动控制配置 气动焊枪手动运行操作 气动点焊焊接指令介绍 机器人点焊焊接程序编写 机器人仿…...
二、 根据用户行为数据创建ALS模型并召回商品
二 根据用户行为数据创建ALS模型并召回商品 2.0 用户行为数据拆分 方便练习可以对数据做拆分处理 pandas的数据分批读取 chunk 厚厚的一块 相当大的数量或部分 import pandas as pd reader pd.read_csv(behavior_log.csv,chunksize100,iteratorTrue) count 0; for chunk in …...

[golang gin框架] 45.Gin商城项目-微服务实战之后台Rbac微服务之角色权限关联
角色和权限的关联关系在前面文章中有讲解,见[golang gin框架] 14.Gin 商城项目-RBAC管理之角色和权限关联,角色授权,在这里通过微服务来实现角色对权限的授权操作,这里要实现的有两个功能,一个是进入授权,另一个是,授权提交操作,页面如下: 一.实现后台权限管理Rbac之角色权限关…...

Redis中的数据类型
Redis中的数据类型 Redis存储的是key-value结构的数据,其中key是字符串类型,value有5种常用的数据类型: 字符串string哈希hash列表list集合set有序集合sorted set...

java spring cloud 企业工程管理系统源码+二次开发+定制化服务 em
Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目显…...

Java程序猿搬砖笔记(十五)
文章目录 在Java中将类作为参数传递(泛型)IDEA快捷键:查看该方法调用了哪些方法、被哪些方法调用快捷键:ctrlalth IDEA快捷键:快速从controller跳转到serviceImplIDEA快捷键:实现接口的方法IDEA 快捷键:快速包裹代码ID…...
flask----内置信号的使用/django的信号/ flask-script/sqlalchemy介绍和快速使用/sqlalchemy介绍和快速使用
信号 内置信号的使用 # 第一步:写一个函数 def test(app, **kwargs):print(app)print(type(kwargs))# 请求地址是根路径,才记录日志,其它都不记录print(kwargs[context][request].path)if kwargs[context][request].path /:print(记录日志…...

Zookeeper 面试题
一、ZooKeeper 基础题 1.1、Zookeeper 的典型应用场景 Zookeeper 是一个典型的发布/订阅模式的分布式数据管理与协调框架,开发人员可以使用它来进行分布式数据的发布和订阅。 通过对 Zookeeper 中丰富的数据节点进行交叉使用,配合 Watcher 事件通知机…...

ELK 企业级日志分析系统(二)
目录 ELK Kiabana 部署(在 Node1 节点上操作) 1.安装 Kiabana 2.设置 Kibana 的主配置文件 3.启动 Kibana 服务 4.验证 Kibana 5.将 Apache 服务器的日志(访问的、错误的&#x…...
Linux版本 centOS 7,java连接mysql
在Linux下 使用java 访问数据库 , java 1.7版本, mysql 8.0.33版本, 连接驱动 mysql-connector-java-5.1.49.jar 代码如下: import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import ja…...

开发工具IDEA的下载与初步使用【各种快捷键的设置,使你的开发事半功倍】
🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于IDEA的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.IDEA的简介以及优势 二.IDEA的下载 1.下…...
YoloV5/YoloV7优化:感受野注意力卷积运算(RFAConv),效果秒杀CBAM和CA等 | 即插即用系列
💡💡💡本文改进:感受野注意力卷积运算(RFAConv),解决卷积块注意力模块(CBAM)和协调注意力模块(CA)只关注空间特征,不能完全解决卷积核参数共享的问题 RFAConv| 亲测在多个数据集能够实现大幅涨点,有的数据集达到3个点以上 💡💡💡Yolov5/Yolov7魔术师…...

freeswitch的mod_xml_curl模块动态获取configuration
概述 freeswitch是一款简单好用的VOIP开源软交换平台。 mod_xml_curl模块支持从web服务获取xml配置,本文介绍如何动态获取acl配置。 环境 centos:CentOS release 7.0 (Final)或以上版本 freeswitch:v1.6.20 GCC:4.8.5 web…...

CANdelaStudio 使用介绍
CANdela Studio使用_哔哩哔哩_bilibili 一.CANdelaStudio使用tips 1.开始菜单打开软件,避免软件字体是德文的 2.打开软件之后,用“Open”打开.cdd或者.cddt文件,不要双击文件打开,这样容易报错 3.查看软件版本信息 4.只有Admin版…...
锚框【动手学深度学习】
生成多个锚框 假设输入图像高为h,宽为w,我们以图像每个像素为中心生成不同形状的锚框,缩放比 s∈(0,1],宽高比为r>0。那么锚框的宽度和高度分别为和。当中心位置给定时, 已知宽和高的锚框是确定的。缩放比为锚框高与图像高的比值,然后得到一个正方形锚框面积。 …...

Qt扫盲-Qt Model/View 理论总结 [上篇]
Qt Model/View 理论总结 [上篇] 一、概述1.model / view 架构2. Model3. View4. Delegate5. 排序6. 快捷类 二、使用model/view1. Qt包含两种 model2. 在现有 model 中使用 view 三、Model 类1. 基本概念1.model 索引2. 行和列2. item 的父 item3. Item roles4. 总结 2. 使用mo…...

【猿灰灰赠书活动 - 01期】- 【Python网络爬虫入门到实战】
说明:博文为大家争取福利,与机械工业出版社合作进行送书活动 图书:《Python网络爬虫入门到实战》 一、好书推荐 图书介绍 本书介绍了Python3网络爬虫的常见技术。首先介绍了网页的基础知识,然后介绍了urllib、Requests请求库以及X…...

JavaWeb:前端工程化-Vue
Vue工程化 介绍 什么是Vue? 小白眼里前端开发 前端工程化 环境准备 D:\Program Files\nodejs Vue项目-快速入门 步骤 D:\front\vue 安装依赖 目录结构 code . vscode打开 启动 VScode侧边栏左下角,没有NPM脚本,如何打开?&…...

AUTOSAR实战教程--开放式通用DoIP刷写工具OpenOTA开发计划
目录 软件概述 安装与运行 界面说明 3.1 功能区划分 3.2 状态显示 基本操作流程 4.1 DoIP连接配置 4.2 服务配置(刷写流程) 4.3 执行操作 4.4 保存配置 4.5 加载配置 功能详解 5.1 核心功能模块 诊断服务配置 通信设置 文件下载 工具功…...

山东大学《数据可视化》期末复习宝典
🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏:🏀山东大学期末速通专用_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1…...
SpringCloudAlibaba和SpringBoot版本问题
SpringCloudAlibaba和SpringBoot版本问题 直接参考官方给出的版本说明,具体地址:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E Spring Cloud Alibaba VersionSentinel VersionNacos VersionRocketMQ Ver…...

模拟搭建私网访问外网、外网访问服务器服务的实践操作
目录 实验环境 实践要求 一、准备工作 1、准备四台虚拟机,分别标号 2、 防火墙额外添加两块网卡,自定义网络连接模式 3、 关闭虚拟机的图形管理工具 4、关闭防火墙 5、分别配置四台虚拟机的IP地址,此处举一个例子(使用的临…...
神经元激活函数在神经网络里起着关键作用
神经元激活函数在神经网络里起着关键作用,它能为网络赋予非线性能力,让网络可以学习复杂的函数映射关系。下面从多个方面详细剖析激活函数的作用和意义: 1. 核心作用:引入非线性因素 线性模型的局限性: 假设一个简单…...
CMake基础:gcc/g++编译选项详解
目录 1.编译步骤 2.gcc 与 g 区别 3.gcc 命令的常用选项 3.1.基础编译选项 3.2.优化选项 3.3.调试与分析选项 3.4.链接选项 3.5.语言特性选项(C 特化) 3.6.安全增强选项 3.7.架构与指令集优化 3.8.其他常用选项 4.常见编译组合示例 5.常用环…...
如何计算1920*1080分辨率的YUV或RGB图像数据占用大小?
好多开发者在对接大牛直播SDK的时候,经常问到的问题是,1920*1080分辨率的YUV或RGB图像数据,到底多少字节?在音视频图像开发中,19201080(即 Full HD)是一种极其常见的分辨率。但很多开发者在处理…...

【11408学习记录】考研写作双核引擎:感谢信+建议信复合结构高分模板(附16年真题精讲)
感谢信建议信 英语写作2016年考研英语(二)真题小作文题目分析写作思路第一段第二段锦囊妙句9:锦囊妙句12:锦囊妙句13:锦囊妙句18: 第三段 妙句成文 每日一句词汇第一步:找谓语第二步:…...
pandas 字符串存储技术演进:从 object 到 PyArrow 的十年历程
文章目录 1. 引言2. 阶段1:原始时代(pandas 1.0前)3. 阶段2:Python-backed StringDtype(pandas 1.0 - 1.3)4. 阶段3:PyArrow初次尝试(pandas 1.3 - 2.1)5. 阶段4…...