资源限制

Requests 与 Limits

resources: requests: cpu: "250m" # 0.25 核,保证分配量 memory: "256Mi" # 保证内存量 limits: cpu: "1000m" # 最大 1 核(超出被限流) memory: "512Mi" # 超出即 OOMKilled # CPU 单位:1 核 = 1000m # 内存单位:Mi = MiB(推荐),Gi = GiB

QoS 类

QoS 类条件驱逐优先级
Guaranteed所有容器 requests == limits最后驱逐
Burstable至少一个容器 requests != limits居中
BestEffort未设置 requests 或 limits最先驱逐

LimitRange

apiVersion: v1 kind: LimitRange metadata: name: default-limits namespace: production spec: limits: - type: Container default: cpu: "500m" memory: "256Mi" defaultRequest: cpu: "100m" memory: "128Mi" max: cpu: "2" memory: "2Gi"

ResourceQuota

apiVersion: v1 kind: ResourceQuota metadata: name: production-quota namespace: production spec: hard: requests.cpu: "10" requests.memory: "20Gi" limits.cpu: "20" pods: "50" requests.storage: "500Gi" # 查看配额使用情况 kubectl describe resourcequota production-quota -n production

HPA(水平 Pod 自动伸缩)

apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: myapp-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: myapp minReplicas: 2 maxReplicas: 20 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 70 behavior: scaleDown: stabilizationWindowSeconds: 300 # 缩容前等待 5 分钟