---
title: Kubernetes Topology Spread Constraints(区域分散与验证)
date: 2025-11-26
keywords:
- Topology Spread
- 区域分散
- 可用区
- maxSkew
- DoNotSchedule
description: 使用Topology Spread Constraints在区域与可用区内分散Pod,控制倾斜度与调度策略,提供配置与验证方法以提升可靠性。
categories:
- 文章资讯
- 技术教程
---
概述
Topology Spread约束通过控制各拓扑域内的Pod数量差异(maxSkew)实现分散部署,降低同域故障影响,提升可用性与弹性。
关键实践与参数
- 拓扑键:
topology.kubernetes.io/zone或hostname - 倾斜度:
maxSkew=1控制域间差异 - 调度策略:
whenUnsatisfiable=DoNotSchedule或ScheduleAnyway - 选择器: 与工作负载标签一致
示例/配置/实现
apiVersion: apps/v1
kind: Deployment
metadata: { name: web }
spec:
replicas: 6
selector: { matchLabels: { app: web } }
template:
metadata: { labels: { app: web } }
spec:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: DoNotSchedule
labelSelector: { matchLabels: { app: web } }
验证
- 分散效果: 各可用区Pod数量差异不超过设定值
- 调度行为: 资源不足时不调度或按策略调度
- 可用性: 单区故障时服务仍可用
- 观测: 记录调度事件与倾斜度
注意事项
- 需正确标注节点拓扑标签
- 与PDB与HPA协同
- 在扩缩容与滚更期间验证分散
- 定期复盘拓扑与分散目标

发表评论 取消回复