当前位置: 首页 > news >正文

Kubernetes》》K8S》》Pod的健康检查

K8s概念总结
》》》Pod的生命周期阶段
Pod的生命周期可以简单描述:首先Pod被创建,紧接着Pod被调度到Node节点进行部署。
Pod是非常忠诚的,一旦被分配到Node节点后,就不会离开这个Node节点,直到它被删除,删除可能是人为删除或者被RC(Replication Controller 旧版本)、RS(ReplicaSet新版本)删除,也可能是当Pod进行Succeeded或Failed阶段过期,被K8s 清理掉。总之Pod被删除后,生命周期结束。即使被RS、RC 进行重建,也是新的Pod。
Pod的生命周期被定义为以下几个阶段

Pending:Pod已经被创建,但是一个或者多个容器还未创建,这包括Pod调度阶段,以及容器镜像下载阶段
Running: Pod已经被调度到Node节点上,所有容器已经创建,并且至少一个容器在运行或者正在重启
Succeeded:Pod中所有容器正常退出 就是Exit Code 为0
Failed: Pod中所有容器退出,至少有一个容器是非正常退出(Exit Code 非0 )

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Pod被创建成功后,首先会进入Pending阶段,然后被调度到Node后运行,进入Running阶段。如果Pod中的容器停止(正常或者异常退出),那么Pod根据重启策略的不同会进入不同的阶段。

》》回调函数
在这里插入图片描述

在这里插入图片描述

# Pod活着才可能提供处理能力(提供服务),Pod死了,一定就不能提高处理能力,Pod活着不一样就能提供处理能力
# liveness 存活性检测   检测Pod是否活着
# readiness 就绪性检测  检测Pod是否准备就绪提供处理能力

开始回调钩子(postStart)里面有如下三种方式:
exec : 执行命令,执行的结果如果返回值不为0即为失败(注:exec下面执行的命令,必须为当前容器内支持的命令)
tcpsocket :探测端口,探测的端口如果探测失败即为失败
httpget : 访问链接 ,如果访问链接状态码不为200即为失败
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

。。。。。
#  exec 方式
spec: containers: - image: nginx:1.17.1name: nginx-containerports: - name: "port-name"containerPort: 8080protocol: TCPlifecycle:postStart:  # 主容器启动后钩子exec:command: - "/bin/sh"- "-c"- "touch /opt/lifecycle.txt"preStop:  # 主容器终止前钩子exec:command: - "/bin/sh"- "-c"- "cat /opt/lifecycle.txt"

以下列子是在主容器启动后会去访问链接http://192.x.1.x:8080/login,在主容器终止前去访问链接http://192.x.1.x:8080/logout;

#  httpget方式

#  httpget方式
spec: containers: - image: nginx:1.17.1name: nginx-containerports: - name: "port-name"containerPort: 8080protocol: TCPlifecycle:postStart:  # 主容器启动后钩子httpGet: path: /login             # Url地址port: 8080          # 端口host: 192.x.1.x # 默认pod的PodIPschema: HTTP # 支持的协议,http或httpspreStop:  # 主容器终止前钩子httpGet: path: /logout            # Url地址port: 8080          # 端口host: 192.x.1.x # 主机地址schema: HTTP # 支持的协议,http或https  默认 http

以下列子是在主容器启动后尝试去连接8080端口,在主容器终止前去连接8081端口

# tcpsocket 方式
spec: containers: - image: nginx:1.17.1name: nginx-containerports: - name: "port-name"containerPort: 8080protocol: TCPlifecycle:postStart:  # 主容器启动后钩子tcpSocket: port: 8080preStop:  # 主容器终止前钩子tcpSocket: port: 8081

Pod健康检测

apiVersion: v1
kind: Pod
metadata:name: liveness-exec-podlabels:test: liveness
spec:containers:- name: livenessimage: nginx:latest# 定义健康检查探针livenessProbe:httpGet:  # 指定探针的检测方法为httpGet。path: /index.html  # 指定访问的文件路径信息即可,无需指定IP地址,因为默认就是访问本机,可以理解为127.0.0.1。port: 800  # 指定对容器的哪个端口发送GET请求。  因Nginx  默认是 80端口,如800也就是不成功,会重启pod。如果80,则就正常initialDelaySeconds: 15# 指定每次周期的健康检查的间隔时间。periodSeconds: 5timeoutSeconds: 1successThreshold: 1failureThreshold: 3

相关文章:

  • 绿幕抠图直播软件-蓝松抠图插件--使用相机直播,灯光需要怎么打?
  • 多路由器通过三层交换机互相通讯(单臂路由+静态路由+默认路由版),通过三层交换机让pc端相互通讯
  • 如何分析服务器日志以追踪黑客攻击行为
  • 阿里云RAM账号免密登录Java最佳实践
  • DP 32bit位宽数据扰码实现和仿真
  • springboot整合阿里云百炼DeepSeek,实现sse流式打印
  • Modbus TCP转Profibus DP主站网关:跨协议集成的核心枢纽
  • HTTP/1.1 对头堵塞问题
  • JMeter中设置HTTPS请求
  • MySQL游标(cursor)详解
  • 3 提示词工程指南-提示词编辑 - 持续更新
  • LWIP_MQTT连接ONENET
  • Java 中常用队列用法详解
  • OpenGL shader开发实战学习笔记:第十一章 立方体贴图和天空盒
  • 计算机网络基础概论
  • Linux中docker容器拉取镜像失败解决方案
  • HCIP(OSPF )(2)
  • 第一篇:linux之虚拟环境与centos安装
  • 在ubuntu20.04上安装ros2
  • 【软考-系统架构设计师】OSI体系解析
  • 广西北部湾国际港务集团副总经理潘料庭接受审查调查
  • 甩掉“肥胖刺客”,科学减重指南来了
  • 湖南湘西州副州长刘冬生主动交代问题,接受审查调查
  • 国家主席习近平会见斯洛伐克总理菲佐
  • 习近平会见塞尔维亚总统武契奇
  • 国办印发《关于进一步加强困境儿童福利保障工作的意见》