这篇文章主要介绍了Kubernetes的探针有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
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
感谢你能够认真阅读完这篇文章,希望小编分享的“Kubernetes的探针有什么用”这篇文章对大家有帮助,同时也希望大家多多支持云搜网,关注云搜网行业资讯频道,更多相关知识等着你来学习!