我正在使用以下环境:Debian 9与Docker CE:
# 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。
如何从列表中删除“down”节点,最好不影响工作集群)。 我不相信我已经有了这个节点(可能是很久以前的一些剩菜)…
请指教。
更新:
# 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不同的问题在这里解释,可能是一个节点,离开了群体,并重新join它,经理重新启动…
如果你想删除重复的节点,并摆脱这种模糊的警告,你可以使用哈希ID而不是名称:
docker node rm 2keku0oj8zhsy6uyvyl4gd4d7
如果你想删除名为elk12的另一个节点,看起来这个节点是一个pipe理者,所以你应该谨慎行事,因为如果没有足够的pipe理者达成共识 ,你可能会遇到麻烦。 如果您觉得可以安全地删除pipe理器节点,因为您的群集中有足够的节点作为pipe理器运行,则应执行以下操作: