java怎么拦截某个对象
362
2022-09-11
k8s部署-36-k8s的健康检查带你了解下
上一篇的问题
上一篇中针对不同的deployment,运行相同的标签,我们最后的建议是不建议那么配置,但是在有些情况中也是可以这么操作的哈,不能说直接定论就不行。
例如:我们在不同版本的时候,就可以按照这种方式来配置哈。
默认的健康检查
k8s默认的健康检查就是简单的判断下你容器中启动的程序是否存在,如果存在,pod就正常运行,但是这种判断很多情况下并不满足我们的实际需求,比如说进程存在但是无法提供服务的情况(服务假死),像这种就无法准确的判断了。那么我们来看下k8s提供的常见健康检查方式都有什么。
cmd命令检测
[root@node1 ~]# cd namespace/[root@node1 namespace]# mkdir healthcheck/[root@node1 namespace]# cd healthcheck/[root@node1 healthcheck]# vim healthcheck-cmd.yaml apiVersion: apps/v1kind: Deploymentmetadata: name: web-demo namespace: devspec: selector: matchLabels: app: web-demo replicas: 1 template: metadata: labels: app: web-demo spec: containers: - name: web-demo image: yunweijia.com/kubernetes/web:v1 ports: - containerPort: 8080 livenessProbe: exec: command: - /bin/sh - -c - ps -ef|grep java|grep -v grep initialDelaySeconds: 10 # 等待时长,即pod容器启动多少秒之后检查 periodSeconds: 10 # 健康检查的间隔时长 failureThreshold: 2 # 失败几次认为完全失败,然后重启pod successThreshold: 1 # 成功几次认为没问题,正常 timeoutSeconds: 5 # 执行命令的超时时间[root@node1 healthcheck]# kubectl apply -f healthcheck-cmd.yaml
这个探针的意义相当于,执行如下命令:
/bin/sh -c ps -ef|grep java|grep -v grep
如果返回执行正常,则表示程序存活,如果失败两次,则重启该pod。
healthcheck]# vim healthcheck-apps/v1kind: Deploymentmetadata: name: web-demo namespace: devspec: selector: matchLabels: app: web-demo replicas: 1 template: metadata: labels: app: web-demo spec: containers: - name: web-demo image: yunweijia.com/kubernetes/web:v1 ports: - containerPort: 8080 livenessProbe: path: /examples/index.html port: 8080 scheme: HTTP initialDelaySeconds: 5 periodSeconds: 5 failureThreshold: 1 successThreshold: 1 timeoutSeconds: 5[root@node1 healthcheck]#
这个探针的意思是相当于执行了如下命令:
curl healthcheck]# vim healthcheck-port.yaml apiVersion: apps/v1kind: Deploymentmetadata: name: web-demo namespace: devspec: selector: matchLabels: app: web-demo replicas: 1 template: metadata: labels: app: web-demo spec: containers: - name: web-demo image: yunweijia.com/kubernetes/web:v1 ports: - containerPort: 8080 livenessProbe: tcpSocket: port: 8080 initialDelaySeconds: 20 periodSeconds: 10 failureThreshold: 2 successThreshold: 1 timeoutSeconds: 5[root@node1 healthcheck]#
这个探针的意思是说检测自己的8080端口是否存活,相当于执行了如下命令:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~