【K8S in Action】副本机制与控制器:部署托管的Pod

news2024/11/19 5:31:37

通过控制器来运行托管的 pod,Pod失败的时候自动重新启动它们。

1. 保持pod健康

从外部检查应用程序的运行状况:

  1. HTTPGET探针对容器的 IP 地址
  2. TCP套接字探针尝试与容器指定端口建立TCP连接
  3. Exec探针在容器内执行任意命令,并检查命令的退出状态码。如果状态码是 0, 则探测成功。

务必记得设置一个初始延迟未说明应用程序的启动时间。

livenessProbe:     
	httpGet: 		 		 HTTPGET探针
		path: /      		 请求路径
		port: 8080  		 请求端口
	initialDelaySeconds: 15  初始延迟,应用启动后15s开始探测请求

在这里插入图片描述

# 获取崩溃容器的应用日志, 即上一个容器的日志
kubectl logs mypod --previous 

# describe的内容来了解为什么必须重启容器
kubectl describe po kubia-liveness

1.1 describe 结果解释

退出代码为137, 这有特殊的含义 —-表示该进程由外部信号终止。数字137是两个数字的总和:128+x, 其中x是终止进程的信号编号。
在这个例子中,x等于9, 这是SIGKILL 的信号编号,意味着这个进程被强行终止。

  • delay(延迟)delay=0s部分显示在容器启动后立即开始探测
  • timeout(超时)设置为1秒,因此容器必须在1秒内进行响应, 不然这次
    探测记作失败
  • period(周期)等。在探测连续三次失败(#failure= 3)后重启容器。
    在这里插入图片描述

2 了解ReplicationController

ReplicationController旨在创建和管理一个pod的多个副本。确保pod的数量始终与其标签选择器匹配。
ReplicationController有三个主要部分:

  1. label selector ( 标签选择器), 用于确定ReplicationController作用域中有哪些Pod
  2. replica count (副本个数), 指定应运行的pod 数量
  3. pod template (pod模板), 用于创建新的pod 副本

一些命令缺少命名空间,补上即可使用

kubectl create -f kubia-rc.yaml		 创建了ReplicationController

kubectl get pods -A			RC 根据Pod 模板启动3个kubia 的Pod,查看Pod
#NAME 		READY STATUS	 RESTARTS AGE 
#kubia-53thy	 0/1 ContainerCreating 0  2s

kubectl delete pod kubia-53thy    删除一个Pod,观察将会创建出一个

kubectl get re   # 获取RC的信息 re作为rep让ca巨oncontroller的简写
# NAME DESIRED CURRENT READY AGE 
# kubia 3		3		3		3m

kubectl describe rc kubia

在这里插入图片描述
通过更改pod的标签, 可以将它 从ReplicationController的作用域中添加或删除。
pod 在metadata.ownerReferences 中引用RC 控制器,可以找到属于哪个RC控制器。

将 pod 移入或移出RC的作用域

kubectl label pod kubia - dmdck type=special   给一个Pod增加type=sp ecial的标签,对原控制器无影响

kubectl label pod kubia-dmdck app=foo --overwrite   对Pod修改现有标签app=kubi,脱落RC 的管理

kubectl get pods -L app      使用-L app 选项在列中显示app的标签列

修改RC 中的 pod模板

更改 pod 模板后,会影响你之后创建的Pod,并且不会影响你已经创建的Pod。

kubectl edit rc kubia   # 编辑RC kubia 的Yaml
修改模板中的容器图像, 删除现有的容器, 并让它们替换为新模板中的新容器, 可用来升级pod(后续有更好方法)

kubectl scale re kubia --replicas=3    也可修改副本数量实现水平缩放

kubectl delete rc kubia --cascade=false  删除 RC 时,使用--cascade=false保持 pod 的运行

3 使用ReplicaSet而不是ReplicationController

ReplicaSet 的选择器比RC强,RC已经被弃用。
在这里插入图片描述

kubectl create -f kubia-replicaset.yaml
kubectl get rs                    rs 是ReplicaSet的简写
kubectl describe rs    

selector: 
	matchExpressions: 
		- key: app 
			operator: In
			values:
			- kubia 

每个表达式都必须 包含一个key、一个operator (运算符),并且可能还有一个values的列表(取决于运算符),四个有效的运算符。如果同时指定matchLabels和matchExpressions, 则所有标签都必须匹配,并且所有表达式必须计算为true以使该pod与选择器匹配

• In : Label的值 必须与其中 一个指定的values 匹配。
• Notln : Label的值与任何指定的values 不匹配。
• Exists : pod 必须包含一个指定名称的标签(值不重要)。使用此运算符时,
不应指定 values字段。
• DoesNotExist : pod不得包含有指定名称的标签。values属性不得指定

使用 DaemonSet在每个节点上运行一个pod

在这里插入图片描述

Job 执行单个任务或定时运行

在这里插入图片描述

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

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

相关文章

智能优化算法应用:基于人工兔算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于人工兔算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于人工兔算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.人工兔算法4.实验参数设定5.算法结果6.参考文献7.…

初出茅庐的小李博客之TobudOS移植到EVB_AIoT开发板

本博客参考教程: https://atomgit.com/OpenAtomFoundation/TobudOS/blob/master/doc/TobudOS_EVB_AIoT_STM32_Guide.md 介绍一下EVB_AIoT开发板 这个开发板是由TobudOS开源社区联合意法半导体、南京厚德物联网设计的一款高性能IoT开发平台,主控芯片是S…

学校安全检查系统

校园面积大、安全盲区多对学校安全管理带来诸多挑战;传统依靠人工纸质巡检记录存在漏检、管理难、联动差等诸多问题和缺点,巡检过程中很容易遗漏安全隐患的存续,从而导致安全事故的发生。 通过凡尔码平台模块化搭建学校安全管理系统&#xf…

【Bootloader学习理解----跳转优化异常】

笔者接着来介绍一下Bootloader的跳转代码以及优化 1、跳转代码理解 跳转代码可能要涉及到芯片架构的知识,要跳转到对应的位置,还要设置相关的SP 堆栈指针,具体可以参考笔者这篇文章BootLoader的理解与实现。 STM32的跳转代码如下所示: u32 …

多张二维码能一次解码处理吗?3个步骤就能完成

二维码是现在生活中很常见的内容承载方式,但是有时候我们需要将二维码内容转换成文本或者链接来使用,那么如何处理能够将二维码分解处理呢?想要将多张二维码图片分解处理,那么为了提高效率可以用二维码解码器的批量解码功能来处理…

【词云图】从excel和从txt文件,绘制以句子、词为单位的词云图

从excel和从txt文件,绘制以句子、词为单位的词云图 写在最前面数据说明&结论 从txt文件,绘制以句子、词为单位的词云图自我介绍 从excel,绘制以句子、词为单位的词云图读取excel绘制以句子、词为单位的词云图文章标题 写在最前面 经常绘…

TSINGSEE青犀AI视频识别技术渣土车识别智能监管方案

随着城市化进程的不断推进,渣土车在建筑垃圾的运输中发挥着越来越重要的作用。未密闭化运输、车容不洁挂土、违规抛洒滴漏是目前渣土运输过程中最常见的违规行为。传统的渣土车运输管理方式存在着很多问题,导致渣土车在运输过程出现的不规范行为得到有效…

vue3实现2d楼宇模型

需求背景解决效果视频效果2dFloor.vue 需求背景 需要实线一个2d楼宇模型&#xff0c;并按照租户温度渲染颜色 解决效果 视频效果 2dFloor.vue <!--/*** author: liuk* date: 2023/12/06* describe: 2d楼宇模型* CSDN:https://blog.csdn.net/hr_beginner?typeblog*/--&g…

TA-Lib学习研究笔记(九)——Pattern Recognition (5)

TA-Lib学习研究笔记&#xff08;九&#xff09;——Pattern Recognition &#xff08;5&#xff09; 最全面的形态识别的函数的应用&#xff0c;通过使用A股实际的数据&#xff0c;验证形态识别函数&#xff0c;用K线显示出现标志的形态走势&#xff0c;由于入口参数基本上是o…

Element-UI定制化Tree 树形控件

1.复制 说明&#xff1a;复制Tree树形控件。 <script> export default {data() {return {data: [{label: 一级 1,children: [{label: 二级 1-1,children: [{label: 三级 1-1-1}]}]}, {label: 一级 2,children: [{label: 二级 2-1,children: [{label: 三级 2-1-1}]}, {l…

1-3、Java反编译

语雀原文链接 文章目录 1、JD-GUI反编译下载1-1、打开class文件无反应 1、JD-GUI反编译下载 http://java-decompiler.github.io jd-gui-windows-1.6.6.zip 1-1、打开class文件无反应 目前是可以正常打jar包文件&#xff0c;但是在直接打开.class文件时软件会卡住。首先将要…

谷歌发布大模型Gemini,赶超GPT4

迄今为止规模最大&#xff0c;能力最强的谷歌大模型来了。当地时间 12 月 6 日&#xff0c;谷歌 CEO 桑达尔・皮查伊官宣 Gemini 1.0 版正式上线。 这次发布的 Gemini 大模型是原生多模态大模型&#xff0c;是谷歌大模型新时代的第一步&#xff0c;它包括三种量级&#xff1a;…

打破常规思维:Scrapy处理豆瓣视频下载的方式

概述 Scrapy是一个强大的Python爬虫框架&#xff0c;它可以帮助我们快速地开发和部署各种类型的爬虫项目。Scrapy提供了许多方便的功能&#xff0c;例如请求调度、数据提取、数据存储、中间件、管道、信号等&#xff0c;让我们可以专注于业务逻辑&#xff0c;而不用担心底层的…

[报错]记录IDEA远程开发报错:java: Cannot run program.....

报错内容 IDEA在进行远程开发的时候报错&#xff0c;内容如下&#xff1a; java: Cannot run program "/usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java" (in directory "/home/jim/.cache/JetBrains/RemoteDev-IU/_home_jim_DevCodes_Github_zfile/compile-…

【QED】不想被排除

目录 题目描述输入格式输出格式测试样例温馨提示 思路核心代码 题目描述 给出一个数 n n n 以及 x x x , y y y , z z z &#xff0c;求 1 1 1 到 n n n 中&#xff0c;有多少个数不是 x x x, y y y, z z z 中任意一个数的倍数。 输入格式 第一行输入一个整数 T T…

力扣37. 解数独(java回溯解法)

Problem: 37. 解数独 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 该题可以使用回溯来模拟穷举。回溯问题通常涉及到可选列表&#xff0c;决策阶段&#xff0c;决策路径&#xff0c;而对于本题目我们选择将棋盘的每一个格子作为决策阶段&#xff0c;为此我们应该解…

OrangePi ZERO2 刷机与启动

镜像准备 用读卡器和Win32Diskimager刷写镜像到内存卡&#xff0c;镜像文件见下面百度云链接&#xff1a;https://pan.baidu.com/s/14aKTznc4Jvw4SoFF54JUTg 提取码&#xff1a;1815 刷写完毕后插回香橙派 串口登录 用MobaXterm和USB-TTL进行串口登录&#xff0c;MobaXterm软…

【C】⽂件操作

1. 为什么使⽤⽂件&#xff1f; 如果没有⽂件&#xff0c;我们写的程序的数据是存储在电脑的内存中&#xff0c;如果程序退出&#xff0c;内存回收&#xff0c;数据就丢失了&#xff0c;等再次运⾏程序&#xff0c;是看不到上次程序的数据的&#xff0c;如果要将数据进⾏持久化…

【文件上传系列】No.1 大文件分片、进度图展示(原生前端 + Node 后端 Koa)

分片&#xff08;500MB&#xff09;进度效果展示 效果展示&#xff0c;一个分片是 500MB 的 分片&#xff08;10MB&#xff09;进度效果展示 大文件分片上传效果展示 前端 思路 前端的思路&#xff1a;将大文件切分成多个小文件&#xff0c;然后并发给后端。 页面构建 先在页…

将RK3399的挖掘机开发板在Android10下设置系统默认为24小时制

将RK3399的挖掘机开发板在Android10下设置系统默认为24小时制 2023/12/9 22:07 应该也可以适用于RK3399的Android12系统 --- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml -2…