部署--前端服务健康检查
fuzuxian 9/7/2021 Kubernetes
# pod 健康检查--探针
livenessProbe(存活探针):容器是否正在运行,如果存活探测失败,则 kubelet 会杀死容器,并进行重启机制;
readinessProbe(就绪探针):判断容器是否准备好接受请求,如果就绪探测失败,端点控制器将从与 Pod 匹配的所有 Service 的端点中删除该 Pod 的 IP 地址
Probe三种检查方法
- exec:在容器内执行 指定一段命令。如果命令退出时 返回码为 0 则认为诊断成功。
- tcpSocket:对指定端口上的容器的IP地址 进行TCP检查(三次握手)。如果端口打开,TCP 连接成功,则诊断被认为是成功的。
- httpGet:对指定的端口和路径上的容器的 IP 地址执行 HTTP Get 请求。如果响应的状态码在 200~400 之间,则诊断被认为是成功的。监测的是 路径上的文件在不在。
# yaml 文件
readinessProbe:
httpGet:
path: /healthcheck
port: 80
initialDelaySeconds: 10
periodSeconds: 20
livenessProbe:
httpGet:
path: /healthcheck
port: 80
initialDelaySeconds: 10
periodSeconds: 20
# default.conf
location ~ ^/healthcheck {
access_log /var/log/nginx/health_access.log main;
default_type text/html;
return 200 'ok!';
}
# vue路由配置
{
path: '/healthcheck',
component: resolve => require(['../views/404.vue'], resolve)
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
在vue项目中,路由增加/healthcheck路径,随便指向一个页面;
nginx配置文件--路径如果包含/healthcheck,则返回状态码200;
k8s的yaml文件--存活探针和就绪探针,让其执行 HTTP Get请求/healthcheck。