k8s 就绪探针

这篇具有很好参考价值的文章主要介绍了k8s 就绪探针。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

k8s 就绪探针,kubernetes,容器,云原生

【k8s 系列】k8s 学习二十,就绪探针

提起探针,不知兄dei 们是否有印象,之前我们分享过存活探针,分享存活探针是如何确保异常容器自动重启来保持应用程序的正常运行,感兴趣的可以查看文章 k8s 系列k8s 学习十七,存活探针副本机制2

今天我们就单独来分享一下就绪探针

就绪探针

就绪探针也是分为 3 种类型

  • Exec 探针

在执行进程的地方,容器的状态是由进程的退出状态码决定的

  • HTTP GET 探针

向容器中发送 GET 请求,通过响应的 HTTP 状态码判断容器是否准备好了

  • TCP soket 探针

打开一个 TCP 连接到容器的指定端口,如果可以建立连接,那么就认为容器是已经准备好了

看了上述 3 种类型,是不是感觉和存活探针好像也差不多

k8s 就绪探针,kubernetes,容器,云原生

那么我们继续看看就绪探针的细节,存活探针和就绪探针的区别

启动容器的时候,存活探针和就绪探针,都可以给 k8s 配置一个等待时间,当等待时间到了之后,才可以执行检查的操作

存活探针 就绪探针
存活探针检查容器的时候,如果检查未通过,会立马重启 pod 周期性的检查容器,
若检查不通过,证明 pod 没有准备好,那么 该 pod 就会从服务中删除掉
当检查 pod 再次准备就绪了,那么该 pod 又会重新添加到服务中
  • 存活探针是通过杀死异常的容器,使用新的正常的容器来替代他们,最终保证 pod 能够正常工作
  • 就绪探针是确认只有那些准备好处理请求的 pod 才会被加入到服务中来

画一个图来说明一下效果:

k8s 就绪探针,kubernetes,容器,云原生

对于未就绪的 pod ,就绪探针仍然是周期性的探测,若 pod 未就绪,也不会杀掉或者重启 pod,当 pod 被检测到就绪后,该 pod 仍然是可以被加入到服务中的

此处的从服务中删除和加入到服务中,具体体现是在 service 的 endpoints 列表中的 IP 和 PORT 信息

如何在 pod 中加入就绪探针

还记得之前我们我们演示存活探针的例子是在什么资源里面演示的吗?我们是在 RC 和 RS 里面演示,因为 RC / RS 可以动态的扩缩 pod 的数量,演示起来方便

查看我们实验环境的 rs 资源信息

k8s 就绪探针,kubernetes,容器,云原生

编辑 rs 资源清单,计入就绪探针

readinessProbe:
  exec:
    command:
    - ls
    - /var/xmtready

k8s 就绪探针,kubernetes,容器,云原生

删除当前的 pod

学了 RS 和 RC 后我们知道,当修改了 RS 或者 RC 资源后,对于现有的 pod 并不会影响,只有新生成一个 pod 的时候才会用我们最新的容器模板来创建 pod

因此,我们可以先删除掉 pod

kubectl delete po --all

k8s 就绪探针,kubernetes,容器,云原生

查看到效果,生成的每一个 pod 都是未 就绪的,我们可以查看任意 pod ,describe 查看一下详情

k8s 就绪探针,kubernetes,容器,云原生

k8s 就绪探针,kubernetes,容器,云原生

关于 Readiness: exec [ls /var/xmtready] delay=0s timeout=1s period=10s #success=1 #failure=3 一栏,参数和之前的存活探针含义一致,此处就不在赘述了

来关注一下报错信息:

kubelet, minikube  Readiness probe failed: ls: cannot access /var/xmtready: No such file or directory

可以看到失败的原因是就绪探针,探测失败了,没有办法正确访问到 pod 里面的 /var/xmtready 文件或者目录

此处也就是模拟 pod 需要正常处理请求的前置条件,必须要前置条件准备好之后, pod 才是就绪的

人为准备好就绪条件

那么对于现在实验的这个情况,我们可以认为的在 pod 里面加入就绪的前置条件,那就是在 pod 中创建一个 /var/xmtready 文件或者目录即可

kubectl exec kubia-rs-4kvg2 -- touch /var/xmtready

k8s 就绪探针,kubernetes,容器,云原生

此时对于 pod kubia-rs-4kvg2,已经有了就绪的前置条件,那么该 pod 就会被认为是就绪了,就可以正常处理外部的请求了,因为我们在 kubectl get po 的时候就可以看到 READY 是 1/1

就绪探针我们在实际工作中如何使用比较好呢?

此处要说明一下,上述方式是为了演示方便,才使用直接去人为添加探针的前置条件来添加或者删除 pod 到 服务中来

前面的文章也分享到,我们应该通过使用标签的方式来从服务中添加 pod 或者 删除 pod

k8s 就绪探针,kubernetes,容器,云原生

在工作中,我们都可以将就绪探针加入到 pod 中,但是对于何时才算就绪,应用程序达到了什么状态才算是就绪,才算是能够正常处理外部客户端打过来的请求,这个就需要业务实现者根据自身的需求来定义了

