etcd基础使用

https://etcd.io/

https://www.etcd.cn/

1 etcd架构

2 特征,使用场景

2.1 特征

使用简单

存储结构是key-value类型

能实时感知变化

权限校验

性能高

集群数据一致性

2.2 使用场景

存储数据

注册中心、配置中心

消息发布订阅

分布式锁

leader选举

适当参考中文网,描述有些夸大

3 部署

3.1 单节点

linux环境的二进制部署

1、下载软件:https://github.com/etcd-io/etcd/releases/

2、复制到你的centos7系统的任意目录

3、解压并配置

4、注册系统服务

5、启动

3.2 集群

集群部署分为仨方式:静态发现、动态发现、DNS发现

1、下载软件:https://github.com/etcd-io/etcd/releases/

2、复制到三台服务器中

3、解压并配置(配置不同了)

4、注册系统服务

5、启动

3.3 可视化控制台(Etcdkeeper)

3.3.1 centos7

1、下载软件:https://github.com/evildecay/etcdkeeper/releases/

2、复制到任意服务器并解压

3、给权限

4、注册系统服务

5、启动并测试:http:192.168.8.137:8080/etcdkeeper

3.3.2 windows

1、下载软件:https://github.com/evildecay/etcdkeeper/releases/

2、复制到任意服务器并解压

3、启动

4 基础操作

4.1 查看命令

输入etcdctl –h可以查看etcdctl的命令,注释如下:

命令 注释 命令 注释 命令 注释
alarm disarm 解除所有的报警 elect 加入leader选举 lease timetolive 获取租约信息
alarm list 列出所有报警 endpoint hashkv 打印指定实例的历史键值对的hash值 lock 获取命名锁
auth disable 禁用Authentication endpoint health 打印指定etcd实例的健康信息 make-mirror 指定一个etcd集群为镜像集群
auth status 返回Authentication状态 endpoint status 打印指定etcd实例的状态信息 member add 为集群增加一个成员
check datascale 对于给定服务实例检查持有数据的存储使用率 get 获取键值对 member list 罗列集群所有成员
check perf 检查集群的性能 help 帮助 member promote 提升集群中的一个non-voting成员
compaction 压缩历史事件 lease grant 创建租约 member remove 移除集群中的成员
auth enable 启用Authentication lease keep-alive 续约 member update 更新集群中的成员信息
del 移除指定的或者范围的键值对 lease list 罗列所有有效的租约 move-leader 替换进群中的leader
defrag 整理存储碎片 lease revoke 撤销租约 put 写入键值对
role add 增加一个角色 role delete 删除一个角色 role get 获取一个角色的详细信息
role grant-permission 给某个角色授予key role list 罗列所有的角色 role revoke-permission 撤销一个角色的key
snapshot restore 恢复快照 snapshot save 存储某个etcd节点的快照到指定位置 snapshot status 获取指定文件的后端快照文件状态
txn 在一个事务内处理所有的请求 user add 增加一个用户 user delete 删除一个用户
user get 获取用户的详细信息 user grant-role 给用户授予角色 user list 罗列所有用户
user passwd 给用户修改密码 user revoke-role 撤销某个用户的角色 version 打印etcd版本
watch 监测指定键或者前缀的事件流

4.2 增、该

命令格式:etcdctl put < key> < value>[options]

Options选项:

⚫ –lease : 设置key所使用的lease ID

⚫ –prev-kv:返回该key修改之前的值

⚫ –ignore-lease:使用当前的lease更新key

⚫ –ignore-value:使用当前的value更新key

4.3 查

命令格式:etcdctl get < key> [options]

Options选项:

⚫ –form-key: 按照字节序,筛选大于或等于的key

⚫ –prefix:筛选以该前缀的key

⚫ –keys-only:只输出key

⚫ –print-value-only:只输出value

⚫ –limit :限制输出条数,当为0时不做限制

⚫ –sort-by <”create”|”key”|”modify”|”value”|”version”>:按照创建时间、键、修改时间、值或版本号排序

⚫ –order <“ascend”|“descend”> :按照升序或降序排列

⚫ –rev :指定 key 的版本。etcd 对 key 的写操作,会更新全局修订版本, 通过指定版本可以读取旧的数据

⚫ –consistency <“l”|“s”> :一致性,默认是 Linearizable,可以设置为 Serializable

4.4 删

命令格式:etcdctl del < key> [options]

Options选项:

⚫ –form-key: 按照字节序,筛选大于或等于的key

⚫ –prefix:筛选以该前缀的key

⚫ –prev-kv:返回该key修改之前的值

⚫ –range:该选项避免删除延迟,默认延迟2s

4.5 watch

命令格式:etcdctl watch < key> [options]

Options选项:

⚫ –prev-kv:返回该key修改之前的值

⚫ –prefix:筛选以该前缀的key

4.6 租约

命令格式:

⚫ etcdctl lease grant :创建租约

⚫ etcdctl lease list:返回说有为过时或未被废弃的租约

⚫ etcdctl lease revoke :废弃租约

⚫ etcdctl lease keep-alive [–once] :周期性续约,–once只续约一次

⚫ etcdctl lease timetolive [–once] [–keys]:获取租约信息,–keys附带关键的key信息


etcd基础使用
http://www.zivjie.cn/2023/04/15/云原生(容器化)/etcd/etcd基础使用/
作者
Francis
发布于
2023年4月15日
许可协议