AWS EKS + Karpenter Spot实例优化实践指南
背景分析
在生产环境中,我们经常发现EKS集群没有充分利用Spot实例的成本优势。通过分析一个典型的AI/ML生产集群,发现以下现状:
- 7个节点全部使用按需实例
- 包含GPU节点(g4dn系列)和CPU节点(c6a/m6i系列)
- 使用Karpenter进行节点自动扩缩容
- 配置支持Spot但实际未使用
为什么没有使用Spot实例
1. 默认配置保守
# 检查当前节点类型 - 查看集群中节点的实例类型和生命周期
kubectl get nodes -o json | jq -r '.items[] | {name: .metadata.name, instanceType: .metadata.labels["node.kubernetes.io/instance-type"], lifecycle: .metadata.labels["eks.amazonaws.com/capacityType"]
}'
2. Karpenter调度策略
- 默认优先选择按需实例保证稳定性