↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

etcd 3.7

安装

etcd 3.7 开发、运维、升级、API 与内部原理中文指南

先决条件

安装 etcd 之前,请参阅以下页面:

  • [支持的平台][]
  • [硬件建议][]

安装预构建二进制文件

安装 etcd 最简便的方式是使用预构建的二进制文件:

  1. 从 Releases 下载适用于当前平台的压缩归档文件,选择 v3.7.0 或更高版本。

  2. 解压归档文件。解压后会生成一个包含二进制文件的目录。

  3. 将可执行二进制文件添加到 PATH。例如,可将二进制文件重命名或移动到 PATH 中的目录(如 /usr/local/bin),也可将上一步创建的目录添加到 PATH。

  4. 在 shell 中验证 etcd 是否位于 PATH 中:

    $ etcd --version
    etcd Version: 3.7.0
    ...

从源码构建

如果已安装 Go 版本 1.21+ ,可按以下步骤从源码构建 etcd:

  1. 下载 etcd 仓库的 zip 文件 并解压,或使用以下命令克隆仓库。

    $ git clone -b v3.7.0 https://github.com/etcd-io/etcd.git

    如需从 main@HEAD 构建,请省略 -b v3.7.0 标志。

  2. 切换目录:

    $ cd etcd
  3. 运行构建脚本:

    $ ./scripts/build.sh

    二进制文件位于 bin 目录下。

  4. 将 bin 目录的完整路径添加到 PATH 环境变量中,例如:

    $ export PATH="$PATH:`pwd`/bin"
  5. 验证 etcd 是否位于 PATH 中:

    $ etcd --version

通过操作系统包安装

请注意:通过操作系统包管理器安装的 etcd 可能会提供过时版本,因为这些版本不会被 etcd 项目自动维护或官方支持。因此,使用操作系统包时应格外谨慎。

在不同操作系统上安装 etcd 有多种方式,以下仅列举部分示例说明如何操作。

macOS (Homebrew)

  1. 更新 homebrew:
$ brew update
  1. 安装 etcd:
$ brew install etcd
  1. 验证安装
$ etcd --version

Linux

尽管可通过多数主流 Linux 发行版的官方软件仓库和包管理器安装 etcd,但发布的版本可能严重过时。因此,强烈不建议采用此方式安装。

在 Linux 上安装 etcd 的推荐方式是通过 预构建二进制文件 ,或使用 Homebrew。

Linux 上的 Homebrew

Homebrew 可在 Linux 上运行,并可提供较新的软件版本。

  • 先决条件

    • 更新 Homebrew:

      $ brew update
  • 操作步骤

    • 使用 brew 安装:

      $ brew install etcd
  • 结果

    • 通过获取版本信息验证安装:

      $ 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][]

安装检查

若需对安装进行稍复杂的完整性检查,请参阅[快速入门][]。

来源与许可

文档取自 pig.center · 上游文档

版本
3.7
许可
CC-BY-4.0
来源修订
dba8dc7e1afd3f6eea300ebf9ecb67c731145f1ee7db1ca0d3ebc49508812609
译文修订
dba8dc7e1afd3f6eea300ebf9ecb67c731145f1ee7db1ca0d3ebc49508812609
原始 Markdown