安装

etcd是一个分布式一致性的键值数据库。首先我们下载程序包

useradd etcd
su - etcd
wget https://github.com/etcd-io/etcd/releases/download/v3.5.4/etcd-v3.5.4-linux-amd64.tar.gz
tar -zxvf.tar.gz
cd

之后我们可以查询etcd的版本

$ ./etcd --version
etcd Version: 3.5.4
Git SHA: 08407ff76
Go Version: go1.16.15
Go OS/Arch: linux/amd64

我们在三台负载172.19.33.141172.19.32.155172.19.34.21上分别执行如上操作来安装etcd。

使用

之后我们使用etcd来构建一个集群,相关的配置既可以使用命令行设置也可以使用配置文件设置。相关配置的含义如下

配置含义默认值
name当前节点的名称default
initial-advertise-peer-urls告知其它节点,当前节点与其它节点交流的ip地址和端口http://localhost:2380
advertise-client-urls告知其它节点,当前节点与客户端通信的ip地址和端口http://localhost:2379
listen-peer-urls当前节点所监听的,用于与其它节点交流的ip地址和端口http://localhost:2380
listen-client-urls当前节点所监听的,用于与客户端通信的ip地址和端口http://localhost:2379
initial-cluster-token集群bootstrap时的token属性etcd-cluster
initial-cluster集群bootstrap时的配置信息default=http://localhost:2380
initial-cluster-state集群启动状态,第一次启动集群时设置为new,如果是想要加入到已有的集群则设置为existingnew

之后我们使用命令行设置分别启动三个进程

[etcd@lin-19-33-141]$ ./etcd --name node1 \
    --initial-advertise-peer-urls http://172.19.33.141:2380 \
    --advertise-client-urls http://172.19.33.141:2379 \
    --listen-peer-urls http://172.19.33.141:2380 \
    --listen-client-urls http://172.19.33.141:2379,http://127.0.0.1:2379 \
    --initial-cluster-token product-center \
    --initial-cluster node1=http://172.19.33.141:2380,node2=http://172.19.32.155:2380,node3=http://172.19.34.21:2380

[etcd@lin-19-32-155]$ ./etcd --name node2 \
    --initial-advertise-peer-urls http://172.19.32.155:2380 \
    --advertise-client-urls http://172.19.32.155:2379 \
    --listen-peer-urls http://172.19.32.155:2380 \
    --listen-client-urls http://172.19.32.155:2379,http://127.0.0.1:2379 \
    --initial-cluster-token product-center \
    --initial-cluster node1=http://172.19.33.141:2380,node2=http://172.19.32.155:2380,node3=http://172.19.34.21:2380

[etcd@lin-19-34-21]$ ./etcd --name node3 \
    --initial-advertise-peer-urls http://172.19.34.21:2380 \
    --advertise-client-urls http://172.19.34.21:2379 \
    --listen-peer-urls http://172.19.34.21:2380 \
    --listen-client-urls http://172.19.34.21:2379,http://127.0.0.1:2379 \
    --initial-cluster-token product-center \
    --initial-cluster node1=http://172.19.33.141:2380,node2=http://172.19.32.155:2380,node3=http://172.19.34.21:2380

在三台负载都执行了etcd启动命令之后,正常情况下三个节点已经构成了一个etcd集群。随后我们可以使用etcdctl客户端对集群中的数据进行读写操作

./etcdctl --endpoints=172.19.33.141:2379,172.19.32.155:2379,172.19.34.21:2379 member list
./etcdctl --endpoints=172.19.33.141:2379,172.19.32.155:2379,172.19.34.21:2379 put name "zhangsan"
./etcdctl --endpoints=172.19.33.141:2379,172.19.32.155:2379,172.19.34.21:2379 get name

参考

https://etcd.io/docs/v3.5/tutorials/