Mesos-Marathon集群中已注销实例显示不可达,如何清除?
Mesos-Marathon集群移除实例后仍显示不可达节点的解决方法
问题描述
使用Mesos-Marathon集群部署服务,集群初始有40个已注册的Mesos实例。停止对应EC2实例并在Marathon中减少DNS实例数量后,集群仍显示1个实例处于不可达状态。相关截图:
预期结果:调整Marathon实例数量后,集群不再显示不可达实例。
排查修复步骤
1. 清理Mesos Master中残留的Slave节点记录
Mesos Master会保留已离线节点的注册信息,需手动移除:
- 登录Mesos Master节点,执行命令查看所有节点状态:
curl http://<mesos-master-ip>:5050/slaves - 从返回结果中定位状态为
UNREACHABLE的节点,复制其id值 - 执行命令移除该节点:
curl -X POST http://<mesos-master-ip>:5050/master/remove-slave?slave_id=<目标节点ID>
2. 确认Marathon实例配置同步生效
- 验证应用实例数是否正确设置为39:
curl http://<marathon-ip>:8080/v2/apps/<你的DNS应用名称> - 若返回的
instances字段值不符合预期,重新提交配置:curl -X PUT -H "Content-Type: application/json" http://<marathon-ip>:8080/v2/apps/<你的DNS应用名称> -d '{"instances": 39}'
3. 调整Mesos故障检测参数(可选)
Mesos默认故障检测有延迟,可缩短检测周期(需重启Mesos Master):
- 修改Mesos Master配置文件(如
/etc/mesos-master/parameters),添加:--agent_ping_timeout=10s --agent_reregister_timeout=20s - 重启Mesos Master服务:
systemctl restart mesos-master
4. 核实EC2实例状态与DNS记录
- 登录AWS控制台,确认目标EC2实例已完全终止(状态为
Terminated) - 检查集群DNS配置,确保该节点IP已从解析记录中移除
内容的提问来源于stack exchange,提问作者Sandeep Grover
相关产品推荐
相关产品推荐

