首页 > 其他分享 >深入Pod —— 探针

深入Pod —— 探针

时间:2023-10-12 12:44:08浏览次数:37  
标签:容器 启动 重启 配置 探针 深入 Pod

一、探针

容器内应用的监测机制,根据不同的探针来判断容器应用当前的状态

一)类型

1、StartupProbe

k8s 1.16 版本新增的探针,用于判断应用程序是否已经启动了。
当配置了 startupProbe 后,会先禁用其他探针,直到 startupProbe 成功后,其他探针才会继续。
作用:由于有时候不能准确预估应用一定是多长时间启动成功,因此配置另外两种方式不方便配置初始化时长来检测,而配置了 statupProbe 后,只有在应用启动成功了,才会执行另外两种探针,可以更加方便的结合使用另外两种探针使用。

startupProbe:
  httpGet:
    path: /api/startup
    port: 80

2、LivenessProbe

用于探测容器中的应用是否运行,如果探测失败,kubelet 会根据配置的重启策略进行重启,若没有配置,默认就认为容器启动成功,不会执行重启策略。

例如:Java 内存溢出后,容器挂掉了,但Pod还在,它会要基于 yaml 中重启策略 restartPolicy 来进行重启。但是它如何知道容器挂掉了呢?这就是基于探针技术。

livenessProbe:
  failureThreshold: 5
  httpGet:
    path: /health
    port: 8080
    scheme: HTTP
  initialDelaySeconds: 60
  periodSeconds: 10
  successThreshold: 1
  timeoutSeconds: 5

3、ReadinessProbe

用于探测容器内的程序是否健康,它的返回值如果返回 success,那么就认为该容器已经完全启动,并且该容器是可以接收外部流量的。

例如:在启动服务后,还要进行初始化、加载数据到内存或进行一些数据处理,在这些处理完之前,不要让这个容器启动成功,且不能接受外部流量请求,这个就是利用探针技术

readinessProbe:
  failureThreshold: 3 # 错误次数
  httpGet:
    path: /ready
    port: 8181
    scheme: HTTP
  periodSeconds: 10 # 间隔时间
  successThreshold: 1
  timeoutSeconds: 1

二)探测方式

ExecAction
TCPSocketAction
HTTPGetAction

三)参数配置

生命周期
Pod 退出流程
删除操作
Endpoint 删除 pod 的 ip 地址
Pod 变成 Terminating 状态
执行 preStop 的指令
PreStop 的应用
注册中心下线
数据清理
数据销毁

标签:容器,启动,重启,配置,探针,深入,Pod
From: https://www.cnblogs.com/yifanSJ/p/17759198.html

相关文章

  • k8s pod command使用
    简单说明我们启pod服务时,有时需要在服务启动前做一些初始化的工作,这里可能会涉及多个shell命令以及判断执行,这里可以参考下面的步骤进行:command:["/bin/bash"]args:-"-c"-|set-exif[!-d"/opt/test"];thenmkdir/opt/testcp-r/opt......
  • 深入浅出JavaScript闭包
    什么是JS闭包?JS闭包是一个难点也是JS的特色,是JS的高级特性。首先我们知道JS运行函数的时候会在内存中开辟一个存储空间,会把函数体内的代码当作字符串一摸一样的放在这个空间中,把这个空间地址赋值给函数名(变量名),当我们调用函数的时候会根据地址找到这个储存空间,然后执行储存空......
  • 软件测试|深入理解SQL RIGHT JOIN:语法、用法及示例解析
    引言在SQL中,JOIN是一种重要的操作,用于将两个或多个表中的数据关联在一起。SQL提供了多种JOIN类型,其中之一是RIGHTJOIN。RIGHTJOIN用于从右表中选择所有记录,并将其与左表中匹配的记录组合在一起。本文将深入探讨SQLRIGHTJOIN的语法、用法以及通过实例解析来说明其作用。RIGH......
  • 软件测试|深入理解SQL FULL JOIN:语法、用法及示例解析
    简介在SQL中,JOIN是一个强大的操作,它允许将两个或多个表中的数据进行关联。SQL提供了多种JOIN类型,其中之一是FULLJOIN。FULLJOIN允许从左表和右表中选择所有记录,并将它们组合在一起。本文将深入探讨SQLFULLJOIN的语法、用法,并通过实例解析来说明其作用。FULLJOIN基本语法......
  • k8s-探针
    在Kubernetes中,有三种类型的探针(Probes)用于检查容器的健康状况和确定是否应该将请求路由到容器。这些探针可以配置在Pod的规范中。 存活探针(LivenessProbe)livenessProbe:httpGet:path:/healthport:8080initialDelaySeconds:15periodSeconds:10......
  • 深入学习JVM04 线程与变量
    18JVM中的变量在food背后,有一个与它对应的klass对象,它记录了food的类型信息,就像是有一个标签写着food的品类和特点。每个klass对象维护着一个虚函数表,记录了类中所有的虚函数以及对应的指针。当food调用一个方法时,JVM根据它的实际类型找到它的klass对象,然后在虚函......
  • 深入浅出MySQL MRR(Multi-Range Read)
    本文已收录至GitHub,推荐阅读......
  • 03-Shell环境变量深入
    1.自定义系统环境变量1.1全局配置文件/etc/profile应用场景当前用户进入Shell环境初始化的时候会加载全局配置文件/etc/profile里面的环境变量,供给所有Shell程序使用以后只要是所有Shell程序或命令使用的变量,就可以定义在这个文件中1.2案例/etc/profile定义存储自定义......
  • 深入理解js中的yield
    https://blog.csdn.net/qq_43050077/article/details/120448496https://www.jianshu.com/p/ebd4d4b43cf7......
  • k8s-pod
    deployment模版apiVersion:apps/v1#指定api版本,此值必须在kubectlapi-versions中。业务场景一般首选”apps/v1“kind:Deployment#指定创建资源的角色/类型metadata:#资源的元数据/属性name:demo#资源的名字,在同一个namespace......