You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EKS中SPOT实例ASG结合ALB出现502错误的求助

Spot节点下线导致ALB转发502的解决思路
  • 利用Spot中断通知提前干预
    部署AWS Node Termination Handler(NTH),配置它监听Spot中断、重平衡通知:

    • 收到通知后立即给节点添加node.kubernetes.io/unschedulable污点,阻止新Pod调度
    • 触发Pod优雅驱逐,同时让NTH在节点上创建标记文件,让Pod的readinessProbe检测到该文件后返回失败,快速标记Pod为NotReady,促使ALB将其从目标组移除
  • 优化Pod就绪探针逻辑
    修改readinessProbe,让它不仅检查容器服务可用性,还要关联节点状态:

    • 通过Downward API注入节点名称到Pod环境变量,在探针脚本中调用kubelet本地接口(http://127.0.0.1:10255/nodes/${NODE_NAME}/status)查询节点Ready状态
    • 若节点已进入NotReady状态,探针直接返回失败,Pod会被立刻标记为未就绪,ALB停止转发请求
  • 调整Kubernetes节点与Pod驱逐参数

    • 修改kubelet配置,缩短node-status-update-frequency(默认10秒),让节点状态变更更快同步到APIServer
    • 调小pod-eviction-timeout(默认5分钟),节点NotReady后更快触发Pod驱逐流程
    • 配置PodDisruptionBudget(PDB),确保驱逐过程中可用Pod数量满足业务最低需求
  • 优化ALB目标组配置

    • 缩短健康检查间隔(如从30秒改为5秒)、降低失败阈值(如从3次改为2次),让ALB更快识别不可用Pod
    • 调小目标组注销延迟(deregistration delay),默认300秒可改为30-60秒(需大于Pod的terminationGracePeriodSeconds,确保剩余请求处理完成),加速ALB从目标组移除失效Pod

内容的提问来源于stack exchange,提问作者Roman Dayneko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 22:50:13