K8S冲浪(1):体验ReadinessProbe
今天让我们一起来体验一下K8S中的探针:ReadinessProbe。本文所用的示例代码,有一部分已放到码云上:k8s-readiness-probe: 学习使用Kubenetes中的ReadinessProbe1)使用JDK 8 包括出jar。2)制件镜像,上传到harbor镜像私服3)制K8S资源的yaml文件4)部署到K8S集群中验证效果。https://gitee.com/wqhn2020
今天让我们一起来体验一下K8S中的探针:ReadinessProbe。
本文所用的示例代码,有一部分已放到码云上:
操作步骤:
第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中移除。
更多推荐
所有评论(0)