Kubernetes 提供了探针(Probe)对容器的衰弱性进行检测。实际上咱们不仅仅要对容器进行衰弱检测,还要对容器内安排的利用进行衰弱性检测。
Probe 有以下两种类型:
- livenessProbe:存活探针,如果查看失败,将杀死容器,依据 Pod 的 restartPolicy 重启策略操作。
- readinessProbe:就绪探针,如果查看失败,Kubernetes 会把 Pod 从 service endpoints 中剔除。
Probe 反对以下三种查看办法:
- httpGet:发送 HTTP 申请,返回 200-400 范畴状态码为胜利。
- exec:执行 Shell 命令返回状态码是 0 为胜利。
- tcpSocket:发动 TCP Socket 建设胜利。
上面咱们给出每种查看办法的配置:
- exec 查看
apiVersion: v1
kind: Pod
metadata:
labels:
test: liveness
name: liveness-exec
spec:
containers:
- name: liveness
image: busybox
args:
- /bin/sh
- -c
- touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600
livenessProbe: ## livenessProbe 查看类型
exec: ##exec 查看办法
command:
- cat
- /tmp/healthy
initialDelaySeconds: 5 ## 容器启动 5 秒后才做查看
periodSeconds: 5 ## 每隔 5 秒查看一次
- httpGet 查看
apiVersion: v1
kind: Pod
metadata:
labels:
test: liveness
name: liveness-http
spec:
containers:
- name: liveness
image: k8s.gcr.io/liveness
args:
- /server
livenessProbe: ## livenessProbe 类型
httpGet: ## httpGet 查看办法
path: /healthz
port: 8080
httpHeaders:
- name: Custom-Header
value: Awesome
initialDelaySeconds: 3
periodSeconds: 3
- tcpSocket 查看
apiVersion: v1
kind: Pod
metadata:
name: goproxy
labels:
app: goproxy
spec:
containers:
- name: goproxy
image: k8s.gcr.io/goproxy:0.1
ports:
- containerPort: 8080
readinessProbe: ##readinessProbe 查看类型
tcpSocket: ##tcpSocket 查看办法
port: 8080
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe: ##livenessProbe 查看类型
tcpSocket: ##tcpSocket 查看办法
port: 8080
initialDelaySeconds: 15
periodSeconds: 20