Automatic K8s pod placement to match external service zones
5 months ago
- #Network Optimization
- #Latency Improvement
- #Kubernetes
- Kubernetes缺乏对外部网络拓扑的感知能力,导致Pod调度结果不理想
- 该方案通过轻量级查询服务和变异webhook,根据外部资源位置优化Pod部署
- 查询服务将域名解析为IP地址,并将其映射到网络区域(如AWS可用区)
- 变异webhook(如Kyverno)在Pod创建时注入节点亲和性规则,确保Pod与外部依赖部署在同一区域
- 对于延迟敏感型工作负载,该方案可将性能提升175%至375%
- 该方案具有通用性,适用于任何使用单A记录FQDN的外部资源(本地或云环境)
- 手动设置节点亲和性规则不可靠,因为外部资源位置可能变化(如RDS维护事件)
- 方案实施需具备Kyverno/OPA、通过FQDN通信的工作负载及预定义的子网区域信息
- AWS子网按可用区划分,IP到区域的映射简单;GCP/Azure因使用区域级子网需额外处理逻辑
- 其他备选方案(CI/CD改造、sidecar模式、自定义控制器)经评估均非最优解