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驱逐问题,建议结合实际业务场景调整参数。

讨论