第一章:容器故障自动恢复
在现代云原生架构中,容器化应用的高可用性依赖于快速、可靠的故障自动恢复机制。Kubernetes 通过控制器模式实现了这一目标,其中 Pod 的生命周期由 Deployment、StatefulSet 等控制器管理,当底层容器因异常退出或健康检查失败时,系统将自动触发重建流程。健康检查配置
Kubernetes 提供两种健康检查探针:livenessProbe 和 readinessProbe。前者用于判断容器是否存活,若探测失败则触发重启;后者决定容器是否已准备好接收流量。livenessProbe: httpGet: path: /health port: 8080 initialDelaySeconds: 30 periodSeconds: 10 readinessProbe: httpGet: path: /ready port: 8080 initialDelaySeconds: 5 periodSeconds: 5上述配置表示每10秒执行一次存活检测,启动后30秒开始首次检查。若连续失败多次,kubelet 将终止容器并根据重启策略(restartPolicy)拉起新实例。自动恢复流程
当容器崩溃或探针失败时,Kubernetes 执行以下操作:- 检测到 Pod 状态异常,更新事件日志
- 控制器创建新的 Pod 实例以满足期望副本数
- 调度器将新 Pod 分配至健康节点并启动容器
- 服务发现系统动态更新端点列表,流量逐步导入
恢复策略对比
| 策略类型 | 适用场景 | 恢复速度 |
|---|---|---|
| Always | 常规业务容器 | 秒级 |
| OnFailure | 批处理任务 | 任务重启 |