概述目标:在工作负载与节点层实现协同伸缩,避免资源不足或过度扩容,保障成本与性能平衡。适用:负载波动明显的服务,结合HPA与集群节点自动扩缩容。核心与实战HPA示例(CPU驱动):apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: api-hpa namespace: prod spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: api minReplicas: 2 maxReplicas: 50 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 60 Cluster Autoscaler关键参数(示例,不同云略有差异):--balance-similar-node-groups=true --skip-nodes-with-local-storage=false --expander=least-waste --max-node-provision-time=10m --scale-down-utilization-threshold=0.5 --scale-down-delay-after-add=10m --scale-down-unneeded-time=10m 节点组标签与优先级:# 为不同节点组打标签以便调度与成本优化 node-group: spot node-group: on-demand 示例Deployment与资源请求:apiVersion: apps/v1 kind: Deployment metadata: name: api namespace: prod spec: replicas: 2 selector: matchLabels: { app: api } template: metadata: labels: { app: api } spec: containers: - name: api image: repo/api:1.0.0 resources: requests: cpu: "200m" memory: "256Mi" limits: cpu: "1" memory: "512Mi" 验证伸缩链路:kubectl get hpa -n prod -w kubectl get nodes -w 验证与监控HPA与CA指标:观察HPA目标利用率与副本变化;CA事件与节点新增/移除。资源请求与调度:合理设置container requests以触发CA;避免requests为0导致CA不生效。成本控制:优先扩容低成本节点组(如spot),在可靠性要求下混合策略。常见误区HPA目标设置不合理导致频繁伸缩;需结合稳定窗口与合适阈值。未配置requests导致CA无法感知容量需求;必须设置requests。CA参数过于激进导致抖动;需设置合理scale-down延迟与阈值。结语通过HPA与Cluster Autoscaler协同,可以在负载波动下稳定控制副本与节点规模,实现可预测性能与成本优化。

发表评论 取消回复