一架梯子,一头程序猿,仰望星空!

etcd 集群部署


etcd集群部署,通常至少部署3个etcd节点(推荐奇数个节点),下面一步步接受集群搭建方法。

提示:如何安装etcd,请参考etcd单机部署章节。

集群规划

这里规划一个由3台服务器节点组成的etcd集群,如下表:

节点名字服务器Ip
infra010.0.1.10
infra110.0.1.11
infra210.0.1.12

etcd关键参数说明

参数说明
--nameetcd节点名字
--initial-clusteretcd启动的时候,通过这个配置找到其他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的资料即可。