飞天使-k8s知识点26-kubernetes温故知新1-pod
文章目录
- 创建一个pod
- pod的启动命令和参数更改
- pod 镜像拉取策略
- pod 的三种探针
- pod 探针的实现方式
- prestop 和 prestart
创建一个pod
apiVersion: v1 # 必选,API 的版本号
kind: Pod # 必选,类型 Pod
metadata: # 必选,元数据name: nginx # 必选,符合 RFC 1035 规范的 Pod 名称
spec: # 必选,用于定义 Pod 的详细信息containers: # 必选,容器列表- name: nginx # 必选,符合 RFC 1035 规范的容器名称image: nginx:1.15.12 # 必选,容器所用的镜像的地址ports: # 可选,容器需要暴露的端口号列表- containerPort: 80 # 端口号

一般使用yaml 文件进行创建比较好, 命令的方式实验用而已
pod的启动命令和参数更改
apiVersion: v1 # 必选,API 的版本号
kind: Pod # 必选,类型 Pod
metadata: # 必选,元数据name: nginx # 必选,符合 RFC 1035 规范的 Pod 名称
spec: # 必选,用于定义 Pod 的详细信息containers: # 必选,容器列表- name: nginx # 必选,符合 RFC 1035 规范的容器名称image: nginx:1.15.12 # 必选,容器所用的镜像的地址command: # 可选,容器启动执行的命令- sleep- "10"ports: # 可选,容器需要暴露的端口号列表- containerPort: 80 # 端口号# 新增command 部分到yaml 文件中,

pod 镜像拉取策略
always 总是拉取, 当镜像tag 为 latest 时, 且 imagepullpollicy 没有配置, 默认为 always
never 不管是否存在,都会拉取
ifNotPresent ,镜像不存在时拉取镜像,如果tag 为非latest ,且 imagepolicy 未配置,默认为 ifNotPresent 镜像拉取策略, 驾到 command 同级别里imagePullPolicy: IfNotPresent # 可选,镜像拉取策略
pod 的三种探针
种类 说明
startupProbe Kubernetes1.16 新加的探测方式,用于判断容器内的应用程序是否已经启动。如果
配置了 startupProbe,就会先禁用其他探测,直到它成功为止。如果探测失败,Kubelet
会杀死容器,之后根据重启策略进行处理,如果探测成功,或没有配置 startupProbe,
则状态为成功,之后就不再探测。
livenessProbe 用于探测容器是否在运行,如果探测失败,kubelet 会“杀死”容器并根据重启策略
进行相应的处理。如果未指定该探针,将默认为 Success
readinessProbe 一般用于探测容器内的程序是否健康,即判断容器是否为就绪(Ready)状态。如
果是,则可以处理请求,反之 Endpoints Controller 将从所有的 Service 的 Endpoints
中删除此容器所在 Pod 的 IP 地址。如果未指定,将默认为 Success
pod 探针的实现方式
实现方式 说明
ExecAction 在容器内执行一个指定的命令,如果命令返回值为 0,则认为容器健康
TCPSocketAction 通过 TCP 连接检查容器指定的端口,如果端口开放,则认为容器健康
HTTPGetAction 对指定的 URL 进行 Get 请求,如果状态码在 200~400 之间,则认为容器健康没有探针的pod
apiVersion: v1 # 必选,API 的版本号,这里使用的是 v1 版本
kind: Pod # 必选,资源对象的类型,这里是 Pod
metadata: # 必选,资源对象的元数据name: nginx # 必选,资源对象的名称,这里是 nginx
spec: # 必选,资源对象的详细规格说明containers: # 必选,Pod 中运行的容器列表- name: nginx # 必选,容器的名称,这里是 nginximage: nginx:1.15.12 # 必选,容器所用的镜像,这里是 nginx:1.15.12imagePullPolicy: IfNotPresent # 镜像拉取策略,这里是 IfNotPresent,表示如果本地有镜像就使用本地镜像,否则从远程仓库拉取command: # 可选,容器启动时执行的命令- sh- -c- sleep 10; nginx -g "daemon off;" # 这里是先暂停10秒,然后运行 nginx 服务器ports: # 可选,容器需要暴露的端口列表- containerPort: 8088 # 容器暴露的端口号,这里是 80restartPolicy: Never # Pod 的重启策略,这里是 Never,表示容器退出时不自动重启
配置健康检查,如果是一个java程序,启动时间很慢,则要用startupProbe 探针来减少故障恢复时间
apiVersion: v1 # 必选,API 的版本号,这里使用的是 v1 版本
kind: Pod # 必选,资源对象的类型,这里是 Pod
metadata: # 必选,资源对象的元数据name: nginx # 必选,资源对象的名称,这里是 nginx
spec: # 必选,资源对象的详细规格说明containers: # 必选,Pod 中运行的容器列表- name: nginx # 必选,容器的名称,这里是 nginximage: nginx:1.15.12 # 必选,容器所用的镜像,这里是 nginx:1.15.12imagePullPolicy: IfNotPresent # 镜像拉取策略,这里是 IfNotPresent,表示如果本地有镜像就使用本地镜像,否则从远程仓库拉取command: # 可选,容器启动时执行的命令- sh- -c- sleep 10; nginx -g "daemon off;" # 这里是先暂停10秒,然后运行 nginx 服务器readinessProbe: # 可选,用于检查容器是否已经准备好提供服务httpGet: # 使用 HTTP GET 请求进行检查path: /index.html # 请求的路径port: 80 # 请求的端口号scheme: HTTP # 请求的协议,HTTP 或 HTTPSinitialDelaySeconds: 10 # 容器启动后首次进行检查的延迟时间(秒)timeoutSeconds: 2 # 检查超时时间(秒)periodSeconds: 5 # 检查的间隔时间(秒)successThreshold: 1 # 表示检查成功的最小连续成功次数failureThreshold: 2 # 表示检查失败的最小连续失败次数livenessProbe: # 可选,用于检查容器是否还在运行tcpSocket: # 使用 TCP Socket 进行检查port: 80 # 检查的端口号initialDelaySeconds: 10 # 容器启动后首次进行检查的延迟时间(秒)timeoutSeconds: 2 # 检查超时时间(秒)periodSeconds: 5 # 检查的间隔时间(秒)successThreshold: 1 # 表示检查成功的最小连续成功次数failureThreshold: 2 # 表示检查失败的最小连续失败次数ports: # 可选,容器需要暴露的端口列表- containerPort: 80 # 容器暴露的端口号,这里是 80restartPolicy: Never # Pod 的重启策略,这里是 Never,表示容器退出时不自动重启
prestop 和 prestart
apiVersion: v1 # 必选,API 的版本号,这里使用的是 v1 版本
kind: Pod # 必选,资源对象的类型,这里是 Pod
metadata: # 必选,资源对象的元数据name: nginx # 必选,资源对象的名称,这里是 nginx
spec: # 必选,资源对象的详细规格说明containers: # 必选,Pod 中运行的容器列表- name: nginx # 必选,容器的名称,这里是 nginximage: nginx:1.15.12 # 必选,容器所用的镜像,这里是 nginx:1.15.12imagePullPolicy: IfNotPresent # 镜像拉取策略,这里是 IfNotPresent,表示如果本地有镜像就使用本地镜像,否则从远程仓库拉取lifecycle: # 定义容器的生命周期钩子postStart: # 容器创建后要执行的操作exec: # 使用 exec 执行 shell 命令command: # 定义要执行的命令- sh- -c- 'mkdir /data/' # 这里的命令是创建一个名为 /data/ 的目录preStop: # 容器停止前要执行的操作exec: # 使用 exec 执行 shell 命令command: # 定义要执行的命令- sh- -c- sleep 10 # 这里的命令是暂停10秒ports: # 可选,容器需要暴露的端口列表- containerPort: 80 # 容器暴露的端口号,这里是 80restartPolicy: Never # Pod 的重启策略,这里是 Never,表示容器退出时不自动重启

