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网页文件
- 微信这个功能容易被骗子绑定和利用,教你快速查清并删除
- 删除|Apple watch苹果手表如何更换电池?看完你是不是也学会了呢?
- 删除|被好友悄悄删除?微信右上角这个功能很方便,“黑名单”一清二楚
- 删除|微信朋友圈烦人的内容不想看?教你三招,快速删除!方法很简单
- 小鹏汽车回应盗用图片宣传:素材是供应商提供的,已删除
- 手机浏览“不良网站”,删除历史记录就有用吗?过来人给出答案
- 删除|台积电迎来3个“噩耗”,还能逆转局势吗?
- 软件|Win11要变流氓系统?新版本预装超多软件,还好删除很简单
- 微信被好友单向删除?三种方法教你检测,最后一种最实用!
- 微信“+”号隐藏功能,摁一下,就可以快速知道谁把你删除了