我给你讲清楚自动伸缩全流程:
原理(一句话)
监控指标 → 超了就加机器 → 闲了就减机器
K8s自动伸缩配置
# deployment.yaml – 你的应用
apiVersion: apps/v1
kind: Deployment
metadata:
name: 我的网站
spec:
replicas: 2 # 默认2台机器
template:
spec:
containers:
– name: web
image: nginx
resources:
requests:
cpu: 100m # 每台最少要100m CPU
# hpa.yaml – 自动伸缩规则
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: 自动加减机器
spec:
scaleTargetRef:
name: 我的网站 # 给谁加减
minReplicas: 2 # 最少2台
maxReplicas: 10 # 最多10台
metrics:
– type: Resource
resource:
name: cpu
target:
averageUtilization: 50 # CPU超50%就加机器
实际运行
# 部署
kubectl apply –f deployment.yaml
kubectl apply –f hpa.yaml
# 模拟压力测试
# CPU超50% → 自动从2台变4台
# CPU降到30% → 自动从4台变2台
AWS简单版
// aws-autoscaling.js
const config = {
min: 2, // 最少2台
max: 10, // 最多10台
cpuTarget: 50, // CPU超50%加机器
scaleUp: '加2台', // 加的时候一次加2台
scaleDown: '减1台' // 减的时候一次减1台
}
就这逻辑:设阈值 → 监控 → 自动加减

