学习笔记十九:Pod常见的状态和重启策略

Pod常见的状态和重启策略

  • 常见的pod状态
      • 第一阶段:
      • 第二阶段:
      • 扩展:
  • pod重启策略
      • 测试Always重启策略
          • 正常停止容器内的tomcat服务
          • 非正常停止容器里的tomcat服务
      • 测试never重启策略
          • 正常停止容器里的tomcat服务
          • 非正常停止容器里的tomcat服务
      • 测试OnFailure重启策略
          • 正常停止容器里的tomcat服务
          • 非正常停止容器里的tomcat服务

常见的pod状态

在这里插入图片描述

第一阶段:

  • 挂起(Pending):
    1、正在创建Pod但是Pod中的容器还没有全部被创建完成,处于此状态的Pod应该检查Pod依赖的存储是否有权限挂载、镜像是否可以下载、调度是否正常等
    2、我们在请求创建pod时,条件不满足,调度没有完成,没有任何一个节点能满足调度条件,已经创建了pod但是没有适合它运行的节点叫做挂起,调度没有完成。

  • 失败(Failed):
    Pod 中的所有容器都已终止了,并且至少有一个容器是因为失败终止。也就是说,容器以非0状态退出或者被系统终止。

  • 未知(Unknown):
    未知状态,所谓pod是什么状态是apiserver和运行在pod节点的kubelet进行通信获取状态信息的,如果节点之上的kubelet本身出故障,那么apiserver就连不上kubelet,得不到信息了,就会看Unknown,通常是由于与pod所在的node节点通信错误。

  • Error 状态:
    Pod 启动过程中发生了错误

  • 成功(Succeeded):
    Pod中的所有容器都被成功终止,即pod里所有的containers均已terminated。

第二阶段:

  • Unschedulable:Pod不能被调度, scheduler没有匹配到合适的node节点
  • PodScheduled:pod正处于调度中,在scheduler刚开始调度的时候,还没有将pod分配到指定的node,在筛选出合适的节点后就会更新etcd数据,将pod分配到指定的node
  • Initialized:所有pod中的初始化容器已经完成了
  • ImagePullBackOff:Pod所在的node节点下载镜像失败
  • Running:Pod内部的容器已经被创建并且启动。

扩展:

  • Evicted状态:出现这种情况,多见于系统内存或硬盘资源不足,可df-h查看docker存储所在目录的资源使用情况,如果百分比大于85%,就要及时清理下资源,尤其是一些大文件、docker镜像。
  • CrashLoopBackOff:容器曾经启动了,但可能又异常退出了

pod重启策略

  • Pod的重启策略(RestartPolicy)应用于Pod内的所有容器,当某个容器异常退出或者健康检查失败时,kubelet将根据 重启策略来进行相应的操作。
  • Pod 的 spec 中包含一个 restartPolicy 字段,其可能取值包括 Always、OnFailure 和 Never。默认值是 Always。
  • Always:只要容器异常退出,kubelet就会自动重启该容器。(这个是默认的重启策略)
  • OnFailure:当容器终止运行且退出码不为0时,由kubelet自动重启该容器。
  • Never:不论容器运行状态如何,kubelet都不会重启该容器。

测试Always重启策略

vim pod.yaml 
apiVersion: v1
kind: Pod
metadata:name: demo-podnamespace: defaultlabels:app: myapp
spec:restartPolicy: Alwayscontainers:- name:  tomcat-pod-javaports:- containerPort: 8080image: xianchao/tomcat-8.5-jre8:v1imagePullPolicy: IfNotPresent
kubectl apply -f pod.yaml
正常停止容器内的tomcat服务
kubectl exec -it demo-pod -- /bin/bash
/usr/local/tomcat/bin/shutdown.sh

查看pod状态:发现正常停止容器里的tomcat服务,容器重启了一次,pod又恢复正常了

kubectl get podNAME         READY   STATUS    RESTARTS     AGE
demo-pod   1/1     Running   1 (5s ago)   3m24s
非正常停止容器里的tomcat服务
kubectl exec -it demo-pod -- /bin/bash
kill 1

可以看到容器终止了,并且又重启一次,重启次数增加了一次

kubectl get podNAME         READY   STATUS    RESTARTS     AGE
demo-pod   1/1     Running   2 (5s ago)   3m24s

测试never重启策略

