安装
etcd 基于 Go 语言实现,因此,用户可以从 项目主页 下载源代码自行编译,也可以下载编译好的二进制文件,甚至直接使用制作好的 Docker 镜像文件来体验。
注意:本章节内容基于 etcd 3.4.x 版本

二进制文件方式下载

编译好的二进制文件都在 github.com/etcd-io/etcd/releases 页面,用户可以选择需要的版本,或通过下载工具下载。
例如,使用 curl 工具下载压缩包,并解压。
1
$ curl -L https://github.com/etcd-io/etcd/releases/download/v3.4.0/etcd-v3.4.0-linux-amd64.tar.gz -o etcd-v3.4.0-linux-amd64.tar.gz
2
3
# 国内用户可以使用以下方式加快下载
4
$ curl -L https://download.fastgit.org/etcd-io/etcd/releases/download/v3.4.0/etcd-v3.4.0-linux-amd64.tar.gz -o etcd-v3.4.0-linux-amd64.tar.gz
5
6
$ tar xzvf etcd-v3.4.0-linux-amd64.tar.gz
7
$ cd etcd-v3.4.0-linux-amd64
Copied!
解压后,可以看到文件包括
1
$ ls
2
Documentation README-etcdctl.md README.md READMEv2-etcdctl.md etcd etcdctl
Copied!
其中 etcd 是服务主文件,etcdctl 是提供给用户的命令客户端,其他文件是支持文档。
下面将 etcd etcdctl 文件放到系统可执行目录(例如 /usr/local/bin/)。
1
$ sudo cp etcd* /usr/local/bin/
Copied!
默认 2379 端口处理客户端的请求,2380 端口用于集群各成员间的通信。启动 etcd 显示类似如下的信息:
1
$ etcd
2
...
3
2017-12-03 11:18:34.411579 I | embed: listening for peers on http://localhost:2380
4
2017-12-03 11:18:34.411938 I | embed: listening for client requests on localhost:2379
Copied!
此时,可以使用 etcdctl 命令进行测试,设置和获取键值 testkey: "hello world",检查 etcd 服务是否启动成功:
1
$ ETCDCTL_API=3 etcdctl member list
2
8e9e05c52164694d, started, default, http://localhost:2380, http://localhost:2379
3
4
$ ETCDCTL_API=3 etcdctl put testkey "hello world"
5
OK
6
7
$ etcdctl get testkey
8
testkey
9
hello world
Copied!
说明 etcd 服务已经成功启动了。

Docker 镜像方式运行

镜像名称为 quay.io/coreos/etcd,可以通过下面的命令启动 etcd 服务监听到 23792380 端口。
1
$ docker run \
2
-p 2379:2379 \
3
-p 2380:2380 \
4
--mount type=bind,source=/tmp/etcd-data.tmp,destination=/etcd-data \
5
--name etcd-gcr-v3.4.0 \
6
quay.io/coreos/etcd:v3.4.0 \
7
/usr/local/bin/etcd \
8
--name s1 \
9
--data-dir /etcd-data \
10
--listen-client-urls http://0.0.0.0:2379 \
11
--advertise-client-urls http://0.0.0.0:2379 \
12
--listen-peer-urls http://0.0.0.0:2380 \
13
--initial-advertise-peer-urls http://0.0.0.0:2380 \
14
--initial-cluster s1=http://0.0.0.0:2380 \
15
--initial-cluster-token tkn \
16
--initial-cluster-state new \
17
--log-level info \
18
--logger zap \
19
--log-outputs stderr
Copied!
打开新的终端按照上一步的方法测试 etcd 是否成功启动。

macOS 中运行

1
$ brew install etcd
2
3
$ etcd
4
5
$ etcdctl member list
Copied!
最近更新 2mo ago