元素码农
基础
UML建模
数据结构
算法
设计模式
网络
TCP/IP协议
HTTPS安全机制
WebSocket实时通信
数据库
sqlite
postgresql
clickhouse
后端
rust
go
java
php
mysql
redis
mongodb
etcd
nats
zincsearch
前端
浏览器
javascript
typescript
vue3
react
游戏
unity
unreal
C++
C#
Lua
App
android
ios
flutter
react-native
安全
Web安全
测试
软件测试
自动化测试 - Playwright
人工智能
Python
langChain
langGraph
运维
linux
docker
工具
git
svn
🌞
🌙
目录
▶
初识etcd
分布式系统基础
etcd核心特性
▶
环境搭建
单机安装指南
多平台部署
▶
核心概念
键值存储原理
租约机制解析
Watch机制
▶
基础操作
数据读写操作
命令行工具使用
客户端连接
▶
集群实践
集群搭建指南
节点通信原理
成员管理
▶
维护监控
备份与恢复
监控指标解读
日志分析
▶
应用场景
分布式锁实现
服务发现实践
配置中心应用
发布时间:
2025-04-07 13:57
↑
☰
# etcd单机安装指南 ## 简介 本文将详细介绍如何在单机环境下安装和配置etcd。我们将覆盖多种安装方式,并提供基本的配置说明,帮助你快速搭建一个可用的etcd服务。 ## 安装前准备 ### 系统要求 - 操作系统:支持Linux、macOS、Windows - 内存:至少2GB RAM - 磁盘:建议SSD,至少1GB可用空间 - 网络:稳定的网络连接 ### 下载地址 你可以从以下地址获取etcd: - GitHub发布页:https://github.com/etcd-io/etcd/releases - 官方镜像:https://quay.io/repository/coreos/etcd ## 安装方式 ### 1. 二进制安装 这是最直接的安装方式,适用于所有平台。 ```bash # 下载最新版本 VERSION="v3.5.9" # 替换为最新版本 OS="darwin" # linux, darwin, windows ARCH="amd64" # amd64, arm64 # 下载并解压 wget https://github.com/etcd-io/etcd/releases/download/${VERSION}/etcd-${VERSION}-${OS}-${ARCH}.tar.gz tar xzvf etcd-${VERSION}-${OS}-${ARCH}.tar.gz cd etcd-${VERSION}-${OS}-${ARCH} # 移动二进制文件到系统路径 sudo mv etcd etcdctl /usr/local/bin/ ``` ### 2. 包管理器安装 #### macOS (使用Homebrew) ```bash brew install etcd ``` #### Linux (使用apt) ```bash sudo apt update sudo apt install etcd ``` ### 3. Docker安装 ```bash # 拉取镜像 docker pull quay.io/coreos/etcd:v3.5.9 # 运行容器 docker run -d \ --name etcd \ -p 2379:2379 \ -p 2380:2380 \ quay.io/coreos/etcd:v3.5.9 \ /usr/local/bin/etcd \ --advertise-client-urls http://0.0.0.0:2379 \ --listen-client-urls http://0.0.0.0:2379 ``` ## 基本配置 ### 配置文件 创建配置文件 `etcd.conf.yml`: ```yaml # 成员配置 name: 'default' data-dir: '/var/lib/etcd' listen-client-urls: 'http://localhost:2379' advertise-client-urls: 'http://localhost:2379' listen-peer-urls: 'http://localhost:2380' initial-advertise-peer-urls: 'http://localhost:2380' # 集群配置 initial-cluster: 'default=http://localhost:2380' initial-cluster-state: 'new' initial-cluster-token: 'etcd-cluster' # 日志配置 log-level: 'info' log-outputs: [stderr] ``` ### 环境变量 可以通过环境变量配置etcd: ```bash export ETCD_LISTEN_CLIENT_URLS="http://localhost:2379" export ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379" ``` ## 启动服务 ### 1. 直接启动 ```bash etcd --config-file etcd.conf.yml ``` ### 2. 系统服务方式(Linux) 创建系统服务文件 `/etc/systemd/system/etcd.service`: ```ini [Unit] Description=etcd key-value store Documentation=https://github.com/etcd-io/etcd After=network.target [Service] User=etcd Type=notify Environment=ETCD_DATA_DIR=/var/lib/etcd Environment=ETCD_NAME=%m ExecStart=/usr/local/bin/etcd Restart=always RestartSec=10s LimitNOFILE=40000 [Install] WantedBy=multi-user.target ``` 启动服务: ```bash sudo systemctl daemon-reload sudo systemctl enable etcd sudo systemctl start etcd ``` ## 验证安装 ### 1. 检查服务状态 ```bash # 使用systemctl(Linux) sudo systemctl status etcd # 或者检查进程 ps aux | grep etcd ``` ### 2. 测试基本功能 ```bash # 写入数据 etcdctl put greeting "Hello, etcd!" # 读取数据 etcdctl get greeting ``` ### 3. 检查集群健康状态 ```bash etcdctl endpoint health ``` ## 常见问题 ### 1. 端口占用 如果2379或2380端口被占用,可以修改配置文件中的端口设置: ```yaml listen-client-urls: 'http://localhost:2479' advertise-client-urls: 'http://localhost:2479' listen-peer-urls: 'http://localhost:2480' ``` ### 2. 权限问题 确保数据目录具有正确的权限: ```bash sudo mkdir -p /var/lib/etcd sudo chown -R etcd:etcd /var/lib/etcd ``` ### 3. 日志查看 ```bash # 系统服务日志 sudo journalctl -u etcd # 或者直接查看日志文件 tail -f /var/log/etcd/etcd.log ``` ## 性能优化 ### 1. 系统参数调整 ```bash # 增加文件描述符限制 sudo ulimit -n 40000 # 调整内核参数 sudo sysctl -w vm.swappiness=10 ``` ### 2. 存储优化 ```yaml # 在配置文件中添加 auto-compaction-retention: '1h' # 自动压缩历史数据 quota-backend-bytes: '8589934592' # 存储大小限制(8GB) ``` ## 总结 本文详细介绍了etcd的单机安装过程,包括多种安装方式、基本配置、启动验证以及常见问题的解决方案。通过按照本指南进行操作,你应该能够成功搭建一个基本的etcd服务。 在实际生产环境中,建议根据具体需求调整配置参数,并确保做好监控和备份。下一章节,我们将介绍如何在不同平台上部署etcd,以及更多高级配置选项。