《etcd 入门与快速上手》
etcd 是分布式高可用的键值存储,常用于服务发现、配置中心与分布式协调(Kubernetes 的存储后端即基于 etcd)。本文介绍安装、启动与 etcdctl 常用操作。
1 etcd 是什么
- 分布式、强一致的键值存储,基于 Raft 共识算法。
- 提供 watch、lease(租约)、TTL(生存期)等原语,支撑服务注册发现与配置下发。
- 官方代码库:https://github.com/etcd-io/etcd
2 安装
2.1 二进制安装
从官方 release 下载对应平台压缩包后解压:
curl -LO https://github.com/etcd-io/etcd/releases/download/v3.5.0/etcd-v3.5.0-linux-amd64.tar.gz
tar -xzf etcd-v3.5.0-linux-amd64.tar.gz
cd etcd-v3.5.0-linux-amd64
cp etcd etcdctl /usr/local/bin/
2.2 Docker 安装
docker run -d --name etcd --publish 2379:2379 --publish 2380:2380 \
quay.io/coreos/etcd:v3.5.0
3 启动单节点
etcd --data-dir /var/lib/etcd --listen-client-urls http://0.0.0.0:2379 \
--advertise-client-urls http://127.0.0.1:2379
# 多节点集群可参考官方 demo(成员注册与发现)
4 etcdctl 常用命令
export ETCDCTL_API=3
# 写入 / 读取
etcdctl put /service/gateway 192.168.1.10:8080
etcdctl get /service/gateway
# 按前缀读取全部
etcdctl get /service/ --prefix
# 删除
etcdctl del /service/gateway
# 监听变更(观察)
etcdctl watch /service/ --prefix
5 租约与 TTL
# 创建一个 30 秒的租约
etcdctl lease grant 30
# 将 key 附着到租约,到期自动删除
etcdctl put /lock/db 1 --lease=<lease-id>
# 续约
etcdctl lease keep-alive <lease-id>
6 快照备份与恢复
etcdctl snapshot save /backup/etcd-snapshot.db
etcdctl snapshot status /backup/etcd-snapshot.db
7 注意事项
- 生产环境至少 3 或 5 节点,多数派不可用则集群不可写。
- 部署时区分单点启动与集群模式,listen 端口 2379(客户端)、2380(peer 通信)。
- 大 key 会产生较大网络开销,建议控制单 key 大小。
- 官方文档入口:https://github.com/etcd-io/etcd/blob/master/Documentation/docs.md、https://github.com/etcd-io/etcd/blob/master/Documentation/demo.md
阅读 —
·
全站 —