概览与核心价值自动伸缩通过按需分配计算资源提升稳定性与成本效率。HPA 负责副本数伸缩,VPA 负责资源规格调优,KEDA 负责事件驱动伸缩;三者组合可覆盖绝大多数生产负载场景。核心概念与技术架构HPA:基于 `autoscaling/v2` 的指标驱动副本数伸缩,支持多指标与自定义指标。VPA:自动推荐或调整容器 `requests/limits`,提升调度与利用率。KEDA:对接外部事件源与指标系统,实现细粒度与异步场景伸缩。实战与示例apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: web
namespace: default
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: web
minReplicas: 2
maxReplicas: 20
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 60
apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
name: web-vpa
spec:
targetRef:
apiVersion: apps/v1
kind: Deployment
name: web
updatePolicy:
updateMode: Auto
resourcePolicy:
containerPolicies:
- containerName: web
minAllowed:
cpu: 200m
memory: 256Mi
maxAllowed:
cpu: 2000m
memory: 2Gi
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: web-keda
spec:
scaleTargetRef:
name: web
minReplicaCount: 2
maxReplicaCount: 20
triggers:
- type: prometheus
metadata:
serverAddress: http://prometheus-server.monitoring.svc.cluster.local
metricName: http_requests_total
threshold: "100"
query: sum(rate(http_requests_total[1m]))
验证与度量使用 `kubectl get hpa`、`kubectl top pods` 与负载回放验证阈值与伸缩速率。对比成本与响应时间指标,评估不同策略组合的收益与风险。最佳实践与工程建议指标统一:以 SLO 为核心统一伸缩阈值,避免局部最优。资源治理:结合 VPA 与调度策略,减少资源碎片与不足请求。事件驱动:为异步工作负载采用 KEDA,提升峰值流量下的稳定性。版本与来源Kubernetes Releases:https://kubernetes.io/releases/EKS 版本生命周期与支持: https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html

发表评论 取消回复