2) ReadinessProbe探针
同样是可以根据用户自定义规则来判断pod是否健康 , 如果探测失败 , 控制器会将此pod从对应service的endpoint列表中移除 , 从此不再将任何请求调度到此Pod上 , 直到下次探测成功 。
3) startupProbe探针
启动检查机制 , 应用一些启动缓慢的业务 , 避免业务长时间启动而被上面两类探针kill掉 , 这个问题也可以换另一种方式解决 , 就是定义上面两类探针机制时 , 初始化时间定义的长一些即可 。
每种探测方法能支持以下几个相同的检查参数 , 用于设置控制检查时间:
- initialDelaySeconds:初始第一次探测间隔 , 用于应用启动的时间 , 防止应用还没启动而健康检查失败
- periodSeconds:检查间隔 , 多久执行probe检查 , 默认为10s;
- timeoutSeconds:检查超时时长 , 探测应用timeout后为失败;
- successThreshold:成功探测阈值 , 表示探测多少次为健康正常 , 默认探测1次 。
1)Exec: 通过执行命令的方式来检查服务是否正常 , 比如使用cat命令查看pod中的某个重要配置文件是否存在 , 若存在 , 则表示pod健康 。 反之异常 。
Exec探测方式的yaml文件语法如下:
spec:
containers:
- name: liveness
image: k8s.gcr.io/busybox
args:
- /bin/sh
- -c
- touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600
livenessProbe: #选择livenessProbe的探测机制
exec: #执行以下命令
command:
- cat
- /tmp/healthy
initialDelaySeconds: 5 #在容器运行五秒后开始探测
periodSeconds: 5 #每次探测的时间间隔为5秒
在上面的配置文件中 , 探测机制为在容器运行5秒后 , 每隔五秒探测一次 , 如果cat命令返回的值为“0” , 则表示健康 , 如果为非0 , 则表示异常 。
2)Httpget: 通过发送http/htps请求检查服务是否正常 , 返回的状态码为200-399则表示容器健康(注http get类似于命令curl -I) 。
Httpget探测方式的yaml文件语法如下:
spec:
containers:
- name: liveness
image: k8s.gcr.io/liveness
livenessProbe: #采用livenessProbe机制探测
httpGet: #采用httpget的方式
scheme:HTTP #指定协议 , 也支持https
path: /healthz #检测是否可以访问到网页根目录下的healthz网页文件
相关经验推荐
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 删除|苹果要求App必须内置删除账号功能!6月30日是最后期限,网友:必须支持
- 微信|微信被好友单向删除?三种方法教你检测,最后一种最实用!
- 华为|微信“+”号隐藏功能,摁一下,就可以快速知道谁把你删除了
- 删除|人教Pad定价超四千元,由学校统一采购,官网删除价格,配置停留在七年前
- 删除|别再清理手机垃圾了,只需删除这4个文件夹,手机用多久都不会卡
- iPod|iPod 彻底被结束,页面也被悉数删除丨iPhone14 Max 被曝延迟生产
- 删除|红米K50大幅度降价,登顶销量榜首!卢伟冰这招绝了
- 微信|微信这个地方不删除,陌生人就能随意登录你微信,手把手教您删除
- 删除|3060高刷游戏本该选谁?这三款包你满意
- 删除|绿厂618购机活动有多狠?最高直降1500,数十款产品给足惊喜