我正在使用以下环境:带有 Docker CE 的 Debian 9:
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
# docker --version
Docker version 17.09.0-ce, build afdb6d4
#
docker node ls
:
# docker node ls | grep elk12
2keku0oj8zhsy6uyvyl4gd4d7 elk12 Down Active Reachable
tbwbpkl5qys4wwxbisga3y2oe * elk12 Ready Active Reachable
# docker node inspect elk12
[]
Status: Error response from daemon: node elk12 is ambiguous (2 matches found), Code: 1
#
我不能使用docker node rm elk12
,因为我根据上面的输出我有 2。
如何继续从列表中删除“关闭”节点,最好不影响工作集群)。我不相信我什至不再拥有那个节点(可能是很久以前的一些剩菜)......
请指教。
更新:
# docker node rm 2keku0oj8zhsy6uyvyl4gd4d7
Error response from daemon: rpc error: code = FailedPrecondition desc = node 2keku0oj8zhsy6uyvyl4gd4d7 is a cluster manager and is a member of the raft cluster. It must be demoted to worker before removal
# docker node demote 2keku0oj8zhsy6uyvyl4gd4d7
Manager 2keku0oj8zhsy6uyvyl4gd4d7 demoted in the swarm.
# docker node rm 2keku0oj8zhsy6uyvyl4gd4d7
2keku0oj8zhsy6uyvyl4gd4d7
# docker node ls | grep elk12
tbwbpkl5qys4wwxbisga3y2oe elk12 Ready Active Reachable
#
此处解释了具有相同名称但 ID 不同的重复节点所遇到的问题,可能是一个离开集群并重新加入它的节点,管理器重新启动......
如果您想删除重复的节点并摆脱那个模棱两可的警告,您可以使用哈希 ID 而不是名称:
如果你想删除另一个名为 elk12 的节点,该节点似乎是一个管理器,所以你应该谨慎行事,因为如果没有足够的管理器来达成共识,你可能会遇到麻烦。如果您认为删除该管理器节点是安全的,因为您有足够的节点在集群中作为管理器运行,您应该执行以下操作: