kubernetes之探针

文章目录

  • kubernetes之探针
    • 三种探针类型
    • 存活探针
    • 就绪探针
    • 存活与就绪探针的区别

三种探针类型

  • HTTP GET 探针对容器的IP地址执行HTTP GET请求。如果探测器收到响应,并且响应状态码不代表错误(换句话说,如果HTTP响应状态码是 2xx 或 3xx),则认为探测成功。如果服务器返回错误响应状态码或者根本没有响应,那么探测就被认为是失败的,容器将重新启动。
  • TCP 套接字探针尝试与窗口指定端口建立TCP连接。如果连接成功建立,则探测成功。否则,容器重新启动。
  • Exec 探针在容器内执行任意命令,并检查命令的退出状态码。如果状态码是0,则探测成功。所有其他状态码都被认为失败。

存活探针

Kubernetes 可以通过存活探针(liveness probe)检查容器是否还在运行。可以为 pod 中的每个容器单独指定存活探针。
如果探测失败,Kubernetes 将定期执行探针并重新启动容器。

存活探针的附加信息:
Liveness: http-get http://:8080/ delay=0s timeout=1s period=10s #success=1 #failure=3

信息释义:

  • delay:延迟,delay=0s 部分显示在容器启动后立即开始探测。
  • timeout:timeout=1s,容器必须在1秒内进行响应,不然这次探测记作失败。
  • period:period=10s,每10秒探测一次容器。
  • failure:failure=3,探测连续三次失败后重启容器。

定义探针时可以自定义这些附加参数。例如,要设置初始延迟,即initialDelaySeconds。如果没有设置初始延迟,探针将在启动时立即开始探测容器,这通常会导致探测失败,因为应用程序还没准备好开始接收请求。如果失败次数超过阈值,在应用程序能正确响应请求之前,容器就会重启。这里面有个场景会经常遇到:容器正在重启,但使用kubectl describe会看到容器以退出码137或143结束,并看到pod是被迫终止的,还将在pod事件的列表将显示容器因liveness探测失败而终止。这种情况下大部分是因为未能设置初始延迟。

务必记得设置一个初始延迟来说明应用程序的启动时间。

就绪探针

就绪探针(readiness probe)会定期调用,并确定特定的 pod 是否接收客户端请求。当容器的准备就绪探测返回成功时,表示容器已准备好接收请求。显然这个是每个容器特有的东西,Kubernetes 只能检查在容器中运行的应用程序是否响应一个简单的 GET/ 请求,或者它可以响应特定的 URL 路径,该 URL 导致应用程序执行一系列检查以确定它是否准备就绪。因此,这种确切的准备就绪的判定是应用程序开发人员的责任。

为什么会需要就绪探针?
如果没有将就绪探针添加到pod中,它们几乎会立即成为服务端点。如果在服务启动但尚未准备好接收传入连接时,客户端请求将被转发到该pod。那么客户端会看到“连接被拒绝”类型的错误。

就绪探针的附加信息:
Readiness: exec [ls /var/ready] delay=0s timeout=1s period=10s #success=1 #failure=3

命令解释:就绪探针将定期在容器内执行ls /var/ready命令。如果文件存在,则ls命令返回退出码0,否则返回非0的退出码。如果文件存在,则就绪探针将成功,否则它会失败。

这里面的信息释义也存活探针一样。

就绪探针确保客户端只与正常的 pod 交互,并且永远不会知道系统存在问题。

存活与就绪探针的区别

与存活探针不同,如果容器未通过准备检查,则不会被终止或重新启动。这是两种探针之间的重要区别。

存活探针通过杀死异常的容器并用新的正常容器替代它们来保持 pod 正常工作,而就绪探针确保只有准备好处理求的 pod 才可以接收请求。这在容器启动时最为必要。

参考书籍:《Kubernetes in action》

