云原生高可用:从 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 指标正确
  • 灰度/熔断/限流/重试 策略已验证
  • 日志/指标/追踪 接入,关键告警就绪
  • 回滚路径清晰,演练至少跑过一次
  • 数据备份与恢复演练通过,安全基线达标