K8s部署资源分配调优

Quincy715 +0/-0 0 0 正常 2025-12-24T07:01:19 Kubernetes · DevOps · 资源分配

K8s部署资源分配调优实践

在Kubernetes集群中,合理的资源分配对应用性能和集群稳定性至关重要。本文分享一套可复现的资源调优方法论。

1. 资源请求与限制设置

首先,通过kubectl top命令监控应用实际资源使用情况:

kubectl top pods -n your-namespace

基于监控数据,为Deployment设置合理的requests和limits:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: sample-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: sample-app
  template:
    metadata:
      labels:
        app: sample-app
    spec:
      containers:
      - name: app-container
        image: your-image:latest
        resources:
          requests:
            memory: "512Mi"
            cpu: "250m"
          limits:
            memory: "1Gi"
            cpu: "500m"

2. 水平扩展调优

配置HPA自动扩缩容:

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

3. 监控指标验证

通过Prometheus监控关键指标:

  • CPU使用率(avg): 65%
  • 内存使用率(avg): 45%
  • Pod重启次数: 0
  • 垃圾回收频率: 低

环境信息:

  • Kubernetes版本: v1.24.8
  • 集群规模: 3节点,每节点4核8GB
  • 应用类型: Java Spring Boot应用

此方案可有效避免资源浪费和Pod驱逐问题,建议结合实际业务场景调整参数。

推广
广告位招租

讨论

0/2000