代码拉取完成,页面将自动刷新
etcd 集群的主要操作包括备份数据
,添加/删除节点
等,本文介绍使用ansible playbook
方便地完成这些任务。
可以根据需要进行定期备份(使用 crontab),或者手动在任意正常 etcd 节点上执行备份:
# snapshot备份
$ ETCDCTL_API=3 etcdctl snapshot save backup.db
# 查看备份
$ ETCDCTL_API=3 etcdctl --write-out=table snapshot status backup.db
kubeasz
项目也可以方便执行 ansible-playbook /etc/ansible/23.backup.yml
,请阅读文档备份恢复
etcd 集群支持在线改变集群成员节点,可以增加、修改、删除成员节点;不过改变成员数量仍旧需要满足集群成员多数同意原则(quorum),另外请记住集群成员数量变化的影响:
新增new-etcd
节点大致流程为:
按照本项目说明,首先确保deploy节点能够ssh免密码登陆新增节点,然后在deploy节点执行两步:
...
# 预留组,后续添加etcd节点使用
[new-etcd]
192.168.1.6 #新增etcd节点
...
$ ansible-playbook /etc/ansible/19.addetcd.yml
# 登陆任意etcd节点验证etcd集群状态
$ export ETCDCTL_API=3
$ etcdctl member list
# 验证所有etcd节点服务状态和日志
$ systemctl status etcd
$ journalctl -u etcd -f
# 检查ansible hosts文件,脚本执行成功后会自动把[new-etcd]组的新节点移动至[etcd]组
ansible-playbook /etc/ansible/19.addetcd.yml
删除节点的操作步骤比较简单,运行:ansible-playbook /etc/ansible/tools/remove_etcd_node.yml
后按照提示输入待删除节点的IP地址即可。
主要删除步骤:
上述步骤验证成功,确认新etcd集群工作正常后,可以重新配置运行apiserver,以让 k8s 集群能够识别新的etcd集群:
# 重启 master 节点服务
$ ansible-playbook /etc/ansible/04.kube-master.yml -t restart_master
# 验证 k8s 能够识别新 etcd 集群
$ kubectl get cs
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。