手把手安装etcd配置中心

举报
码乐 发表于 2025/11/13 10:27:54 2025/11/13
【摘要】 1 简介针对 etcd 在 Ubuntu 24.04(或一般说 “Ubuntu 24”)上安装与基本配置服务的完整示例步骤。我们可以根据需要做进一步的 HA 集群、TLS 加密、安全认证等扩展。 2 安装步骤:环境准备假设操作系统是 Ubuntu 24.04 或相近版本。 需要以 root 或具备 sudo 权限的用户操作。更新系统软件包列表:sudo apt updatesudo apt...

1 简介

针对 etcd 在 Ubuntu 24.04(或一般说 “Ubuntu 24”)上安装与基本配置服务的完整示例步骤。我们可以根据需要做进一步的 HA 集群、TLS 加密、安全认证等扩展。

2 安装步骤:环境准备

假设操作系统是 Ubuntu 24.04 或相近版本。 需要以 root 或具备 sudo 权限的用户操作。

更新系统软件包列表:

sudo apt update
sudo apt upgrade -y

安装常用工具(如果还没装的话):

			sudo apt install -y wget curl tar vim

(可选)设置主机名 / 网络 /防火墙,根据实际环境调整。确保端口 2379(客户端通信)和 2380(集群内部通信)对你的环境是可用/允许的。根据官方仓库,这两个是 etcd 的默认通信端口。

  • 下载安装最新稳定版本

官方推荐使用预编译二进制包安装,因为操作系统仓库里的版本可能偏旧。

