求Deployment与HPA YAML配置文件的全部资源相关参数清单
Deployment YAML 资源相关核心参数
容器资源请求与限制(CPU/内存核心配置)
这些参数定义容器的CPU和内存资源配额,是调度和资源隔离的关键:
resources.requests.cpu:容器启动时向集群申请的CPU资源,格式支持100m(毫核,即0.1核)、1(1核)等resources.requests.memory:容器启动时向集群申请的内存资源,格式支持256Mi、1Gi等resources.limits.cpu:容器允许使用的最大CPU资源,超出该值会被CPU限流(throttled)resources.limits.memory:容器允许使用的最大内存资源,超出该值会触发OOM Kill(容器被终止)
完整Deployment示例(含资源配置)
apiVersion: apps/v1 kind: Deployment metadata: name: sample-app labels: app: sample-app spec: replicas: 3 selector: matchLabels: app: sample-app template: metadata: labels: app: sample-app spec: containers: - name: sample-container image: nginx:alpine resources: requests: cpu: "100m" memory: "256Mi" limits: cpu: "500m" memory: "1Gi" ports: - containerPort: 80
Horizontal Pod Autoscaler (HPA) YAML 全量核心参数
HPA v2版本(autoscaling/v2)支持更丰富的指标配置,以下是CPU/内存相关及全量核心参数:
基础伸缩配置
spec.scaleTargetRef:必填,指定HPA关联的目标资源(如Deployment),需包含apiVersion、kind、namespec.minReplicas:最小Pod副本数,默认值为1spec.maxReplicas:必填,最大Pod副本数,限制HPA扩容上限spec.targetCPUUtilizationPercentage:旧版CPU使用率阈值(已废弃),推荐使用metrics字段配置
CPU/内存伸缩指标(核心配置)
通过spec.metrics定义伸缩触发条件,支持使用率和绝对值两种类型:
CPU使用率触发
- type: Resource resource: name: cpu target: type: Utilization averageUtilization: 70 # 平均CPU使用率阈值,如70%
内存使用率触发
- type: Resource resource: name: memory target: type: Utilization averageUtilization: 80 # 平均内存使用率阈值,如80%
内存绝对值触发
- type: Resource resource: name: memory target: type: AverageValue averageValue: 512Mi # 每个Pod平均内存使用量阈值
高级伸缩行为控制
spec.behavior:自定义扩容/缩容的速率和稳定策略,避免频繁伸缩scaleUp:扩容规则stabilizationWindowSeconds:扩容前等待的稳定时间(秒),确保指标稳定后再扩容policies:扩容策略集合,可定义单次扩容的Pod数量和时间周期policies: - type: Pods value: 3 # 单次最多扩容3个Pod periodSeconds: 60 # 每60秒检查一次
scaleDown:缩容规则stabilizationWindowSeconds:缩容前等待的稳定时间(秒),避免过早缩容selectPolicy:策略选择方式,如Max取最宽松的缩容规则
完整HPA示例(含CPU/内存指标)
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: sample-app-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: sample-app minReplicas: 2 maxReplicas: 10 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 70 - type: Resource resource: name: memory target: type: Utilization averageUtilization: 80 behavior: scaleUp: stabilizationWindowSeconds: 30 policies: - type: Pods value: 3 periodSeconds: 60 scaleDown: stabilizationWindowSeconds: 600 policies: - type: Pods value: 1 periodSeconds: 60
内容的提问来源于stack exchange,提问作者Hrishikesh Shukla
相关产品推荐
相关产品推荐

