容器组_生命周期

在这里插入图片描述

📕作者简介: 过去日记,致力于Java、GoLang,Rust等多种编程语言,热爱技术,喜欢游戏的博主。
📘相关专栏Rust初阶教程、go语言基础系列、spring教程等,大家有兴趣的可以看一看
📙Java并发编程系列,设计模式系列、go web开发框架 系列正在发展中,喜欢Java,GoLang,Rust,的朋友们可以关注一下哦!


文章目录

    • 容器组_生命周期
      • Pod phase
      • Pod conditions
      • 容器的检查
      • 何时使用 健康检查/就绪检查?
      • 容器的状态
      • 重启策略
      • 容器组的存活期

容器组_生命周期

Pod phase

Pod phase 代表其所处生命周期的阶段。Pod phase 并不是用来代表其容器的状态,也不是一个严格的状态机。
phase 的可能取值有:

Phase描述
PendingKubernetes 已经创建并确认该 Pod。此时可能有两种情况:1.Pod 还未完成调度(例如没有合适的节
Running该 Pod 已经被绑定到一个节点,并且该 Pod 所有的容器都已经成功创建。其中至少有一个容器正在运行,或者正在启动/重启
SucceededPod 中的所有容器都已经成功终止,并且不会再被重启
FailedPod 中的所有容器都已经终止,至少一个容器终止于失败状态:容器的进程退出码不是 0,或者被系统 kill
Unknown因为某些未知原因,不能确定 Pod 的状态,通常的原因是 master 与 Pod 所在节点之间的通信故障

Pod conditions

每一个 Pod 都有一个数组描述其是否达到某些指定的条件。Pod condition 数组在 Kuboard 中的显示如下图所示:
在这里插入图片描述

该数组的每一行可能有六个字段:

字段名描述
typetype 是最重要的字段,可能的取值有:
PodScheduled: Pod 已被调度到一个节点
Ready: Pod 已经可以接受服务请求,应该被添加到所匹配 Service 的负载均衡的资源池
Initialized:Pod 中所有初始化容器已成功执行
Unschedulable:不能调度该 Pod(缺少资源或者其他限制)
ContainersReady:Pod 中所有容器都已就绪
status能的取值有:
True
False
Unknown
reasonCondition 发生变化的原因,使用一个符合驼峰规则的英文单词描述
messageCondition 发生变化的原因的详细描述,human-readable
lastTransitionTimeCondition 发生变化的时间戳
lastProbeTime上一次针对 Pod 做健康检查/就绪检查的时间戳

容器的检查

Probe 是指 kubelet 周期性地检查容器的状况。有三种类型的 Probe:

  • ExecAction: 在容器内执行一个指定的命令。如果该命令的退出状态码为 0,则成功
  • TCPSocketAction: 探测容器的指定 TCP 端口,如果该端口处于 open 状态,则成功
  • HTTPGetAction: 探测容器指定端口/路径上的 HTTP Get 请求,如果 HTTP 响应状态码在 200 到 400(不包含400)之间,则成功

Probe 有三种可能的结果:

  • Success: 容器通过检测
  • Failure: 容器未通过检测
  • Unknown: 检测执行失败,此时 kubelet 不做任何处理

Kubelet 可以在两种情况下对运行中的容器执行 Probe:

  • 就绪检查 readinessProbe: 确定容器是否已经就绪并接收服务请求。如果就绪检查失败,kubernetes 将该 Pod 的 IP 地址从所有匹配的 Service 的资源池中移除掉。
  • 健康检查 livenessProbe: 确定容器是否正在运行。如果健康检查失败,kubelete 将结束该容器,并根据 restart policy(重启策略)确定是否重启该容器。

何时使用 健康检查/就绪检查?

  • 如果容器中的进程在碰到问题时可以自己 crash,您并不需要执行健康检查;kubelet 可以自动的根据 Pod 的 restart policy(重启策略)执行对应的动作
  • 如果您希望在容器的进程无响应后,将容器 kill 掉并重启,则指定一个健康检查 liveness probe,并同时指定 restart policy(重启策略)为 Always 或者 OnFailure
  • 如果您想在探测 Pod 确实就绪之后才向其分发服务请求,请指定一个就绪检查 readiness probe。此时,就绪检查的内容可能和健康检查相同。就绪检查适合如下几类容器:
    • 初始化时需要加载大量的数据、配置文件
    • 启动时需要执行迁移任务
    • 其他

Kuboard 中配置健康检查/就绪检查
Kuboard 可以在工作负载编辑器中配置健康检查/就绪检查,界面如下所示:

Kubernetes教程:在Kuboard中配置容器的健康检查/就绪检查

容器的状态

一旦 Pod 被调度到节点上,kubelet 便开始使用容器引擎(通常是 docker)创建容器。容器有三种可能的状态:Waiting / Running / Terminated:

  • Waiting: 容器的初始状态。处于 Waiting 状态的容器,仍然有对应的操作在执行,例如:拉取镜像、应用 Secrets等。
  • Running: 容器处于正常运行的状态。容器进入 Running 状态之后,如果指定了 postStart hook,该钩子将被执行。
  • Terminated: 容器处于结束运行的状态。容器进入 Terminated 状态之前,如果指定了 preStop hook,该钩子将被执行。

重启策略

定义 Pod 或工作负载时,可以指定 restartPolicy,可选的值有:

  • Always (默认值)
  • OnFailure
  • Never
    restartPolicy 将作用于 Pod 中的所有容器。kubelete 将在五分钟内,按照递延的时间间隔(10s, 20s, 40s …)尝试重启已退出的容器,并在十分钟后再次启动这个循环,直到容器成功启动,或者 Pod 被删除。

容器组的存活期

通常,如果没有人或者控制器删除 Pod,Pod 不会自己消失。只有一种例外,那就是 Pod 处于 Scucceeded 或 Failed 的 phase,并超过了垃圾回收的时长(在 kubernetes master 中通过 terminated-pod-gc-threshold 参数指定),kubelet 自动将其删除。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

张大哥笔记:如何选择项目和未来发展方向,实现10倍增长

在过去的10年里,我加入了众多社群,接触了不少行业精英,还参与了各式各样的交流圈。这段时间,我一直在考虑一个问题:未来的发展道路究竟在何方?起初我认为只有那些具有长期积累价值的事业才有真正的前景&…

傅里叶变换理论2

1. 逆变换 2. 时间域和频率域 3. 波的基本单位

C语言例题29:在屏幕上显示一个等腰三角形

#include <stdio.h>void main() {int i, j;int x;printf("输入等腰三角形行数&#xff1a;");scanf("%d", &x);for (i 1; i < x; i) {for (j i; j < x; j) {printf(" "); //输出空格占位}for (j 1; j < 2 * i; j) {printf…

【计算机毕业设计】基于SpringBoot+Vue企业车辆管理系统设计与实现

目录 一、项目介绍 二、项目主要技术 三、系统体系结构 四、系统实现 五、实现代码 一、项目介绍 本系统采用Mysql数据库和java语言&#xff0c;SpringBoot框架进行开发而成&#xff0c;极大程度上的保证了系统的稳定性。管理人员可以管理个人中心、驾驶员管理、用户管…

FR-TSN4206获得“时间敏感网络产业链名录计划”测试认证证书,TSN交换机助力智能工业发展

TSN技术&#xff0c;即时间敏感网络技术&#xff0c;已成为智能工业、自动驾驶等领域的核心。它通过时钟同步、数据调度等功能&#xff0c;确保低延迟、高可靠性的数据传输。 为推动TSN技术在我国的发展&#xff0c;工业互联网产业联盟联合多家单位启动了“时间敏感网络产业链名…

AI制作《曼达洛人4》电影宣传片

AI制作《曼达洛人》电影宣传片 Bounty hunters, legends, and a galaxy in turmoil. The Mandalorian rises. 赏金猎人、传奇和混乱的星系。曼达洛人崛起。 In the shadows of the Outer Rim, a lone warrior walks the path of honor. 在外围边缘的阴影中&#xff0c;一名独…

esp32-cam 2. python opencv 拉取摄像头内容

0. 环境 - win10 python3 - pycharm - esp32-cam http://192.168.4.1 1. 创建工程 File -> Create Project -> -> Location: E:\Workspaces\PycharmProjects\esp32cam_opencv -> Create 2. opencv hello 2.1 添加脚本 File -> New -> Python f…

【跟马少平老师学AI】-【神经网络是怎么实现的】(五)梯度消失问题

一句话归纳&#xff1a; 1&#xff09;用sigmoid激活函数时&#xff0c;BP算法更新公式为&#xff1a; 用sigmoid函数&#xff0c;O取值为0~1&#xff0c;O(1-O)最大值为0.25&#xff0c;若神经网络层数多&#xff0c;则会造成更新项趋近于0&#xff0c;称为梯度消失。 2&#…

我使用Python开发网站的3个主要框架库,值得推荐

虽然Python不是主打后端开发的语言&#xff0c;但目前市场仍有很多大公司在用Python开发网站和软件&#xff0c;比如Youtube、Reddit、Dropbox、Douban等。 目前Python生态有几个受欢迎的后端框架&#xff0c;主要是Django、Flask、FastAPI&#xff0c;咱们如果做Python后端开…

【C++】1.贪心算法:零钱兑换的奇妙之旅

欢迎来CILMY23的博客 本篇主题为 贪心算法&#xff1a;零钱兑换的奇妙之旅 个人主页&#xff1a;CILMY23-CSDN博客 个人专栏&#xff1a; Python | C | C语言 | 数据结构与算法 上一篇C博客&#xff1a;掌握C函数重载和引用开启代码优化的新篇章 感谢观看&#xff0c;支…

vue2项目webpack3.x打包文件分割优化加载

vue2项目webpack3.x打包文件分割优化加载 0. 项目目录和依赖信息1. 开启 gzip&#xff08;建议&#xff09;2. vue2项目配置懒加载&#xff08;建议&#xff09;3. 拆分 vendor 包注意&#xff1a;webpack3使用CommonsChunkPlugin实现 本文使用 3 种方案进行叠加优化 优先级按以…

05.Git标签管理

Git标签管理 #创建一个标签 [rootgitlab ~/demo]#git tag -a "v1.1" -m "first" [rootgitlab ~/demo]# git tag v1.1 #查看标签信息 [rootgitlab ~/demo]# git show v1.1 tag v1.1 Tagger: quyunlong <quyunlongfoxmail.com> Date: Tue Oct 18…

httpcanary抓包某游戏思路及教程[第1期]

游戏介绍&#xff1a; 这期在线读档0花购买教程&#xff0c;存档版教程。下一期在线购买无限鲜花累计充值安卓全系统适配修改教程。 小白勿入&#xff0c;技术流资料 网盘自动获取 链接&#xff1a;https://pan.baidu.com/s/1lpzKPim76qettahxvxtjaQ?pwd0b8x 提取码&#x…

数据挖掘实战-基于CNN深度学习算法构建英文文本分类模型

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

JZ69跳台阶

&#x1f600;前言 青蛙跳台阶是一个经典的问题&#xff0c;它描述了一只青蛙每次可以跳上1级台阶或者2级台阶&#xff0c;问跳上一个n级的台阶有多少种跳法。这个问题看似简单&#xff0c;实则蕴含了一定的数学思维和递推关系。在本文中&#xff0c;我们将通过分析问题的特性和…

python实现验证码-图片类型

1 utils.py import randomdef get_random_code():code for i in range(5):# 随机生成大写字母upper_char chr(random.randint(65, 90))lower_char chr(random.randint(97, 122))num_char str(random.randint(0, 9))res random.choice([upper_char, lower_char, num_char]…

merge and rebase

文章目录 什么是merge什么是rebasemerge和rebase的区别操作执行git merge操作git rebase操作冲突解决解决冲突的步骤 Git Merge 和 Git Rebase 都是用于集成来自不同分支的修改的 Git 命令。 什么是merge Git Merge 是将一个分支的改动合并到另一个分支的方式。当你执行一个 m…

牛客热题:链表中环的入口结点

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;力扣刷题日记 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 文章目录 牛客热题&#xff1a;**链表中环的入口结点**题目链接…

搭建并配置HTTPD文件服务及访问权限控制

一、安装HTTPD服务 yum -y install httpd 查看安装版本 httpd -v 二、HTTPD服务目录结构 conf: 存放主要的配置文件&#xff0c;如httpd.conf。 conf.d: 包含额外的配置文件&#xff0c;可以通过主配置文件包含进来。 conf.modules.d: 包含Apache模块的配置文件。 logs: 存放…

【python】python新闻数据抓取情感分析可视化(源码+数据)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…