《etcd 入门与快速上手》

《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 注意事项

阅读 — · 全站 —
🎸 我的歌单 0 首