Kubernetes 自动伸缩(HPA/VPA、资源请求与目标利用率)实战概述自动伸缩是保障服务稳定与成本控制的关键能力。HPA 基于指标水平扩缩,VPA 动态调整 Pod 资源请求与限制。关键实践与参数HPA:`spec.metrics` 支持 CPU/内存利用率与自定义指标(Prometheus Adapter)。常用目标:`targetAverageUtilization: 60–80`(CPU),结合请求值计算。VPA:`updatePolicy` 设置为 `Auto` 或 `Initial`,避免频繁重启影响可用性。使用推荐模式收集历史负载后再启用自动更新。资源请求/限制:请求(`requests`)决定调度与 HPA 参考值;限制(`limits`)约束上限。配置示例(HPA v2)apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: web-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: web minReplicas: 2 maxReplicas: 20 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 70 验证方法压测生成负载曲线,观察副本数变化与响应时间。Prometheus/Grafana 查看 CPU/内存利用率与扩缩事件。结合事件日志确认伸缩冷却时间与失败原因。注意事项指标采集与延迟会影响决策;设置合理的稳定窗口与冷却时间。VPA 与 HPA 对同一资源同时作用可能冲突;谨慎联合使用。资源请求需依据真实负载测算,避免过高导致调度失败或过低导致限流。

发表评论 取消回复