参考资料: 宽哥
相关文章:
飞天使-k8s知识点26-kubernetes温故知新1-pod
文章目录 创建一个podpod的启动命令和参数更改pod 镜像拉取策略 pod 的三种探针pod 探针的实现方式prestop 和 prestart 创建一个pod apiVersion: v1 # 必选,API 的版本号 kind: Pod # 必选,类型 Pod metadata: # 必选,元数据name: nginx # …...
js获取cookie
js获取cookie 前言实现讲解特别注意: 前言 主要是通过document.cookie来进行实现的 实现讲解 首先通过document.cookie 来获取到所有的cookie 然后通过分号进行分割成list 然后循环list,将list中的字符串通过首个等号进行分割然后和指定的cookie名进行比对然后返…...
RT Studio 仍存在的一些bug
年前有参加RT官方组织的活动,本来觉得是一路next的使用体验所以就没有提前跑一遍,然后现场做实验的时候,尴尬了。 安装官方guide,下载工具链,下载bsp,新建开发板项目,下载软件组件,全…...
[flask]cookie的基本使用/
彻底理解 Cookie - 知乎 (zhihu.com) 是什么 cookie是当你浏览某个网站的时候,由web服务器存储在你的机器硬盘上的一个小的文本文件。它其中记录了你的用户名、密码、浏览的网页、停留的时间等等信息。当你再次来到这个网站时,web服务器会先看看有没有…...
【Linux中vim系列】如何在vim中检索字符串
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
python、execl数据分析(数据描述)
一 python 1.各函数 1.1python库的安装与导入 #pip install os#pip install matplotlib#pip install seaborn#pip install scikit-learn#pip install scipy#修 改 工 作 目 录import osos.getcwd () # 查看当前工作环境os.chdir( F :\my course\database ) # 修改工作环境o…...
前端理论总结(css3)——页面布局方法
瀑布流 优点:节省空间,外表美观,更有艺术性 对于触屏设备非常友好,通过向上滑动浏览 用户浏览时的观赏和思维不容易被打断,留存更容易 缺点:用户…...
06|Java集合框架初学者指南:List、Set与Map的实战训练
Java集合框架是Java语言的核心部分,它提供了丰富的类和接口,用来高效地管理和操作大量数据。这个强大的工具箱包括多种集合类型,其中最为常用的是List、Set和Map。 1.List - 有序且可重复的数据清单 概念: List就像一个购物清单,你可以按照加入顺序存放和检索项目,而且同…...
Jmeter基础篇(18)压测过程中的注意事项
一、测试计划设计: 1、场景设计:需要基于实际业务需求设计合理的并发用户模型、事务和思考时间,模拟真实用户的操作行为。 2、目标明确:定义明确的性能指标(如响应时间、吞吐量、并发用户数、错误率等)和性…...
‘npm‘ 不是内部或外部命令,也不是可运行的程序
npm认识三年了,今天才知道这是node.js的命令 也就是说,想要在cmd里面运行 npm 命令,但就的安装node.js 1. node.js安装 没有安装包的先下载安装包:下载 | Node.js 中文网 (nodejs.cn) 下载之后双击打开,一路安装确…...
使el-table通过操控鼠标滚轮横向滚动
1.创建directive文件夹,里面创建directive.js文件 import Vue from vue;Vue.directive(scroll-x,{inserted:function(el){let domClass el.getAttribute(class)if(domClass.indexOf(el-table)<0){return false}const scrollDiv el;if(scrollDivnull){return fa…...
神经网络深度学习梯度下降算法优化
【神经网络与深度学习】以最通俗易懂的角度解读[梯度下降法及其优化算法],这一篇就足够(很全很详细)_梯度下降在神经网络中的作用及概念-CSDN博客 https://blog.51cto.com/u_15162069/2761936 梯度下降数学原理...
向开发板上移植ip工具:将ip工具移植到开发板系统中
一. 简介 前面一篇文章对 ip工具源码进行了交叉编译,生成了ip工具。文章如下: 向开发板上移植ip工具:交叉编译 ip工具-CSDN博客 本文对生成的 ip工具进行移植,即移植到开发板系统中,并确定是否可用。 二. 向开发板…...
数据关联_3.7
目标 利用匈牙利算法对目标框和检测框进行关联 在这里我们对检测框和跟踪框进行匹配,整个流程是遍历检测框和跟踪框,并进行匹配,匹配成功的将其保留,未成功的将其删除。 def associate_detections_to_trackers(detections, track…...
总结虚函数表机制——c++多态底层原理
前言: 前几天学了多态。 然后过去几天一直在测试多态的底层与机制。今天将多态的机制以及它的本质分享给受多态性质困扰的友友们。 本节内容只涉及多态的原理, 也就是那张虚表的规则,有点偏向底层。 本节不谈语法!不谈语法&#x…...
Contos7 安装 Maven
Contos7 安装 Maven 前言 Maven是一个用于构建和管理Java项目的强大工具。它提供了一种简单且一致的方式来构建、测试和部署项目,同时管理项目依赖关系。Maven基于项目对象模型(Project Object Model,POM),使用XML…...
对适配器模式的理解
目录 一、适配器模式是什么?二、示例【[来源](https://refactoringguru.cn/design-patterns/adapter)】1 第三方依赖 (接口A 数据A)2 客户端3 方钉转圆钉的适配器(数据B) 三、适配器(xxxAdapter࿰…...
纯前端调用本机原生Office实现Web在线编辑Word/Excel/PPT,支持私有化部署
在日常协同办公过程中,一份文件可能需要多次重复修改才能确定,如果你发送给多个人修改后再汇总,这样既效率低又容易出错,这就用到网页版协同办公软件了,不仅方便文件流转还保证不会出错。 但是目前一些在线协同Office…...
双指针的详细教程
双指针算法是一种常用的算法技巧,它通常用于在数组或字符串中进行快速查找、匹配、排序或移动操作。 双指针并非真的用指针实现,一般用两个变量来表示下标(在后面都用指针来表示) 双指针算法使用两个指针在数据结构上进行迭代&a…...
【Review+预测】测试架构演进的曲折之路
文章目录 前言 一、“原始”阶段 二、“小打小闹”阶段 三、“小米加步枪”阶段 四、“摩托化部队”阶段 五、“骑兵连”阶段 六、“海军陆战队”阶段 七、“社区型组织”阶段 前言 近期公司的测试团队需要重新组织安排,本着谦虚谨慎的态度,我从…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...
Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...
