一、虚拟机配置
用virtualbox创建了三个配置相同的实例,具体配置如下:
虚拟机节点名称 | 硬件配置 | 操作系统 | IP |
node1 | CPU:1核 内存:1GB 硬盘:16GB | Debian 11 | 192.168.50.101 |
node2 | 192.168.50.102 | ||
node3 | 192.168.50.103 |
二、安装etcd
2.1 安装文件下载
安装文件直接从github上找的3.5.5版本,无需赘述。下载后解压,将etcd和etcdctl两个二进制文件分别拷贝到三台虚拟机的/usr/local/bin路径下。在三台虚拟机上分别创建/etc/etcd/etcd.conf空文件。etc路径下没有etcd目录的话,手动创建即可。另外为使虚拟机启动时就能启动etcd集群,并通过systemd进行服务管理,在三台虚拟机的/etc/systemd/system路径下创建etcd.service空文件。
2.2 etcd配置集群
2.2.1 etcd.conf配置
节点1
ETCD_DATA_DIR="/var/lib/etcd/etcdcluster.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.50.101:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_NAME="etcd01"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.50.101:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_INITIAL_CLUSTER="etcd01=http://192.168.50.101:2380,etcd02=http://192.168.50.102:2380,etcd03=http://192.168.50.103:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"
节点2
ETCD_DATA_DIR="/var/lib/etcd/etcdcluster.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.50.102:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_NAME="etcd02"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.50.102:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_INITIAL_CLUSTER="etcd01=http://192.168.50.101:2380,etcd02=http://192.168.50.102:2380,etcd03=http://192.168.50.103:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"
节点3
ETCD_DATA_DIR="/var/lib/etcd/etcdcluster.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.50.103:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_NAME="etcd03"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.50.103:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_INITIAL_CLUSTER="etcd01=http://192.168.50.101:2380,etcd02=http://192.168.50.102:2380,etcd03=http://192.168.50.103:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"
2.2.2 etcd.service配置
三个节点的etcd.service配置完全相同,具体如下:
[Unit]
Description=Etcd Server
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
EnvironmentFile=/etc/etcd/etcd.conf
ExecStart=/usr/local/bin/etcd
Restart=always
RestartSec=10s
LimitNOFILE=40000
[Install]
WantedBy=multi-user.target
完成三个节点的etcd.service配置后,执行systemctl enable etcd.service命令并重启所有虚拟机即可完成集群安装。
三、参考资料
搭建 etcd 集群 - etcd官方文档中文版 (gitbook.io)
etcd集群搭建(高可用) - Damien1 - 博客园 (cnblogs.com)s
四、追记
目前发现一个现象,当修改各个节点的IP后,etcd服务无法再启动。因为服务启动后,会在ECTD_DATA_DIR指定的路径下生成相关的二进制文件。虽然修改了每个节点的IP地址,但首次配置的IP地址已经写入了二进制文件。目前的处理方式是删除ECTD_DATA_DIR下的所有文件后才能再启动。