查找最新发布版本号(例如 v3.6.x 或 v3.5.x 系列)

    ETCD_RELEASE=$(curl -s https://api.github.com/repos/etcd-io/etcd/releases/latest | grep tag_name | cut -d '"' -f 4)
    echo "Latest etcd version: $ETCD_RELEASE"

(也可以在 https://github.com/etcd-io/etcd/releases手动查找)

下载对应 Linux amd64 的压缩包。假设版本为 ${ETCD_RELEASE}:

    wget https://github.com/etcd-io/etcd/releases/download/${ETCD_RELEASE}/etcd-${ETCD_RELEASE}-linux-amd64.tar.gz

解压并移动二进制程序到系统可执行路径:

      tar -xvzf etcd-${ETCD_RELEASE}-linux-amd64.tar.gz
      cd etcd-${ETCD_RELEASE}-linux-amd64
      sudo mv etcd etcdctl /usr/local/bin/

检查版本是否正确安装:

    etcd --version
    etcdctl version

应该输出类似 “Version: 3.x.y” 的版本信息。

可选:你也可以通过 apt 安装 etcd-server(或 etcd 包)但可能不是最新版本。

3 创建运行用户、目录与权限

为了安全及归属管理,推荐为 etcd 创建专用用户,并设置数据目录。示例:

      sudo useradd -r -s /sbin/nologin etcd
      sudo mkdir -p /etc/etcd /var/lib/etcd
      sudo chown -R etcd:etcd /etc/etcd /var/lib/etcd
      sudo chmod 700 /var/lib/etcd

这样 etcd 服务运行时使用的是专用用户,数据目录权限合适。

  • 创建 systemd 服务文件

我们以单节点(或者未来扩展集群用)为例。假设节点名为 default 或者你自定义。
使用编辑器创建 /etc/systemd/system/etcd.service,内容参考如下:

          [Unit]
          Description=etcd key-value store
          Documentation=https://etcd.io/docs/
          After=network.target

          [Service]
          User=etcd
          Type=notify
          ExecStart=/usr/local/bin/etcd \
            --name default \
            --data-dir /var/lib/etcd \
            --listen-client-urls http://0.0.0.0:2379 \
            --advertise-client-urls http://127.0.0.1:2379 \
            --listen-peer-urls http://0.0.0.0:2380 \
            --initial-advertise-peer-urls http://127.0.0.1:2380 \
            --initial-cluster default=http://127.0.0.1:2380 \
            --initial-cluster-token etcd-cluster-01 \
            --initial-cluster-state new
          Restart=on-failure
          LimitNOFILE=40000

          [Install]
          WantedBy=multi-user.target

说明:

–name 指定成员名称。

–data-dir 指定数据目录。

–listen-client-urls 客户端(应用等)访问的地址。

–advertise-client-urls 广播给外部客户端使用的地址。

–listen-peer-urls 和 --initial-advertise-peer-urls 用于集群成员之间通信。

–initial-cluster 若为单节点,则只有一个成员;若为多节点,则列出所有成员。

–initial-cluster-state new 表示新建集群。若为加入已有集群则为 existing。

LimitNOFILE=40000 是推荐用于 etcd 提高打开文件数的限制。

如果你安装的是 apt 包的方式,配置可能在 /etc/default/etcd 或 /etc/etcd/etcd.conf。例如:

在 /etc/default/etcd:

    ETCD_NAME="controller"
    ETCD_DATA_DIR="/var/lib/etcd"
    ETCD_INITIAL_CLUSTER_STATE="new"
    ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
    ETCD_INITIAL_CLUSTER="controller=http://10.0.0.11:2380"
    ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.0.0.11:2380"
    ETCD_ADVERTISE_CLIENT_URLS="http://10.0.0.11:2379"
    ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
    ETCD_LISTEN_CLIENT_URLS="http://10.0.0.11:2379"

4 启动与验证服务

重新加载 systemd 配置:

		sudo systemctl daemon-reload

启动并设置开机启动:

    sudo systemctl enable etcd
    sudo systemctl start etcd

检查服务状态:

		sudo systemctl status etcd

查看日志(如果有问题):

		sudo journalctl -u etcd -f

使用 etcdctl 测试基本功能:

  /usr/local/bin/etcdctl put hello "Ubuntu 24.04"
  /usr/local/bin/etcdctl get hello

应该返回 “hello” → “Ubuntu 24.04”。若失败,检查 client 地址、认证、版本等。

  • 基本配置说明 &建议

默认端口:2379(客户端访问),2380(节点对节点通信)

若部署多节点集群:每个节点需要 --initial-cluster 中列出所有节点及其 peer URLs。启动时只用 --initial-cluster-state new(首次建),以后加入新成员时用 existing。

数据目录 (–data-dir) 需要专用,不与别服务混用。

建议将监听地址设为 0.0.0.0 或特定网卡地址,具体视网络安全要求决定。例子中用了 0.0.0.0。

广播给客户端与其它 peer 的 URL 要使用可被其它节点访问的 IP/域名,不应用 localhost(除非只有本地节点)。

权限与用户:建议使用专用系统用户运行服务,降低权限。

系统资源:打开文件数(NOFILE)建议提升。

安全建议:在生产环境建议启用 TLS/证书、访问认证、数据备份、监控 etcd 节点健康/扩容机制。

操作系统包的版本可能太旧,官方文档推荐预编译二进制包。

5 小结

通过以上步骤,我们可以在 Ubuntu 24.04 上快速安装并运行一个单节点 etcd 服务。若你未来打算扩展为多节点集群、有高可用要求或要启用 TLS/认证,建议参考官方文档和生产最佳实践。

		install_etcd_bash

			#!/usr/bin/env bash
			# =========================================
			#  自动安装与配置 etcd(Ubuntu 24.04)
			#  作者: ChatGPT
			#  日期: $(date +%Y-%m-%d)
			#  功能: 安装最新稳定版 etcd 并配置 systemd 服务
			# =========================================

			set -e

			ETCD_USER="etcd"
			ETCD_DATA_DIR="/var/lib/etcd"
			ETCD_CONF_DIR="/etc/etcd"
			SYSTEMD_FILE="/etc/systemd/system/etcd.service"

			echo "=== [1/8] 更新系统并安装依赖包 ==="
			sudo apt update -y
			sudo apt install -y wget curl tar vim

			echo "=== [2/8] 获取最新稳定版本号 ==="
			ETCD_VERSION=$(curl -s https://api.github.com/repos/etcd-io/etcd/releases/latest | grep tag_name | cut -d '"' -f 4)
			if [ -z "$ETCD_VERSION" ]; then
			    echo "❌ 无法获取 etcd 最新版本号,请检查网络。"
			    exit 1
			fi
			echo "✅ 最新 etcd 版本: $ETCD_VERSION"

			echo "=== [3/8] 下载并安装 etcd 二进制包 ==="
			wget -q https://github.com/etcd-io/etcd/releases/download/${ETCD_VERSION}/etcd-${ETCD_VERSION}-linux-amd64.tar.gz
			tar -xzf etcd-${ETCD_VERSION}-linux-amd64.tar.gz
			cd etcd-${ETCD_VERSION}-linux-amd64
			sudo mv etcd etcdctl /usr/local/bin/
			cd ..
			rm -rf etcd-${ETCD_VERSION}-linux-amd64*

			echo "✅ etcd 已安装完成:$(etcd --version | head -n 1)"

			echo "=== [4/8] 创建 etcd 用户与目录 ==="
			sudo useradd -r -s /sbin/nologin $ETCD_USER || true
			sudo mkdir -p $ETCD_DATA_DIR $ETCD_CONF_DIR
			sudo chown -R $ETCD_USER:$ETCD_USER $ETCD_DATA_DIR $ETCD_CONF_DIR
			sudo chmod 700 $ETCD_DATA_DIR

			echo "=== [5/8] 生成 systemd 服务文件 ==="
			sudo bash -c "cat > $SYSTEMD_FILE" <<EOF
			[Unit]
			Description=etcd key-value store
			Documentation=https://etcd.io/docs/
			After=network.target

			[Service]
			User=$ETCD_USER
			Type=notify
			ExecStart=/usr/local/bin/etcd \\
			  --name default \\
			  --data-dir $ETCD_DATA_DIR \\
			  --listen-client-urls http://0.0.0.0:2379 \\
			  --advertise-client-urls http://127.0.0.1:2379 \\
			  --listen-peer-urls http://0.0.0.0:2380 \\
			  --initial-advertise-peer-urls http://127.0.0.1:2380 \\
			  --initial-cluster default=http://127.0.0.1:2380 \\
			  --initial-cluster-token etcd-cluster-01 \\
			  --initial-cluster-state new
			Restart=on-failure
			LimitNOFILE=40000

			[Install]
			WantedBy=multi-user.target
			EOF

			echo "✅ systemd 配置文件已生成:$SYSTEMD_FILE"

			echo "=== [6/8] 启动并设置开机自启 ==="
			sudo systemctl daemon-reload
			sudo systemctl enable etcd
			sudo systemctl start etcd

			echo "=== [7/8] 检查服务状态 ==="
			sudo systemctl status etcd --no-pager

			echo "=== [8/8] 验证 etcd 功能 ==="
			sleep 3
			/usr/local/bin/etcdctl put hello "Ubuntu 24.04 Installed"
			/usr/local/bin/etcdctl get hello

			echo ""
			echo "✅ etcd 安装与配置成功!"
			echo "🔹 服务文件: $SYSTEMD_FILE"
			echo "🔹 数据目录: $ETCD_DATA_DIR"
			echo "🔹 客户端端口: 2379"
			echo "🔹 日志查看: sudo journalctl -u etcd -f"
			echo ""
			echo "完成时间: $(date)"

参考:

官方安装说明

			https://etcd.io/docs/v3.5/install
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。