kube-burner 集群压测
kube-burner 用于 Kubernetes 规模和性能测试,批量创建命名空间、Pod、Deployment、Job 和自定义资源,采集 API 延迟、调度延迟、启动时间和资源使用。它适合容量规划、升级验证和 CNI/CSI 压测。
核心概念:job、配置 YAML、measurement、metrics profile、alert profile 和 benchmark。
安装:
go install github.com/kube-burner/kube-burner/v2/cmd/kube-burner@latest
kube-burner version
运行内置测试:
kube-burner init -c examples/kube-burner.yml
配置示例:
cat > kube-burner.yml <<'EOF'
jobs:
- name: pod-density
jobType: create
jobIterations: 10
qps: 20
burst: 20
namespace: perf
objects:
- kind: Pod
apiVersion: v1
metadata:
name: pod-{{.Iteration}}
spec:
containers:
- name: app
image: registry.k8s.io/pause:3.9
resources:
requests:
cpu: 10m
memory: 32Mi
EOF
kube-burner init -c kube-burner.yml
采集指标:
kube-burner init -c kube-burner.yml \
--metrics-profile metrics.yml \
--alert-profile alerts.yml
清理资源:
kube-burner destroy -c kube-burner.yml
qps 和 burst 过高会打满 API Server,先小规模验证。kube-burner destroy 只删除配置中定义的资源,残留资源要手工清理。kube-burner init — 执行测试kube-burner destroy — 清理资源kubectl get pods -A — 观察负载kubectl top nodes — 查看节点资源promtool — 校验指标配置