安装
从预构建二进制文件或源码安装 etcd 的步骤
先决条件
安装 etcd 之前,请参阅以下页面:
安装预构建二进制文件
安装 etcd 最简便的方式是使用预构建的二进制文件:
从 Releases
下载适用于当前平台的压缩归档文件,选择 v3.7.0
或更高版本。
解压归档文件。解压后会生成一个包含二进制文件的目录。
将可执行二进制文件添加到 PATH。例如,可将二进制文件重命名或移动到 PATH 中的目录(如 /usr/local/bin),也可将上一步创建的目录添加到 PATH。
在 shell 中验证 etcd 是否位于 PATH 中:
$ etcd --version
etcd Version: 3.7.0
...
从源码构建
如果已安装 Go 版本 1.21+
,可按以下步骤从源码构建 etcd:
下载 etcd 仓库的 zip 文件
并解压,或使用以下命令克隆仓库。
$ git clone -b v3.7.0 https://github.com/etcd-io/etcd.git
如需从 main@HEAD 构建,请省略 -b v3.7.0 标志。
切换目录:
运行构建脚本:
二进制文件位于 bin 目录下。
将 bin 目录的完整路径添加到 PATH 环境变量中,例如:
$ export PATH="$PATH:`pwd`/bin"
验证 etcd 是否位于 PATH 中:
通过操作系统包安装
请注意:通过操作系统包管理器安装的 etcd 可能会提供过时版本,因为这些版本不会被 etcd 项目自动维护或官方支持。因此,使用操作系统包时应格外谨慎。
在不同操作系统上安装 etcd 有多种方式,以下仅列举部分示例说明如何操作。
macOS (Homebrew)
- 更新 homebrew:
- 安装 etcd:
- 验证安装
Linux
尽管可通过多数主流 Linux 发行版的官方软件仓库和包管理器安装 etcd,但发布的版本可能严重过时。因此,强烈不建议采用此方式安装。
在 Linux 上安装 etcd 的推荐方式是通过 预构建二进制文件
,或使用 Homebrew。
Linux 上的 Homebrew
Homebrew 可在 Linux 上运行,并可提供较新的软件版本。
先决条件
操作步骤
结果
通过获取版本信息验证安装:
$ etcd --version
etcd Version: 3.7.0
...
Docker
etcd 使用 gcr.io/etcd-development/etcd
作为主容器注册表,使用 quay.io/coreos/etcd
作为辅助注册表。
使用 Docker 运行 etcd:
ETCD_VER=v3.7.0
rm -rf /tmp/etcd-data.tmp && mkdir -p /tmp/etcd-data.tmp && \
docker rmi gcr.io/etcd-development/etcd:${ETCD_VER} || true && \
docker run \
-p 2379:2379 \
-p 2380:2380 \
--mount type=bind,source=/tmp/etcd-data.tmp,destination=/etcd-data \
--name etcd-gcr-${ETCD_VER} \
gcr.io/etcd-development/etcd:${ETCD_VER} \
/usr/local/bin/etcd \
--name s1 \
--data-dir /etcd-data \
--listen-client-urls http://0.0.0.0:2379 \
--advertise-client-urls http://0.0.0.0:2379 \
--listen-peer-urls http://0.0.0.0:2380 \
--initial-advertise-peer-urls http://0.0.0.0:2380 \
--initial-cluster s1=http://0.0.0.0:2380 \
--initial-cluster-token tkn \
--initial-cluster-state new \
--log-level info \
--logger zap \
--log-outputs stderr
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcd --version
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdctl version
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdutl version
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdctl endpoint health
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdctl put foo bar
docker exec etcd-gcr-${ETCD_VER} /usr/local/bin/etcdctl get foo
Kubernetes 安装的一部分
- [以 Kubernetes StatefulSet 形式运行 etcd][]
安装检查
若需对安装进行稍复杂的完整性检查,请参阅[快速入门][]。