云原生高可用:从 HPA 到服务网格的落地指南
云原生高可用:从 HPA 到服务网格的落地指南
笨鸟先飞基础稳定性
- 就绪/存活探针:readiness 探针确保流量仅打到健康实例;liveness 防止死锁。
- PDB/优雅终止:配置 PodDisruptionBudget,
terminationGracePeriodSeconds留给服务处理。 - 资源配额:requests/limits 必填,防止节点争抢或 OOM。
弹性伸缩
- HPA:基于 CPU/内存或自定义指标(Prometheus Adapter),示例:
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: { name: web } spec: minReplicas: 2 maxReplicas: 10 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 65 - VPA:推荐仅用于推荐模式,避免与 HPA 冲突;离峰评估再调 requests。
流量治理(服务网格或 Ingress)
- 灰度与金丝雀:基于 Header/权重/用户分组分流;失败可快速回滚。
- 熔断限流重试:Envoy/Istio/Linkerd 提供电路熔断、连接/并发/速率限制和指数退避重试。
- 超时:合理设置上游超时,避免请求悬挂。
可观测性
- 日志:结构化 + Trace ID,集中采集(Loki/EFK)。
- 指标:应用层自定义指标(业务 QPS、失败率);系统层 CPU/内存/网络/磁盘。
- 链路追踪:OpenTelemetry + Jaeger/Tempo;网格自动注入 trace header。
- SLO/告警:定义错误预算,PromQL 告警覆盖可用性、延迟、错误率、P95/99。
有状态与数据
- 对 StatefulSet 使用存储类与备份策略;读写分离/副本优先级明确。
- 数据迁移/扩容前做演练;大表/大分片操作限流或离峰。
发布与回滚
- RollingUpdate 配合最小可用实例数;有状态场景慎用 Recreate。
- 蓝绿/金丝雀:在网格或 Ingress 层实施;保留回滚路由。
- 配置热更新:ConfigMap/Secret 挂载 + Reloader/自研热更新。
安全与多租户
- NetworkPolicy 最小暴露面;Ingress 限制来源;服务间 mTLS。
- RBAC 精简,避免 cluster-admin 滥用;镜像签名与漏洞扫描。
- 多租户隔离:命名空间/资源配额/准入策略(OPA/Gatekeeper/Kyverno)。
操作手册(自查)
- readiness/liveness 全覆盖,PDB 生效
- requests/limits 已设置,HPA 指标正确
- 灰度/熔断/限流/重试 策略已验证
- 日志/指标/追踪 接入,关键告警就绪
- 回滚路径清晰,演练至少跑过一次
- 数据备份与恢复演练通过,安全基线达标


