单节点运行etcd
1. 概述
这是一个序列总结文档。
- 第1节 安装etcd 中,在CentOS7上面安装etcd。
- 第2节 单节点运行etcd 在单节点上面运行etcd。
- 第3节 三节点部署etcd集群 在三节点上面部署etcd集群,并为etcd配置了一些快捷命令。
- 第4节 etcd TLS集群部署 在三节点上面部署etcd集群,并开启TLS协议的加密通讯。
- 第5节 etcd角色权限控制 在三节点上面部署etcd TLS集群的基础上,开启角色控制。详细可参考 https://etcd.io/docs/v3.5/demo/ 。
- 第6节 etcd证书过期处理,在etcd证书过期后,etcd相关命令行都操作不了,讲解如何处理这个问题。
- 第7节 etcd配置文件, 通过etcd配置文件来配置相关参数,然后启动etcd服务。
- 第8节 etcd可视化工具, 介绍一款好用的etcd可视化工具etcd-workbench。
- 第9节 etcd的关键配置initial-cluster-state, 介绍
initial-cluster-state设置成new和existing的区别。 - 第10节 集群ID和成员ID的不同显示方式, 介绍etcd集群ID和成员ID的不同显示方式,以及ID值如何在十六进制和十进制间进行转换。
- 第11节 etcd compaction压缩, 介绍etcd compaction压缩相关说明,如何修改压缩配置等。
1.1 VirtualBox虚拟机信息记录
学习etcd时,使用以下几个虚拟机:
| 序号 | 虚拟机 | 主机名 | IP | CPU | 内存 | 说明 |
|---|---|---|---|---|---|---|
| 1 | ansible-master | ansible | 192.168.56.120 | 2核 | 4G | Ansible控制节点 |
| 2 | ansible-node1 | etcd-node1 | 192.168.56.121 | 2核 | 2G | Ansible工作节点1 |
| 3 | ansible-node2 | etcd-node2 | 192.168.56.122 | 2核 | 2G | Ansible工作节点2 |
| 4 | ansible-node3 | etcd-node3 | 192.168.56.123 | 2核 | 2G | Ansible工作节点3 |
后面会编写使用ansible部署etcd集群的剧本。
操作系统说明:
| |
2. 单服务器部署etcd集群
参考官方文档How to Set Up a Demo etcd Cluster
- ectd端口中是 2379 用于客户端连接,提供HTTP API服务,供客户端交互。而 2380 用于伙伴通讯。
为了能在单服务器上部署etcd集群,且运行的端口和路径不相互冲突,我们先规划一下:
| 序号 | 节点名称 | 节点运行目录 | IP | 通讯端口 | 客户端端口 |
|---|---|---|---|---|---|
| 1 | node1 | /srv/etcd/node1 | 192.168.56.121 | 23801 | 23791 |
| 2 | node2 | /srv/etcd/node2 | 192.168.56.121 | 23802 | 23792 |
| 3 | node3 | /srv/etcd/node3 | 192.168.56.121 | 23803 | 23793 |
然后编写三个脚本:
| |
查看第1个启动脚本:
| |
查看第2个启动脚本:
| |
查看第3个启动脚本:
| |
分别启动3个脚本:
| |
查看etcd进程和端口监听:
| |
同时,也可以看到,在启动目录下也生成了些数据文件:
| |
3. 查看集群信息
将以下命令放到~/.bashrc配置文件中,方便后续使用:
| |
然后使用source ~/.bashrc使配置生效。
生效后查看集群成员列表信息:
| |

此时可以看到,我们在单服务器上面部署的三个etcd。
::: warning 注意
最后一列是IS LEARNER不是Is Leader,不要搞错了
:::
查看集群endpoints状态:
| |
查看集群健康状态:
| |
设置和获取键值:
| |
可以看到,可以正常获取键值。
当尝试将节点3进程kill掉后,再查看集群端点健康信息和状态信息:
| |

此时可以看到,检查到第三个节点有异常了!
再将节点3服务启动,集群状态又服务正常:
| |