kubernetes之探针相关推荐

  1. Kubernetes 存活探针和就绪探针的最佳实践

    Kubernetes存活探针和就绪探针的最佳实践 [编者的话]Kubernetes提供了两种探针来检查容器的状态,Liveliness和Readiness,根据官方文档,Liveliness探针是为了 ...

  2. Kubernetes 三大探针及探针方式

    一.探针背景介绍 1.编排工具运行时,虽说pod挂掉会在控制器的调度下会重启,出现pod重启的时候,但是pod状态是running,无法真实的反应当时pod健康状态,我们可以通过Kubernetes的 ...

  3. exec su-exec_WildFly Kubernetes exec探针

    exec su-exec 活动性和就绪性探针会告诉Kubernetes,某个Pod是否正在运行并准备进行一些工作. 企业应用程序可以通过HTTP探测应用程序的状态. 如果没有暴露HTTP端点,Kube ...

  4. WildFly Kubernetes exec探针

    活动和就绪探针会告诉Kubernetes吊舱是否正在运行并准备进行一些工作. 企业应用程序可以通过HTTP探测应用程序的状态. 如果没有暴露HTTP端点,Kubernetes也可以通过执行命令进行探测 ...

  5. Kubernetes存活探针和就绪探针的最佳实践

    在Kubernetes中,Pod是Kubernetes创建及管理的最小的可部署的计算单元,一个Pod由一个或者多个容器(Docker,rocket等等)组成,这些容器共享内存,网络以及运行容器的方式. ...

  6. k8s探针检测php,k8s实践11:kubernetes监测探针简单测试

    探针实践 1.两种探针 readiness probe(就绪探针) 监测容器是否就绪?只有pod里的容器就绪,kubelet才会认为pod处于就绪状态. 就绪探针的作用是控制哪些pod可以作为svc的 ...

  7. Kubernetes 探针使用介绍

    Kubernetes 探针使用介绍 一.基本介绍 二.K8s 探针使用介绍 一.基本介绍 当我们在 K8s 上运行应用时,应用是否运行正常这是我们比较关心的,但是如果我们只是通过查看应用的运行状态,这 ...

  8. Kubernetes--k8s---存活探针和就绪探针的最佳实践

    我们在上一篇文章中学习了 Kubernetes–k8s-滚动更新–零停机不停服发布服务 里面涉及到 使用 存活探针和 就绪探针. 但是 这两个探针 具体怎么设置,是不是用同一个 api作为检查点,还是 ...

  9. Kubernetes在智联招聘内网的应用场景

    智联招聘创建于1994年,拥有1.4亿职场人用户,累计合作企业数达400万家.为了更好的支持公司的业务发展,我们于2017年底上线了基于kubernetes的容器云平台.当前我们内网共维护4套Kube ...

最新文章

  1. mysql 环形复制_mysql复制(Replication)
  2. SAP ABAP逻辑数据库
  3. 用ASP.NET Core MVC 和 EF Core 构建Web应用 (一)
  4. Redis分布式锁奥义
  5. 从 0 到 70%:Chrome 上位揭秘!
  6. 图像处理之形态学梯度计算
  7. 《数学之美》一 文字、数字及语言的历史
  8. 购买了ESET NOD32 授权
  9. 我的第一个游戏FoodieThebug完成之后的心得体会 -子龙山人
  10. 查看Android打包时签名文件keystore的MD5值
  11. Web版SSH客戶端Sshwifty
  12. 【转载】设备\Device\Harddisk0\D 有一个不正确的区块
  13. 操作电脑时弹出 UAC被禁用 的解决方法
  14. 在微信朋友圈冲浪必备的心灵免疫力
  15. Customizing Navigation Bar and Status Bar in iOS 7
  16. vue项目中常用的优秀插件库
  17. 通常人们说i5处理器的计算机其中二五是指,计算机cpu?学会看CPU只要五分钟
  18. 心、肝、脾、肺、肾的毒藏在哪,你知道吗?
  19. 2016-HitCon-Pwn-house_of_orange学习(附赠FSOP基础知识)
  20. 8赛道,64匹马找最快的8匹马

热门文章

  1. 机器学习系列--数据预处理
  2. windows下如何查看端口列表以及如何开放指定端口
  3. 男人的快乐不就来了?
  4. Java中的位移操作 、
  5. jQuery根据ID、CLASS、等获取对象
  6. ar vr mr 计算机技术,VR、AR、MR、还有云计算,他们到底是什么?
  7. Altera时序约束
  8. j2ee开发的各种技术
  9. 51单片机I/O端口的结构和工作原理
  10. Android——单元测试