vim pod.yaml 
apiVersion: v1
kind: Pod
metadata:name: demo-podnamespace: defaultlabels:app: myapp
spec:restartPolicy: Nevercontainers:- name:  tomcat-pod-javaports:- containerPort: 8080image: xianchao/tomcat-8.5-jre8:v1imagePullPolicy: IfNotPresent	
kubectl apply -f pod.yaml
正常停止容器里的tomcat服务
kubectl exec -it demo-pod -- /bin/bash
/usr/local/tomcat/bin/shutdown.sh

查看pod状态:发现正常停止容器里的tomcat服务,pod正常运行,容器没有重启

kubectl get podNAME         READY   STATUS     RESTARTS     AGE
demo-pod   1/1       Completed  0     3m24s
非正常停止容器里的tomcat服务
kubectl exec -it tomcat-pod -- /bin/bash
kill 1

可以看到容器状态是error,并且没有重启,这说明重启策略是never,那么pod里容器服务无论如何终止,都不会重启

kubectl get podNAME         READY   STATUS    RESTARTS     AGE
demo-pod   1/1       error     0            3m24s

测试OnFailure重启策略

vim pod.yaml 
apiVersion: v1
kind: Pod
metadata:name: demo-podnamespace: defaultlabels:app: myapp
spec:restartPolicy: OnFailurecontainers:- name:  tomcat-pod-javaports:- containerPort: 8080image: xianchao/tomcat-8.5-jre8:v1imagePullPolicy: IfNotPresent	
kubectl apply -f pod.yaml
正常停止容器里的tomcat服务
kubectl exec -it demo-pod -- /bin/bash
/usr/local/tomcat/bin/shutdown.sh

查看pod状态:发现正常停止容器里的tomcat服务,退出码是0,pod里的容器不会重启

kubectl get podNAME         READY   STATUS    RESTARTS     AGE
demo-pod     0/1     complete   0     3m24s
非正常停止容器里的tomcat服务
kubectl exec -it tomcat-pod -- /bin/bash
kill 1

上面可以看到非正常停止pod里的容器,容器退出码不是0,那就会重启容器

kubectl get podNAME         READY   STATUS    RESTARTS     AGE
demo-pod   1/1       running    1         3m24s

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

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

相关文章

Mac安装opencv后无法导入cv2的解决方法

前提条件:以下两个插件安装成功 pip install opencv-python pip install --user opencv-contrib-python 注:直接用pip install opencv-contrib-python如果报错,就加上“–user" 第一步: 设置–添加python解释器 第二步&am…

go语言恶意代码检测系统--对接前端可视化与算法检测部分

Malware Detect System 1 产品介绍 恶意代码检测系统。 2 产品描述 2.1 产品功能 功能点详细描述注册账号未注册用户注册成为产品用户,从而具备享有产品各项服务的资格登录账号用户登录产品,获得产品提供的各项服务上传恶意样本用户可以将上传自己的…

uniapp微信小程序消息订阅快速上手

