我想逐个重新启动我的CoreOS集群节点,因为我读了很多不好的事情,一次重启所有节点都不好(等等,ceph无法保持法定人数等等)正确的做法是什么这个,除了手动进入每台机器并发出reboot
命令?
是否有一种通用的方法来重新启动集群中的n个节点,等待它们启动,然后是另一组n个节点,直到所有节点重新启动?
谢谢。
答案 0 :(得分:3)
在cloud-config.yaml文件中,您可以添加:
coreos:
update:
reboot-strategy: etcd-lock
这意味着群集中的计算机将在重新引导之前获取锁定,以确保每次重启不超过1台计算机。有关其他信息,请参阅文档: https://coreos.com/docs/cluster-management/setup/update-strategies/
答案 1 :(得分:1)
Locksmith是重启CoreOS节点的守护进程。我建议选择etcd-lock重启策略:
coreos:
update:
reboot-strategy: etcd-lock
默认情况下,这会将群集1重新启动1.我使用fleetctl来远程控制我的CoreOS群集。此脚本将重新启动信号发送到群集中的所有计算机:
#!/bin/bash -x
for machine in $(fleetctl list-machines --no-legend --full | awk '{ print $1;}'); do
fleetctl ssh $machine "sudo locksmithctl reboot"
done
如果您的reboot-strategy是etcd-lock,则节点不会立即重启。它们将逐个重新启动,直到整个群集重新启动。