运行有状态应用
有状态服务需要稳定身份、存储与有序启动。
有状态应用(数据库、消息队列)通常需要稳定的网络身份与持久存储。
关键要求
- 稳定身份:Pod 名称可预测
- 持久存储:数据不随 Pod 重建丢失
- 有序启动/停止:避免副本同时重启
常见组合
- StatefulSet + PVC
- Headless Service 提供稳定 DNS
- 定期备份与恢复流程
实践建议
- 先跑单实例,再扩到多实例
- 做好
readinessProbe,避免流量打到未就绪副本
实操要点
- 先做快速盘点:
kubectl get nodes、kubectl get pods -A、kubectl get events -A。 - 对比“期望状态”和“实际状态”,
kubectl describe往往能解释漂移或失败原因。 - 名称、Label、Selector 要一致,避免 Service 或控制器找不到 Pod。
快速检查清单
- 资源定义与业务意图一致。
- Namespace、权限、镜像与环境匹配。
- 上线前具备健康探针与可观测日志。