4、pod运维replicationCtroller、replicaSet、DeamonSet、Job、Cronjob

1、kubenetes 会自动重新运行失败的pod应用

pod运行失败,会自动重启,但是节点失败,pod会被移除,
除非配置了relicationController来管理资源

2、保持pod的健康存活

配置探针,发送http请求

3、查看前一个pod的运行日志

kubectl logs <pod_name> --previous

4、查看容器重启的运行状态

kubectl describe po <pod_name>delay(延迟)、timeout(超时)、period(周期)等。delay=0s部分显
⽰在容器启动后⽴即开始探测。timeout仅设置为1秒,因此容器必须在
1秒内进⾏响应,不然这次探测记作失败。每10秒探测⼀次容器
(period=10s),并在探测连续三次失败(#failure=3)后重启容器。退出代码
为137,这有特殊的含义 —— 表⽰该进程由外部信号终⽌。数字137是
两个数字的总和:128+x,其中x是终⽌进程的信号编号。在这个例⼦
中,x等于9,这是SIGKILL的信号编号,意味着这个进程被强⾏终
⽌

5、pod 探针配置探测延迟

如果没有设置初始延迟,探针将在启动时⽴即开始探测容器,这
通常会导致探测失败,因为应⽤程序还没准备好开始接收请求。如果
失败次数超过阈值,在应⽤程序能正确响应请求之前,容器就会重
启。

6、replicationController的作用

ReplicationController是⼀种Kubernetes资源,可确保它的pod始终保
持运⾏状态。如果pod因任何原因消失(例如节点从集群中消失或由于
该pod已从节点中逐出),则ReplicationController会注意到缺少了pod并
创建替代pod

7、replicationController 创建

# 查看rc列表
kubectl  get rc# 查看现有rc的yaml文件
kubectl get rc <rc_name> -o yaml# 创建一个rc的yaml
kubectl create -f kubectl-rc.yaml创建成功就会执行
⼀个ReplicationController有三个主要部分:
label selector(标签选择器),⽤于确定ReplicationController作⽤
域中有哪些pod
replica count(副本个数),指定应运⾏的pod数量
pod template(pod模板),⽤于创建新的pod副本spec containers ,容器相关

8、查看rc的状态

kubectl describe rc <rc_name>

9、pod 删除rc流程

10、kubernetes进入node节点

#创建节点
gcloud container clusters create <node_name> --num-nodes <node_num>#获取节点列表
kubectl get nodes#查看node详细信息
kubectl describe node <node_name>#进入node节点
gcloud compute ssh <node_name> #节点重置
gcloud compute instances reset <node_name>

11、replicationController 中的pod移动和删除(原pod需要手动删除,才行)

#更新pod中一个标签
kubectl label pod kubia app=foo --overwrite# 展示所有标签
kubectl get pods --show-lables# 展示特定标签
kubectl get pods -L app当 你 更 改 pod 的 标 签 , 使 得 它 们 不 再 与
ReplicationController的pod选择器匹配时,发⽣的事情。可以看到三个
pod和ReplicationController。在将pod的标签从app=kubia更改为app=foo
之后,ReplicationController就不管这个pod了。由于控制器的副本个数
设 置 为 3 , 并 且 只 有 两 个 pod 与 标 签 选 择 器 匹 配 , 所 以
ReplicationController 启 动 kubia-2qneh pod , 使 总 数 回 到 了 三 。
kubiadmdck pod现在是完全独⽴的,并且会⼀直运⾏直到你⼿动删除它

12、修改pod 模板

更改pod的标签和更改replicationController的选择器标签,都会重新创建新的pod,
rc就不会管理对应的pod,但是新创建的pod,还是原来的模板pod,如果想要pod的模板
更新,就需要配置replicationController的模板,要修改旧的pod,你需要删除它们,
并让ReplicationController根据新模板将其替换为新的pod。配置kubectl edit使⽤不同的⽂本编辑器
可以通过设置KUBE_EDITOR环境变量来告诉kubectl使⽤你期望的
⽂本编辑器。例如,如果你想使⽤nano编辑Kubernetes资源,请执⾏以
下命令(或将其放⼊~/.bashrc或等效⽂件中):
export KUBE_EDITOR="usr/bin/nano"# 查看rc列表
kubectl get rc# 修改pod模板
kubectl edit rc <rc_name>

13、pod的扩容缩放(修改保存后,会立即生效)

# 副本数改为10
kubectl scale rc <rc_name> --replicas=10# 编辑yaml文件
kubectl edit rc <rc_name>

14、删除一个rc

删除rc rc下管理的pod将不被管理kubectl delete rc <rc_name> --cascade=false

15、relicaSet与replicationController的区别

ReplicationController是⽤于复制和在异常时重新调度节点的
唯⼀Kubernetes组件,后来又引⼊了⼀个名为ReplicaSet的类似资源。它
是 新 ⼀ 代 的 ReplicationController , 并 且 将 其 完 全 替 换 掉
(ReplicationController最终将被弃⽤)。
ReplicaSet的⾏为与ReplicationController完全相同,但pod选择器的
表达能⼒更强。虽然ReplicationController的标签选择器只允许包含某个
标签的匹配pod,但ReplicaSet的选择器还允许匹配缺少某个标签的
pod,或包含特定标签名的pod,不管其值如何。
另外,举个例⼦,单个ReplicationController⽆法将pod与标签
env=production和env=devel同时匹配。它只能匹配带有env=devel标签的
pod或带有env=devel标签的pod。但是⼀个ReplicaSet可以匹配两组pod
并将它们视为⼀个⼤组。
同样,⽆论ReplicationController的值如何,ReplicationController都
⽆法仅基于标签名的存在来匹配pod,⽽ReplicaSet则可以。例如,
ReplicaSet可匹配所有包含名为env的标签的pod,⽆论ReplicaSet的实际
值是什么(可以理解为env=*)。

16、replicaSet相关操作

# 查看replicaSet列表
kubectl get rsreplicaSet的所有操作和replicationController操作一致

17、使用replicaSet的标签

In:Label的值必须与其中⼀个指定的values匹配。
NotIn:Label的值与任何指定的values不匹配。
Exists:pod必须包含⼀个指定名称的标签(值不重要)。使⽤此运
算符时,不应指定values字段。
DoesNotExist:pod不得包含有指定名称的标签。values属性不得指
定。
如果你指定了多个表达式,则所有这些表达式都必须为true才能使
选择器与pod匹配。如果同时指定matchLabels和matchExpressions,则所
有标签都必须匹配,并且所有表达式必须计算为true以使该pod与选择
器匹配。

18、deamonSet (确保⼀个pod匹配它的选择器并在每个节点上运⾏

Replicationcontroller和ReplicaSet都⽤于在Kubernetes集群上运⾏部
署特定数量的pod。但是,当你希望pod在集群中的每个节点上运⾏时
希望在每个节点上运⾏⽇志收集器和资源监控器。另⼀个典型的例⼦
是Kubernetes⾃⼰的kube-proxy进程,它需要运⾏在所有节点上才能使
服务⼯作

19、replicaSet和DeamonSet的区别

20、创建一个deamonSet

创建⼀个DaemonSet,它在标
记为具有SSD的所有节点上运⾏这个守护进程。集群管理员已经向所有
此类节点添加了disk=ssd的标签,因此你将使⽤节点选择器创建
DaemonSet# 查看ds列表
kubectl get ds# 创建ds
kubectl create -f ds.yaml# 查询node列表
kubectl get node# 给node添加disk=ssd标签kubectl label mode <node_name> disk=ssd

21、移除deamonSet中的pod(立即生效,会删除node下对应节点,不需要手动在删除)

# 修改node标签
kubectl label node <node_name> disk=hdd --overwrite

21、Job维护pod(只执行一次,临时任务)

运⾏⼀种pod,该pod在内部进程成功
结束时,不重启容器。⼀旦任务完成,pod就被认为处于完成状态。
在发⽣节点故障时,该节点上由Job管理的pod将按照ReplicaSet的
pod的⽅式,重新安排到其他节点。如果进程本⾝异常退出(进程返回
错误退出代码时),可以将Job配置为重新启动容器。

22、创建一个Job

# 查看job列表
kubectl get jobs# 查询job的yaml
kubectl get po <po_name> -o yaml在⼀个pod的定义中,可以指定在容器中运⾏的进程结束时,
Kubernetes会做什么。这是通过pod配置的属性restartPolicy完成的,默
认为Always。Job pod不能使⽤默认策略,因为它们不是要⽆限期地运
⾏。因此,需要明确地将重启策略设置为OnFailure或Never。

23、设置job的运行次数及并行数量

Job将⼀个接⼀个地运⾏五个pod。它最初创建⼀个pod,当pod的
容器运⾏完成时,它创建第⼆个pod,以此类推,直到五个pod成功完
成。如果其中⼀个pod发⽣故障,⼯作会创建⼀个新的pod,所以Job总
共可以创建五个以上的pod

24、Job 的扩容缩放

kubectl scale job <job_name> --replicas 3

25、设置Job的运行过期时间

通过在pod配置中设置activeDeadlineSeconds属性,可以限制pod的
时间。如果pod运⾏时间超过此时间,系统将尝试终⽌pod,并将Job标
记为失败。
注意 通过指定Job manifest中的spec.backoffLimit字段,可以配置
Job在被标记为失败之前可以重试的次数。如果你没有明确指定它,则
默认为6

26、cronJob(定时执行、或将来运行一次pod)

可能发⽣Job或pod创建并运⾏得相对较晚的情况。你可能对这项
⼯作有很⾼的要求,任务开始不能落后于预定的时间过多。在这种情
况下,可以通过指定CronJob规范中的startingDeadlineSeconds字段来指
定截⽌⽇期
⼯作运⾏的时间应该是10:30:00。如果
因为任何原因10:30:15不启动,任务将不会运⾏,并将显⽰为Failed。

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

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

相关文章

mysql-视图,创建表,存储过程,循环,判断实操命令

数据库操作命令在IDEA工具database的console命令 数据库表结构与视图 -- 查询隔离级别 select transaction_isolation;-- 设置隔离级别 set session transaction isolation level read committed ; set session transaction isolation level REPEATABLE READ ;start transacti…

蚂蚁感冒c++

题目 思路 “两蚂蚁碰面会掉头&#xff0c;若其中一只蚂蚁感冒了&#xff0c;会把感冒传染给碰到的蚂蚁”&#xff0c;这句话看作是“两蚂蚁碰面会互相穿过&#xff0c;只是把感冒的状态传给了另一只蚂蚁”&#xff0c;因为哪只蚂蚁感冒了并不是题目的重点&#xff0c;重点是有…

如何在Word里一次性给全部汉字加拼音?

word是大家日常使用频率较高的工作软件&#xff0c;功能性很强&#xff0c;有上乘的文档格式设置工具&#xff0c;利用它可更轻松、高效地组织和编写文档&#xff0c;熟练运用word&#xff0c;在职场上很重要。那么word如何添加拼音呢?下面给大家介绍一下吧。 方法一&#xf…

线性dp P4310-绝世好题/P4933 大师【日记】

1.绝世好题&#xff08;P4310&#xff09; 绝世好题https://www.luogu.com.cn/problem/P4310 比较考验思维的一道题目&#xff0c;码量和理解难度都不大&#xff0c;重在思维。 一开始看错题&#xff0c;以为是求子串&#xff08;还在想为啥考的纯位运算枚举&#xff0c;whe…

vue iis 配置

下载安装两个IIS模块 1). 传送门&#xff1a;URL Rewrite 2). 传送门&#xff1a;Application Request Routing 注 : 只有在 服务器的主页 有Application Request Routing 部署VUE网站 生成网站 在VUE项目打包生成出发布文件,即文件夹 dist,此处忽略 复制到你需要存放网站的…

Skywalking官方的实战模拟项目Live-Demo

Skywalking 官方的实战模拟项目Live-Demo Live-Demo 是 Skywalking 官方的实战模拟项目&#xff0c;其中包含4个子模块项目 projectA访问projectB、projectC两个SpringBoot项目 projectB访问本地的H2数据库 projectC访问www.baidu.com并同时向一台Kafka消息队列写入数据 proje…

入门指南:使用uni-app构建跨平台应用

入门指南&#xff1a;使用uni-app构建跨平台应用 &#x1f31f; 前言 欢迎来到我的小天地&#xff0c;这里是我记录技术点滴、分享学习心得的地方。&#x1f4da; &#x1f6e0;️ 技能清单 编程语言&#xff1a;Java、C、C、Python、Go前端技术&#xff1a;Jquery、Vue.js、R…

六、软考-系统架构设计师笔记-软件工程基础知识

1、软件工程 软件工程是将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护&#xff0c;即将工程化应用于软件并对上述方法的研究。 软件要经历从需求分析、软件设计、软件开发、运行维护&#xff0c;直至被淘汰这样的全过程&#xff0c;这个过程称为软件的生…

Android使用OpenGL和FreeType绘制文字

Open GL主要是渲染图形的&#xff0c;有时候需要绘制文字&#xff0c;网上搜了一下&#xff0c;基本思路都是把文字转成位图&#xff0c;再使用Open GL纹理进行渲染。加载纹理在特定阶段才能成功&#xff08;在onSurfaceCreated中加载&#xff09;&#xff0c;这样就无法动态的…

部署LVS负载均衡架构

目录 一、ipvsadm 工具 二、NAT模式下部署LVS负载均衡 1、部署NFS共享存储服务器 1.1 安装NFS软件 1.2 新建共享目录和站点文件 1.3 设置共享策略 2、部署节点服务器1 2.1 安装并启动nginx软件 2.2 挂载共享目录到网页站点目录 2.3 修改网关 3、部署节点服务器2 3.…

在ABAP中创建一个简单的守护进程

原文地址&#xff1a;Create a simple Daemon in ABAP 目录 一、ABAP语言中的守护进程是什么&#xff1f;二、ABAP 守护进程框架 (ADF)三、ABAP 守护进程类四、创建一个简单的ABAP守护进程步骤1&#xff1a;创建一个新的ABAP Daemon类步骤2&#xff1a;实现ON_ACCEPT方法第三步…

「滚雪球学Java」:GUI编程(章节汇总)

咦咦咦&#xff0c;各位小可爱&#xff0c;我是你们的好伙伴——bug菌&#xff0c;今天又来给大家普及Java SE相关知识点了&#xff0c;别躲起来啊&#xff0c;听我讲干货还不快点赞&#xff0c;赞多了我就有动力讲得更嗨啦&#xff01;所以呀&#xff0c;养成先点赞后阅读的好…

Kosmos-1: 通用接口架构下的多模态大语言模型

Kosmos-1: 通用接口架构下的多模态大语言模型 FesianXu 20230513 at Baidu Search Team 前言 在大规模语言模型&#xff08;Large Language Model, LLM&#xff09;看似要带来新一番人工智能变革浪潮之际&#xff0c;越来越多尝试以LLM作为通用接口去融入各种任务的工作&#…

【vue】ant-design弹出框无法关闭和runtimecore提示isFucntion is not function的问题修复

【vue】ant-design弹出框无法关闭和runtimecore提示isFucntion is not function的问题修复&#xff0c;初步分析是vue发布3.4版本以后引起的兼容性问题。 问题截图&#xff1a; 1.isFucntion is not function&#xff0c;是由于vue升级后众多插件版本不匹配造成的问题 2.弹框…

计算机中msvcp140.dll,丢失怎么修复与解决

一、msvcp140.dll20个软件环境 msvcp140.dll文件是许多软件运行环境的组成部分&#xff0c;通常与Microsoft Visual C Redistributable关联。以下是可能使用该文件的软件环境&#xff1a; 微软办公软件&#xff1a;如Microsoft Office套件&#xff0c;包括Word、Excel、Power…

Python给图片加水印

受到“手动给证件加文字太麻烦”的感触&#xff0c;想用Python来实现给图片加水印&#xff0c;这不方便多了。 这里使用PIL模块&#xff1a; from PIL import Image from PIL import ImageFont from PIL import ImageDrawimg_t Image.open(cat.jpg) img_size_t img_t.size…

OJ:循环队列

622. 设计循环队列 - 力扣&#xff08;LeetCode&#xff09; 思路 思路&#xff1a;首先循环队列的意思是&#xff1a;空间固定&#xff0c;就是提前开辟好&#xff0c;满了就不能插入了&#xff0c;但是删除数据后仍有空间&#xff0c;删除循环队列里面的数据后&#xff0c;保…

Apache ECharts数据可视化技术

介绍 官方地址:Apache ECharts 快速入门案例echarts.init //初始化方法 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>ECharts</title><!-- 引入刚刚下载的 ECharts 文件 --><script src"echart…

基于JavaWEB SpringBoot婚纱影楼摄影预约网站设计和实现

基于JavaWEB SSM SpringBoot婚纱影楼摄影预约网站设计和实现 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言…

Java Swing游戏开发学习8

内容来自RyiSnow视频讲解 上一节提到的bug&#xff0c;不知道有没有人发现&#xff1f; 在播放音乐和音效的时候使用的是同一个clip对象&#xff0c;播放背景音乐在前&#xff0c;后续播放音效&#xff0c;clip对象就被覆盖了&#xff0c;因此导致调用停止播放背景音乐的时候&a…