一、微信公众平台小程序开通消息订阅并设置模板 这边的模板id和详细内容后续前后端需要使用 二、uniapp前端 需要是一个button触发 js: wx.getSetting({success(res){console.log(res)if(res.authSetting[scope.subscribeMessage]){// 业务逻辑}else{uni.request…

智安网络|深入比较:Sass系统与源码系统的差异及选择指南

随着前端开发的快速发展,开发人员需要使用更高效和灵活的工具来处理样式表。在这个领域,Sass系统和源码系统是两个备受关注的选项。 Sass系统 Sass(Syntactically Awesome Style Sheets)是一种CSS预处理器,它扩展了CS…

@Param详解

文章目录 背景什么是ParamParam的使用方法使用方法:遇到的问题及因Param解决了什么问题使用与不使用对比 Param是如何进行映射的总结 背景 最近在开发过程中,在写mapper接口是在参数前加了Param注解,但是在运行的时候就会报错,说…

更多openEuler镜像加入AWS Marketplace!

自2023年7月openEuler 22.03 LTS SP1正式登陆AWS Marketplace后,openEuler社区一直持续于在AWS上提供更多版本。 目前,openEuler22.03 LTS SP1 ,SP2两个版本及 x86 arm64两种架构的四个镜像均可通过AWS对外提供,且在亚太及欧洲15个Region开放…

wkhtmltopdf 与 .Net Core

wkhtmltopdf 是使用webkit引擎转化为pdf的开源小插件. 其有.NET CORE版本的组件,DinkToPdf,但该控件对跨平台支持有限。 故打算在Linux上安装相关插件直接调用. 准备工作 虚拟机:Linux version 3.10.0-1160.el7.x86_64 wkhtmltox开发包:wkhtmltox_0.12…

大数据Flink(六十):Flink 数据流和分层 API介绍

文章目录 Flink 数据流和分层 API介绍 一、​​​​​​​​​​​​​​Flink 数据流

ZooKeeper的应用场景(命名服务、分布式协调通知)

3 命名服务 命名服务(NameService)也是分布式系统中比较常见的一类场景,在《Java网络高级编程》一书中提到,命名服务是分布式系统最基本的公共服务之一。在分布式系统中,被命名的实体通常可以是集群中的机器、提供的服务地址或远程对象等一这…

iOS申请证书(.p12)和描述文件(.mobileprovision)

打包app时,经常会用到ios证书,但很多人都苦于没有苹果电脑,即使有苹果电脑的,也会觉得苹果电脑操作也很麻烦,这里记录一下,用香蕉云编,申请证书及描述文件的过程。 香蕉云编的地址:…

【C语言】每日一题(多数元素)

多数元素,链接奉上 方法 1.摩尔投票2.合理但错误的方法2.1暴力循环2.2排序求出中间元素中间元素 1.摩尔投票 先来简单的介绍摩尔投票: 摩尔投票是一种用来解决绝对众数问题的算法。 什么是绝对众数呢? 在一个集合中,如果一个元素…

每天一练:SpringBoot连接mq

目录 每天一练:Springboot连接rabbitmq 每天一练:Springboot连接rabbitmq 目录一、部署Rabbitmq?二、增加maven依赖三、连接RabbitMq四、发布和订阅消息总结 一、部署Rabbitmq? 这里rabbitmq采用docker安装部署。 拉取docker镜像 [root192 ~]# docker…

【ChatGLM】ChatGLM-6B模型Win+4GB显卡本地部署笔记

ChatGLM-6B是清华大学知识工程和数据挖掘小组发布的一个类似ChatGPT的开源对话机器人,由于该模型是经过约1T标识符的中英文训练,且大部分都是中文,因此十分适合国内使用。 预期环境 本机电脑备注: Win10专业版 32G内存256固态系统…

SAP动态安全库存简介

动态安全库存:跑需求计划时,ERP系统按设置的库存方式自动计算出满足一定时间内可保障生产的库存数量 SAP动态安全库存的计算公式:动态安全库存=平均日需求*覆盖范围。 平均日需求=特定时期内的总需求/特定时期内的工作天数 覆盖范围指在没又货物供应的情况下,库存可以维…

稀疏感知图像和体数据恢复的系统对象研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

STM32 F103C8T6学习笔记6:IIC通信__驱动MPU6050 6轴运动处理组件—一阶互补滤波

今日主要学习一款倾角传感器——MPU6050,往后对单片机原理基础讲的会比较少,更倾向于简单粗暴地贴代码,因为经过前些日子对MSP432的学习,对原理方面也有些熟络了,除了在新接触它时会对其引脚、时钟、总线等进行仔细一些的研究之外…

ATF(TF-A)安全通告 TFV-5 (CVE-2017-15031)

安全之安全(security)博客目录导读 ATF(TF-A)安全通告汇总 目录 一、ATF(TF-A)安全通告 TFV-5 (CVE-2017-15031) 二、CVE-2017-15031 一、ATF(TF-A)安全通告 TFV-5 (CVE-2017-15031) Title 未初始化或保存/恢复PMCR_EL0可能会泄露安全世界的时间信息 CVE ID CVE-2017-1503…

spark的standalone 分布式搭建

一、环境准备 集群环境hadoop11,hadoop12 ,hadoop13 安装 zookeeper 和 HDFS 1、启动zookeeper -- 启动zookeeper(11,12,13都需要启动) xcall.sh zkServer.sh start -- 或者 zk.sh start -- xcall.sh 和zk.sh都是自己写的脚本-- 查看进程 jps -- 有…

星星之火:国产讯飞星火大模型的实际使用体验(与GPT对比)

#AIGC技术内容创作征文|全网寻找AI创作者,快来释放你的创作潜能吧!# 文章目录 1 前言2 测试详情2.1 文案写作2.2 知识写作2.3 阅读理解2.4 语意测试(重点关注)2.5 常识性测试(重点关注)2.6 代码…

常识判断

头像 carrin~👻 产品经理 225/753 75/302.5 30/152 15/101.5 等差数列,所以最后一个是10/101 收起 60 回复 发布于 2020-02-18 16:33