etcd集群有两种启动方式 — 静态配置、服务发现。其中服务发现又包含etcd自发现和DNS自发现两种模式,本文首先简单介绍一下这两种集群启动方式,然后以静态配置为例,进行实践,讲解etcd集群的部署过程。
etcd集群的部署方式
1. 静态配置
比较适用于线下环境,集群节点个数已知,各节点地址也已知的情况。一旦集群启动后,后续“--initial-cluster”参数的更新将会被忽略。
同一个集群各个节点的配置参数需要保持相同。
2. 服务发现
(1)etcd自发现模式
新集群的每个etcd节点通过现有的etcd集群进行自注册,一旦所有的member都注册完成,就组成了一个新集群。
新集群节点启动时使用参数 --discovery 指定服务发现URL,这个URL可以是你自己现有的etcd集群节点地址,也可以使用etcd公共的服务发现,但首先需要先设置集群的节点数量。以etcd公共的服务发现为例,设置集群大小为3:
curl https://discovery.etcd.io/new?size=3
此请求会返回一个服务发现URL,假设其为:https://discovery.etcd.io/cce153802aeb2adc70eb142c2e5ccf92,则新集群节点启动设置参数为:
--discovery https://discovery.etcd.io/cce153802aeb2adc70eb142c2e5ccf92
另外,同一个集群的每个节点都必须使用参数 --name 设置一个唯一标识自己的名称,否则服务发现会因为重名而失败。
(3)DNS自发现模式
etcd还支持使用DNS的SRV记录进行服务发现,启动集群。此方式需要先在DNS服务器上进行相应的配置,然后在etcd集群节点启动时使用参数 --discovery-srv 指定DNS服务器域名。
静态配置部署etcd集群
接下来使用静态配置的方式进行实践,部署一个三节点的etcd集群。三个节点名称与ip分别如下:
etcd01:192.168.3.102
etcd02:192.168.3.105
etcd03:192.168.3.103
对每个节点都按如下步骤进行部署。
1. 下载安装包
这里下载最新版本:v3.5.0
2. 解压