探针有哪些?探测方法有哪些?
Kubernetes中的探针(Probes)用于检查Pod内的容器状态,以确保其正常运行。主要有三种类型的探针,每种探针都有不同的探测方法。下面详细介绍这三种探针及其探测方法。
1. Liveness Probe(活跃探针)
- 目的:判断容器是否仍在运行。如果探针失败,Kubernetes将重启该容器。
- 探测方法:
- HTTP GET:向指定的HTTP端点发送GET请求。
- TCP Socket:尝试连接到指定的端口,检查服务是否可用。
- Exec:在容器内执行指定命令,检查返回值。
2. Readiness Probe(就绪探针)
- 目的:判断容器是否准备好接收流量。如果探针失败,该Pod将不会接收流量,直到探针成功。
- 探测方法:
- HTTP GET:向指定的HTTP端点发送GET请求。
- TCP Socket:尝试连接到指定的端口。
- Exec:在容器内执行指定命令。
3. Startup Probe(启动探针)
- 目的:用于检测容器是否已经启动完成,尤其适用于启动时间较长的应用。如果探针失败,Kubernetes将重启该容器。此探针在容器启动时使用,一旦容器成功启动,Liveness Probe和Readiness Probe将接管。
- 探测方法:
- HTTP GET:向指定的HTTP端点发送GET请求。
- TCP Socket:尝试连接到指定的端口。
- Exec:在容器内执行指定命令。
配置示例
以下是一个包含三种探针的Pod配置示例:
apiVersion: v1
kind: Pod
metadata:
name: example-pod
spec:
containers:
- name: example-container
image: example-image
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
tcpSocket:
port: 8080
initialDelaySeconds: 5
periodSeconds: 5
startupProbe:
exec:
command:
- cat
- /ready
initialDelaySeconds: 15
periodSeconds: 5
总结
Kubernetes的探针通过不同的方法(HTTP GET、TCP Socket、Exec)来检查容器的健康状况。Liveness Probe用于重启失败的容器,Readiness Probe用于控制流量的接收,而Startup Probe则用于判断容器的启动状态。合理配置探针可以有效提高应用的可靠性和可用性。
分类:
运维面试题 / K8S面试题
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器