kubernetes-健康状态检查
1,容器得生命周期:docker container 中只要有一个进程再running,,则容器运行,不会对容器中的应用进行检查,
2,pod的生命周期:pod中所有的主容器running,在pod运行,默认pod不会对容器中的应用检查,
举个例子,web服务,进程为running,但是返回码为502 500 404 等错误代码网页是无法正常访问的。200为正常。
k8s,支持tcp,socket,http 检查
livenessProbe: 存活探针,探测失败,处理方式为反复重启。
readinessProbe: 就绪探针,探测失败,处理方式为将pod从service中的endpoint中移除。不会重启pod.
livenessProbe,实验测试:
kubectl explain pod.spec.containers.livenessProbe.httpGet
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: web-test
name: web-test
spec:
replicas: 2
selector:
matchLabels:
app: web-test
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: web-test
spec:
containers:
- image: nginx
imagePullPolicy: IfNotPresent
name: example
resources:
requests:
cpu: 400m
livenessProbe: #探测选择 探测80端口是否开放
httpGet:
port: 80
可以结合命令,exec,
[root@master01 ~]# kubectl exec -ti web-test-5f58c7c548-jg27b -- /bin/bash
root@web-test-5f58c7c548-jg27b:/# exit
exit
[root@master01 ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
web-test-5f58c7c548-jg27b 0/1 Running 1 (19m ago) 25m
[root@master01 ~]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
web-test-5f58c7c548-jg27b 0/1 Running 1 (19m ago) 25m 10.244.196.148 node01 <none> <none>
[root@master01 ~]# curl 10.244.196.148 如果我把首页删除,但是80端口还是开放的,所以存活探测,可以结合命令啥的tcp socket、等其他。 加就绪探测,一起更为方便和切合实际
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.21.5</center>
</body>
</html>
readinerssProbe
readinessProbe: #探测选择 探测80端口是否开放
httpGet:
port: 80
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
Emporer-Linux!
喜欢就支持一下吧