Skip to content

Commit

Permalink
增加etcd节点文档说明
Browse files Browse the repository at this point in the history
  • Loading branch information
gjmzj committed Feb 14, 2019
1 parent d80404b commit a417e84
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 6 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,12 @@
</tr>
<tr>
<td><strong>集群管理</strong><a href="docs/op/op-index.md">+</a></td>
<td><a href="docs/op/AddNode.md">增加node</a></td>
<td><a href="docs/op/AddMaster.md">增加master</a></td>
<td><a href="docs/op/AddNode.md">增加node节点</a></td>
<td><a href="docs/op/AddMaster.md">增加master节点</a></td>
<td><a href="docs/op/AddEtcd.md">增加etcd节点</a></td>
<td><a href="docs/op/del_one_node.md">删除节点</a></td>
<td><a href="docs/op/upgrade.md">升级集群</a></td>
<td><a href="docs/op/cluster_restore.md">备份恢复</a></td>
<td><a href="docs/op/change_k8s_network.md">修改network插件</a></td>
</tr>
<tr>
<td><strong>特性实验</strong></td>
Expand Down
66 changes: 66 additions & 0 deletions docs/op/AddEtcd.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
## 增加 etcd 集群节点

etcd 集群支持在线改变集群成员节点,可以增加、修改、删除成员节点;不过改变成员数量仍旧需要满足集群成员多数同意原则(quorum),另外请记住集群成员数量变化的影响:

- 增加 etcd 集群节点,提高集群稳定性
- 增加 etcd 集群节点,提高集群读性能(所有节点数据一致,客户端可以从任意节点读取数据)
- 增加 etcd 集群节点, 降低集群写性能(所有节点数据一致,每一次写入会需要所有节点数据同步)

新增`new-etcd`节点大致流程为:
- 在原有集群节点执行 member add 命令
- 新节点预处理 prepare
- 新节点安装 etcd 服务运行
- 原有集群节点以新配置重启服务运行
- 操作修改ansible hosts 文件

### 操作步骤

按照本项目说明,首先确保deploy节点能够ssh免密码登陆新增节点,然后在**deploy**节点执行两步:

- 修改ansible hosts 文件,在 [new-etcd] 组编辑需要新增的节点,例如:

``` bash
...
# 预留组,后续添加etcd节点使用
[new-etcd]
192.168.1.6 #新增etcd节点
...
```
- 执行安装脚本

``` bash
$ ansible-playbook /etc/ansible/19.addetcd.yml
```

### 验证

``` bash
# 登陆任意etcd节点验证etcd集群状态
$ export ETCDCTL_API=3
$ etcdctl member list

# 验证所有etcd节点服务状态和日志
$ systemctl status etcd
$ journalctl -u etcd -f

# 检查ansible hosts文件,脚本执行成功后会自动把[new-etcd]组的新节点移动至[etcd]组

```

- 注意:etcd 集群一次只能添加一个节点,如果你在[new-etcd]组中添加了2个新节点,那么需要执行两次 `ansible-playbook /etc/ansible/19.addetcd.yml`

### [可选]后续

上述步骤验证成功,确认新etcd集群工作正常后,可以重新配置运行apiserver,以让 k8s 集群能够识别新的etcd节点:

``` bash
# 重启 master 节点服务
$ ansible-playbook /etc/ansible/04.kube-master.yml -t restart_master

# 验证 k8s 能够识别新 etcd 节点
$ kubectl get cs
```

### 参考

- 官方文档 https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/runtime-configuration.md
7 changes: 4 additions & 3 deletions docs/op/op-index.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# 集群运维管理指南 operation guide

- [集群添加NODE 节点](AddNode.md)
- [集群添加MASTER 节点](AddMaster.md)
- [升级K8S 版本](upgrade.md)
- [集群添加 NODE 节点](AddNode.md)
- [集群添加 MASTER 节点](AddMaster.md)
- [集群添加 ETCD 节点](AddEtcd.md)
- [升级 K8S 版本](upgrade.md)
- [修改多主集群VIP地址](ChangeVIP.md)
- [修改AIO部署的系统IP](change_ip_allinone.md)
- [集群删除单个节点](del_one_node.md)
Expand Down

0 comments on commit a417e84

Please sign in to comment.