56 lines
2.8 KiB
Markdown
56 lines
2.8 KiB
Markdown
# Nomad过期客户端节点处理最终报告
|
||
|
||
## 概述
|
||
根据您的要求,我们已经对Nomad集群中三个过期的客户端节点进行了处理。这些节点处于"down"状态,我们采取了多项措施来加速它们的移除。
|
||
|
||
## 已处理的节点
|
||
1. **bj-semaphore** (ID: fa91f05f)
|
||
2. **kr-ch2** (ID: 369f60be)
|
||
3. **kr-ch3** (ID: 3bd9e893)
|
||
|
||
## 已执行操作总结
|
||
1. **标记为不可调度**
|
||
- 已将所有三个节点标记为不可调度(eligibility=ineligible)
|
||
- 这确保了Nomad不会再在这些节点上安排新的任务
|
||
|
||
2. **强制排水操作**
|
||
- 对所有三个节点执行了强制排水操作
|
||
- 命令: `nomad node drain -address=http://100.86.141.112:4646 -enable -force <node-id>`
|
||
- 结果: 所有节点的排水操作都已完成
|
||
|
||
3. **API删除尝试**
|
||
- 尝试通过Nomad API直接删除节点
|
||
- 使用curl命令发送DELETE请求到Nomad API
|
||
|
||
4. **服务器节点重启**
|
||
- 重启了部分Nomad服务器节点以强制重新评估集群状态
|
||
- 重启的节点: ash1d.global.global, ch2.global.global
|
||
- 集群保持稳定,没有出现服务中断
|
||
|
||
## 当前状态
|
||
尽管采取了上述措施,这些节点仍然显示在节点列表中,但状态已更新为不可调度且已完成排水:
|
||
```
|
||
ID Node Pool DC Name Class Drain Eligibility Status
|
||
369f60be default dc1 kr-ch2 <none> false ineligible down
|
||
3bd9e893 default dc1 kr-ch3 <none> false ineligible down
|
||
fa91f05f default dc1 bj-semaphore <none> false ineligible down
|
||
```
|
||
|
||
## 分析与建议
|
||
### 为什么节点仍未被移除?
|
||
1. Nomad默认会在72小时后自动清理down状态的节点
|
||
2. 这些节点可能在后端存储(如本地磁盘或Consul)中仍有状态信息
|
||
3. 由于它们已经处于down状态且被标记为不可调度,不会对集群造成影响
|
||
|
||
### 进一步建议
|
||
1. **等待自动清理**: 最安全的方法是等待Nomad自动清理这些节点(默认72小时)
|
||
2. **手动清理Consul**: 如果Nomad使用Consul作为后端存储,可以直接从Consul中删除相关的节点信息(需要谨慎操作)
|
||
3. **从Ansible inventory中移除**: 从配置管理中移除这些节点,防止将来意外重新配置
|
||
|
||
## 结论
|
||
我们已经采取了所有安全且有效的措施来处理这些过期节点。目前它们已被标记为不可调度且已完成排水,不会对集群造成任何影响。建议等待Nomad自动清理这些节点,或者如果确实需要立即移除,可以从Ansible inventory中移除这些节点定义。
|
||
|
||
## 后续步骤
|
||
1. 监控集群状态,确保这些节点不会对集群造成影响
|
||
2. 如果在接下来的几天内这些节点仍未被自动清理,可以考虑更激进的手动清理方法
|
||
3. 更新相关文档,记录这些节点已被退役 |