1. 静态部署
如果在启动前我们知道集群成员,他们的地址和集群的大小,我们可以使用通过设置 initial-cluster
标记来离线启动配置。每个机器将得到下列环境变量或者命令行:
ETCD_INITIAL_CLUSTER="infra0=http://10.0.1.10:2380,infra1=http://10.0.1.11:2380,infra2=http://10.0.1.12:2380"
ETCD_INITIAL_CLUSTER_STATE=new
--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
注意: 在 initial-cluster
中指定的 URL 是 advertised peer URLs ,例如,他们将匹配对应节点的 initial-advertise-peer-urls
的值。
如果使用同样的配置启动多个集群(或者创建并部署单个集群)用于测试目的,强烈推荐每个集群给予一个唯一的 initial-cluster-token
。这样做之后,etcd 可以为集群生成唯一的集群 ID 和成员 ID,甚至他们有完全一样的配置。这可以将 etcd 从可能让集群孵化的跨集群交互中保护起来。
etcd 在 listen-client-urls
上接收客户端访问。etcd 成员将 advertise-client-urls
指定的 URl 上通告给其他成员,代理和客户端。常见的错误是设置 advertise-client-urls
为 localhost 或者留空为默认值,如果远程客户端可以达到 etcd。