Etcd 安装配置

etcd 是一个分布式、高可用的一致性键值存储系统,提供可靠的分布式键值存储、配置共享和服务发现等功能。

etcd 可以用于存储关键数据和实现分布式调度,在现代化的集群运行中能够起到关键性的作用。

etcd 安装配置都非常简单,可以安装在大多数主流平台,比如 Linux、Windows、MacOS等。

1. Linux 安装 etcd

Linux 安装 etcd 有三种方式:yum安装、二进制安装和源码安装。

1.1 yum 安装

在 shell 中执行安装命令。

yum -y install etcd

执行结果:

Downloading packages:
etcd-3.3.11-2.el7.centos.x86_64.rpm |  10 MB  00:00:07     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : etcd-3.3.11-2.el7.centos.x86_64  1/1 
  验证中      : etcd-3.3.11-2.el7.centos.x86_64  1/1 
已安装:
  etcd.x86_64 0:3.3.11-2.el7.centos                                                                                 
完毕!

可执行文件 etcd 和 管理工具 etcdctl 均被安装在 /usr/bin 下。

配置文件位于 /etc/etcd/etcd.conf,我们可以使用 vi 进行编辑。

默认的工作目录位于 /var/lib/etcd。

设置 etcd 为系统服务:

$ systemctl enable etcd

启动运行 etcd:

$ systemctl start etcd

1.2 二进制安装

到 etcd 的 github 地址,下载二进制安装包。

etcd 下载地址:https://github.com/etcd-io/etcd/releases/。

以 etcd3.3.1 为例:

wget https://github.com/etcd-io/etcd/releases/download/v3.3.1/etcd-v3.3.1-linux-amd64.tar.gz 

如果 github 速度慢,可以使用华为镜像, 下载地址:https://mirrors.huaweicloud.com/etcd/。

wget https://mirrors.huaweicloud.com/etcd/v3.3.1/etcd-v3.3.1-linux-amd64.tar.gz

tar 包解压后,里面包含可执行文件 etcd 和 管理工具 etcdctl :

tar zxvf etcd-v3.3.1-linux-amd64.tar.gz

将 etcd、etcdctl 复制到 /usr/bin 下。然后创建工作目录,编写配置文件 etcd.conf.yaml。

mkdir /var/lib/etcd
cd /var/lib/etcd
vi etcd.conf.yaml

例如配置文件内容如下:

name: "etcd-node"
data-dir: "/var/lib/etcd"
listen-peer-urls: "http://0.0.0.0:2380"
listen-client-urls: "http://0.0.0.0:2379"
advertise-client-urls: "http://127.0.0.1:2379"

启动运行 etcd:

$ nohup etcd --config-file=/var/lib/etcd/etcd.conf.yaml &

1.3 测试验证

查看版本:

# etcdctl version  
etcdctl version: 3.3.1
API version: 3.3

设置查看键值:

# etcdctl put key-test val-test  
OK
# etcdctl get key-test
key-test
val-test

2. MacOS 安装 etcd

Linux 安装 etcd 有两种方式:brew安装和二进制安装。

2.1 brew 安装

在 shell 中执行安装命令。

brew install etcd

执行结果:

==> Downloading https://mirrors.aliyun.com/homebrew/homebrew-bottles/bottles/etcd-3.4.15.mojave.bottle.tar.gz
######################## 100.0%
==> Pouring etcd-3.4.15.mojave.bottle.tar.gz
==> Caveats
To have launchd start etcd now and restart at login:
  brew services start etcd
Or, if you don't want/need a background service you can just run:
  etcd
==> Summary
  /usr/local/Cellar/etcd/3.4.15: 8 files, 37.2MB

启动运行 etcd:

$ etcd

从执行结果中可以看出:

  • etcdserver: name = default, name表示节点名称,默认为default。
  • etcdserver: data dir = default.etcd,data-dir保存日志和快照的目录,默认为当前工作目录“./default.etcd/”。
  • etcdserver: initial advertise peer URLs = http://localhost:2380,通过http://localhost:2380,和集群中其他节点通信。
  • etcdserver: advertise client URLs = http://localhost:2379,通过http://localhost:2379,对外提供HTTP API服务,供客户端交互。如果配置webui,就使用这个地址。
  • etcdserver: heartbeat = 100ms leader发送心跳到followers的间隔时间。
  • etcdserver: election = 1000ms 重新投票的超时时间,如果follow在该时间间隔没有收到心跳包,会触发重新投票,默认为1000ms。

如果要修改相关参数,可以参照 linux 部分,编写配置文件,启动运行 etcd:

$ nohup etcd --config-file=/var/lib/etcd/etcd.conf.yaml &

2.2 二进制安装

到 etcd 的 github 地址,下载二进制安装包。

etcd 下载地址:https://github.com/etcd-io/etcd/releases/。

以 etcd3.3.1 为例:

wget https://github.com/etcd-io/etcd/releases/download/v3.3.1/etcd-v3.3.1-darwin-amd64.zip

如果 github 速度慢,可以使用华为镜像, 下载地址:https://mirrors.huaweicloud.com/etcd/。

wget https://mirrors.huaweicloud.com/etcd/v3.3.1/etcd-v3.3.1-darwin-amd64.zip

zip 包解压后,里面包含可执行文件 etcd 和 管理工具 etcdctl ,将 etcd、etcdctl 复制到 /usr/bin 下。

然后创建工作目录,编写配置文件 etcd.conf.yaml,其它可参照 linux 部分。

3. Windows 安装 etcd

windows 安装 etcd 非常简单。先到 etcd 的 github 地址,下载二进制安装包。

etcd 下载地址:https://github.com/etcd-io/etcd/releases/。

以 etcd3.3.1 为例:

wget https://github.com/etcd-io/etcd/releases/download/v3.3.1/etcd-v3.3.1-windows-amd64.zip

如果 github 速度慢,可以使用华为镜像, 下载地址:https://mirrors.huaweicloud.com/etcd/。

wget https://mirrors.huaweicloud.com/etcd/v3.3.1/etcd-v3.3.1-windows-amd64.zip

zip 包解压后,里面包含可执行文件 etcd.exe 和 管理工具 etcdctl.exe。

运行 etcd.exe 即可,其它可参照 linux 部分。

下一章:Etcd 与 Redis、ZooKeeper 区别和对比

Etcd 是开源的、高可用的分布式 key-value 存储系统,可用于配置共享和服务的注册和发现。 1. Etcd 特点简单:定义清晰、面向用户的API(gRPC)。安全 ...