K8S冲浪(1):体验ReadinessProbe

本文通过一个SpringBoot应用实例,详细介绍了如何在Kubernetes(K8S)中设置和使用ReadinessProbe。首先编写了一个提供特定接口的程序,该接口在一定次数后会返回错误状态。接着,将程序打包成JAR,制作Docker镜像并上传至Harbor仓库。随后创建了Deployment和Service的yaml文件,并部署到K8S集群。当ReadinessProbe检测到应用不健康时,K8S会将Pod从Endpoint中移除,展示了ReadinessProbe在集群中的实际作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天让我们一起来体验一下K8S中的探针:ReadinessProbe。

本文所用的示例代码,有一部分已放到码云上:

k8s-readiness-probe: 学习使用Kubenetes中的ReadinessProbe1)使用JDK 8 包括出jar。2)制件镜像,上传到harbor镜像私服3)制K8S资源的yaml文件4)部署到K8S集群中验证效果。https://gitee.com/wqhn2020/k8s-readiness-probe.git

操作步骤:

第1步:编写JAR包程序。

这是一个SpringBoot程序中,通过Controller,提供一个/readinessProbe的访问地址,供kubelet组件访问。这个URL只能被探测20次,之后就会抛异常,即:前20次返回http 200, 第21次开始,返回http 500。

这个工程的JAVA源码可以在我的gitee上找到。

 

第2步:打JAR包。

把上面的工程,打成一个jar包,执行:mvn package,名称:hello-springboot-1.0.0.jar

 第3步:准备打包的材料。

图中jdk 目录,请自行到oracle官网中下载。

第4步:编写一份dockerfile。

这个文件在gitee上没有,只有几行代码,自己写吧。

第5步:制作镜像。

运行下图中绿框中的命令,注意后面的点。

 第5步:把镜像上传到harbor镜像仓库。

运行下图中绿框中的命令。

注意:图中的hb.cn是我用Harbo搭的镜像私服,大家也可以使用Docker Hub。

第6步:编写Deployment/Service的yaml文件。

 第7步:在k8s中应用上述yaml文件,执行:kubectl apply -f 1-all.yaml

 然后,使用kubectl get ep 查看EndPoint的状态。

如果一切正常,EndPoints中有3个Pod的IP和端口。

验证步骤:

第1步:查看其中一个pod的日志,在约100秒后(kubelet组件每5秒调用一轮Pod的/readinessProbe接口,前面20轮是正常的),探针检查不通过。

 

第2步:约146秒后,K8S感知3个pod都是不健康的,把它们的ip从endpoint中移除。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值