---

标题: Kubernetes 生产落地最佳实践

关键字:

  • Kubernetes
  • HPA
  • Requests
  • Limits
  • 滚动升级
  • 探针
  • PDB
  • QoS

描述: 面向生产环境的 Kubernetes 资源配置、弹性伸缩、升级发布与稳定性保障的关键实践与示例。

categories:

  • 文章资讯
  • 技术教程

---

概述

本文总结生产环境运行 Kubernetes 的关键落地点,包括资源配额、弹性伸缩、健康探针、滚动升级与中断预算,附带可直接应用的配置示例。

资源请求与限制(已验证)

  • requests 表示调度与资源预留;limits 表示硬上限。应满足 requests ≤ limits
  • QoS 类别:
  • Guaranteed:所有容器均设置且 requests = limits
  • Burstable:设置了 requests 但不满足 Guaranteed
  • BestEffort:未设置 requestslimits

健康探针与就绪

  • 配置 livenessProbereadinessProbe,确保故障自愈与流量只进入就绪副本。
readinessProbe:
  httpGet:
    path: /healthz
    port: 8080
  initialDelaySeconds: 5
  periodSeconds: 10
livenessProbe:
  httpGet:
    path: /livez
    port: 8080
  initialDelaySeconds: 15
  periodSeconds: 20

弹性伸缩(HPA 示例)

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: myapp-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: myapp
  minReplicas: 2
  maxReplicas: 10
  metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 60

确保安装 Metrics Server 以提供资源度量。

发布与升级

  • 使用滚动更新,观察副本就绪:
kubectl rollout status deployment/myapp
  • 设置 maxUnavailablemaxSurge 控制发布风险;必要时使用 canaryblue/green

中断预算与调度

  • 配置 PodDisruptionBudget(PDB)保障最小可用副本数:
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: myapp-pdb
spec:
  minAvailable: 2
  selector:
    matchLabels:
      app: myapp
  • 使用亲和/反亲和与拓扑约束实现跨节点高可用;关键工作负载可设置优先级与抢占策略。

监控与告警

  • 采集应用与集群指标(Prometheus/Grafana),配置关键 SLO 告警(错误率、延迟、可用副本)。
  • 捕获 OOMKill 与重启原因,调整资源曲线与 GC 策略。

注意事项

  • 资源设置以真实负载为基线,避免过度保守导致资源浪费或过度激进引发稳定性问题。
  • 变更采用分批与回滚策略,保留上一个稳定版本的镜像与配置。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部