etcd有三种集群化启动的配置方案,分别为静态配置启动、etcd自身服务发现、通过DNS进行服务发现。
1,静态配置
这种方式比较适用于离线环境,在启动整个集群之前,你就已经预先清楚所要配置的集群大小,以及集群上各节点的地址和端口信息。那么启动时,你就可以通过配置initial-cluster参数进行etcd集群的启动。
例如启动3个etcd的群集,启动代码如下,分别在3台机器上运行
$ 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-token etcd-cluster-1 --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 --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-token etcd-cluster-1 --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 --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-token etcd-cluster-1 --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自发现模式
通过自发现的方式启动etcd集群需要事先准备一个etcd集群,本例子采用etcd官网提供的一个可以公网访问的etcd存储地址
第一步:将创建初始大小为 3 成员的聚类。如果没有指定大小,则使用默认值 3。
$ curl https://discovery.etcd.io/new?size=3 https://discovery.etcd.io/3e86b59982e49066c5d813af1c2e2579cbf573de
第二步:分别在3台机器上执行
$ 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 --discovery https://discovery.etcd.io/3e86b59982e49066c5d813af1c2e2579cbf573de
$ 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 --discovery https://discovery.etcd.io/3e86b59982e49066c5d813af1c2e2579cbf573de
$ 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 --discovery https://discovery.etcd.io/3e86b59982e49066c5d813af1c2e2579cbf573de
3,DNS自发现模式
此模式还未验证,可以参考集群指南|等 (etcd.io)https://etcd.io/docs/v3.5/op-guide/clustering/



