etcd集群部署,通常至少部署3个etcd节点(推荐奇数个节点),下面一步步接受集群搭建方法。
提示:如何安装etcd,请参考etcd单机部署章节。
集群规划
这里规划一个由3台服务器节点组成的etcd集群,如下表:
节点名字 | 服务器Ip |
---|---|
infra0 | 10.0.1.10 |
infra1 | 10.0.1.11 |
infra2 | 10.0.1.12 |
etcd关键参数说明
参数 | 说明 |
---|---|
--name | etcd节点名字 |
--initial-cluster | etcd启动的时候,通过这个配置找到其他ectd节点的地址列表,格式:'节点名字1=http://节点ip1:2380,节点名字1=http://节点ip1:2380,.....' |
--initial-cluster-state | 初始化的时候,集群的状态 "new" 或者 "existing"两种状态,new代表新建的集群,existing表示加入已经存在的集群。 |
--listen-client-urls | 监听客户端请求的地址列表,格式:'http://localhost:2379', 多个用逗号分隔。 |
--advertise-client-urls | 如果--listen-client-urls配置了,多个监听客户端请求的地址,这个参数可以给出,建议客户端使用什么地址访问etcd。 |
--listen-peer-urls | 服务端节点之间通讯的监听地址,格式:'http://localhost:2380' |
--initial-advertise-peer-urls | 建议服务端之间通讯使用的地址列表。 |
启动节点1
$ etcd --name infra0 --initial-advertise-peer-urls http://10.0.1.10:2380 \
--listen-peer-urls http://10.0.1.10:2380 \
--listen-client-urls http://10.0.1.10:2379,http://127.0.0.1:2379 \
--advertise-client-urls http://10.0.1.10:2379 \
--initial-cluster infra0=http://10.0.1.10:2380,infra1=http://10.0.1.11:2380,infra2=http://10.0.1.12:2380 \
--initial-cluster-state new
启动节点2
$ etcd --name infra1 --initial-advertise-peer-urls http://10.0.1.11:2380 \
--listen-peer-urls http://10.0.1.11:2380 \
--listen-client-urls http://10.0.1.11:2379,http://127.0.0.1:2379 \
--advertise-client-urls http://10.0.1.11:2379 \
--initial-cluster infra0=http://10.0.1.10:2380,infra1=http://10.0.1.11:2380,infra2=http://10.0.1.12:2380 \
--initial-cluster-state new
启动节点3
$ etcd --name infra2 --initial-advertise-peer-urls http://10.0.1.12:2380 \
--listen-peer-urls http://10.0.1.12:2380 \
--listen-client-urls http://10.0.1.12:2379,http://127.0.0.1:2379 \
--advertise-client-urls http://10.0.1.12:2379 \
--initial-cluster infra0=http://10.0.1.10:2380,infra1=http://10.0.1.11:2380,infra2=http://10.0.1.12:2380 \
--initial-cluster-state new
提示:每台服务器启动的etcd实例,--initial-cluster 参数都是一样的,列出整个集群所有节点的服务端通讯地址。
开机启动
上面是直接在命令行启动etcd实例,关闭命令窗口,etcd就退出了,推荐使用进程管理软件,启动etcd,例如:centos系统,使用systemd启动etcd,具体如何配置网上找一下systemd的资料即可。