以上就是今天分享到的 就绪探针,顺带回顾了一下存活探针的,希望对你有帮助

今天就到这里,学习所得,若有偏差,还请斧正

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

k8s 就绪探针,kubernetes,容器,云原生

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是阿兵云原生,欢迎点赞关注收藏,下次见~
更多的可以查看 零声每晚八点直播:https://ke.qq.com/course/417774文章来源地址https://www.toymoban.com/news/detail-548928.html

到了这里,关于k8s 就绪探针的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • K8s Pod状态与容器探针

    Pod创建过程如上图所示,首先用户向apiserver发送创建pod的请求,apiserver收到用于创建pod请求后,对应会对该用户身份信息进行验证,该用户是否是合法的用户,是否具有创建pod的权限,如果能够通过apiserver的验证,则进行下一步,对用户提交的资源进行准入控制,所谓准入控

    2024年02月07日
    浏览(92)
  • 云上攻防-云原生篇&Kubernetes&K8s安全&API&Kubelet未授权访问&容器执行

    Kubernetes是一个开源的, 用于编排云平台中多个主机上的容器化的应用,目标是让部署容器化的应用能简单并且高效的使用, 提供了应用部署,规划,更新,维护的一种机制 。其核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行着,管理员可

    2024年02月08日
    浏览(87)
  • Linux:kubernetes(k8s)探针LivenessProbe的使用(9)

    他做的事情就是当我检测的一个东西他不在规定的时间内存在的话,我就让他重启,这个检测的目标可以是文件或者端口等 我这个是在上一章的基础之上继续操作,我会保留startupProbe探针让后看一下他俩的执行优先的一个效果 Linux:kubernetes(k8s)探针StartupProbe的使用(8)

    2024年03月15日
    浏览(43)
  • 【云原生 | Kubernetes 系列】K8s 实战 如何给应用注入数据 II 将pod数据传递给容器

    在上一篇文章中,我们学习了针对容器设置启动时要执行的命令和参数、定义相互依赖的环境变量、为容器设置环境变量,三种设置方式,本篇文章,我们将继续学习数据的传递。 有两种方式可以将 Pod 和 Container 字段传递给运行中的容器: 环境变量 卷文件 这两种呈现 Pod

    2024年01月25日
    浏览(141)
  • 飞天使-k8s知识点17-kubernetes实操2-pod探针的使用

    探针的使用 容器探针启动实验1-启动探针的使用-startupprobe Liveness Probes 和 Readiness Probes 演示 若存在started.html 则进行

    2024年02月20日
    浏览(57)
  • 云原生Kubernetes:K8S集群实现容器运行时迁移(docker → containerd) 与 版本升级(v1.23.14 → v1.24.1)

    目录 一、理论 1.K8S集群升级 2.环境 3.升级策略 4.master1节点迁移容器运行时(docker → containerd)  5.master2节点迁移容器运行时(docker → containerd)  6.node1节点容器运行时迁移(docker → containerd)  7.升级集群计划(v1.23.14 → v1.24.1) 8.升级master1节点版本(v1.24.1) 9.升级master2节点版本

    2024年02月03日
    浏览(69)
  • k8s进阶之路-pod探针:容器内的监控机制,检测应用是否存活

    配合Pod重启策略:  RestartPolicy 应用程序是否启动完成: 3.startupProbe启动探针1.16:排他性          如果三个都配置了,会优先启动,会禁用前两个反馈成功后,才会启动以下两个 应用启动成功后: 1.LivenessProbe存活探针--故障自动恢复:         如果容器挂掉了,会检测是

    2024年02月19日
    浏览(55)
  • 云上攻防-云原生篇&;Kubernetes&;K8s安全&;API&;Kubelet未授权访问&;容器执行

    curl -XPOST -k “https://192.168.139.132:10250/run///” -d “cmd=id” 执行的命令是test03容器里的命令,需要进行容器逃逸。 1、攻击8080端口:API Server(Master)未授权访问 旧版本的k8s的API Server默认会开启两个端口:8080和6443。 6443是安全端口,安全端口使用TLS加密;但是8080端口无需认证,

    2024年04月22日
    浏览(77)
  • K8S基本概念+pod生命周期+容器重启策略+Init容器和边车容器+pod探针+postStart和preStop

    Kubernetes是谷歌以Borg为前身,基于谷歌15年生产环境经验的基础上开源的一个项目,Kubernetes致力于提供跨主机集群的自动部署、扩展、高可用以及运行应用程序容器的平台。 kube-APIServer:集群的控制中枢,各个模块之间信息交互都需要经过Kube-APIServer,同时它也是集群管理、资

    2024年04月15日
    浏览(53)
  • 云原生Kubernetes:K8S概述

    目录 一、理论 1.云原生 2.K8S 3.k8s集群架构与组件 4.K8S网络 二、总结 (1)概念 云原生是一种基于容器、微服务和自动化运维的软件开发和部署方法。它可以使应用程序更加高效、可靠和可扩展,适用于各种不同的云平台。 如果要更直接通俗的来解释下上面的概念,云原生更

    2024年02月10日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包