9 深入kubernetes服务调度与编排91 健康检查高可用的守护者

4-health-check

没有健康检查

kubectl get pods -n dev -o wide
kubectl exec -it web-demo-c456d8ccf-rzrwc -n dev sh   # # 进入容器查看运行的java进程,端口

  ps -ef      
  netstat -ntlp   
   kill PID     # 杀掉进程之后,退出,重新登录之后又启动了。

kubectl get pods -n dev    #可以看到RESTARTS  重启了一次

有健康检查 

health-check 项目

1、基于CMD的

kubectl apply -f web-dev-cmd.yaml 

# 查看多了Liveness:      
kubectl describe pods -n dev web-demo-547b6d9d77-f7qzm 

 进入容器

kubectl exec -it web-demo-547b6d9d77-f7qzm -n dev sh 

结果:

/ #  ps -ef|grep java|grep -v grep
    1 root      0:23 java -jar /appweb/springboot-web-demo.jar
/ # echo $?
0
/ #  ps -ef|grep javaaaaa|grep -v grep
/ # echo $?
1
/ # kill 1

在查看

kubectl get pods -n dev    #  RESTARTS 重启1

kubectl describe pods -n dev web-demo-547b6d9d77-f7qzm     # 查看Events 被杀掉了

2、基于http的

kubectl apply -f web-dev-http.yaml
kubectl get pods -n dev

3、基于tcp的

服务重启一半的时候,就会被service发现了,就会被挂在负载均衡上面,显然是不合理的

kubectl apply -f web-dev-tcp.yaml 
kubectl get pods -n dev
kubectl get deploy -n dev    # readinessProbe的 AVAILABEL 1,非 为0

如果容器服务。restart起不来,livenessProbe 去掉

end...

原文地址:https://www.cnblogs.com/edeny/p/14565399.html