k8s-健康检查和可用性检查
k8s(健康检查和可用性检查)
·
探针的种类:
- livenessprobe:健康状态检查,周期性检查服务是否存活,检查结果失败,将重启容器
- readinessprobe:可用性检查,周期性检查服务是否可用,不可用将service的endpoints中移除
探针的检测方法:
- exec: 执行一段命令,返回值为0或非0
- httpGet: 检测某个http请求的返回状态、2xx、3xx正常,4xx、5xx错误
- tcpsocket:测试某个端口是否能够连接
livenessprobe的exec使用方式:
vim tomcat-pod-exec.yaml
apiVersion: v1
kind: Pod
metadata:
name: exec
spec:
containers:
- name: nginx
image: 192.168.200.205/project/nginx
ports:
- containerPort: 80
args:
- /bin/sh
- -c
- touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600
livenessProbe:
exec:
command:
- cat
- /tmp/healthy
initialDelaySeconds: 5 :启动5秒之后开始检测
periodSeconds: 5 :每隔5秒
timeoutSecons: 5 :超时5秒
successThreshold: 1 :成功1次
failureThreshold: 3 :失败3次
livenessprobe的httpGet使用方式:
apiVersion: v1
kind: Pod
metadata:
name: httpget
spec:
containers:
- name: nginx
image: 192.168.200.205/project/nginx
ports:
- containerPort: 80
livenessProbe:
httpGet:
path: /index.html
port: 80
initalDelaySeconds: 3
periodSeconds: 3
livenessprobe的tcpSocket使用方式:
apiVersion: v1
kind: Pod
metadata:
name: tcpsocket
spec:
containers:
- name: nginx
image: 192.168.200.205/project/nginx
ports:
- containerPort: 80
args:
- /bin/sh
- -c
- tail -f /etc/hosts
livenessProbe:
tcpsocket:
port: 80
initialDelayseconds: 20
periodSeconds: 3
readiness探针的httpGet的使用:
apiVersion: v1
kind: Replicationcontroller
metadata:
name: readiness
spec:
replicas: 2
selector:
app: readiness
template:
metadata:
labels:
app: readiness
spec:
containers:
- name: readiness
image: 192.168.200.205/project/nginx
ports:
- containerPort: 80
readinessProbe:
httpGet:
path: /index.html
port: 80
initialDelaySeconds: 3
periodSeconds: 3
### 发布 ###
kubectl expose rc readiness --port=80 --target-port=80 --type=NodePort
kubectl describe svc readiness
kubectl get pod | grep readiness
更多推荐
已为社区贡献1条内容
所有评论(0)