简介

etcd分为etcd2和etcd3版本,两个版本之间的api相互不兼容,现在大多数公司都在使用etcd3版本,本文也以etcd3作为演示对象。

etcdctl工具etcd附带的命令行工具,可以很方便的对etcd中的数据进行管理。

etcdctl有两个版本:v2和v3,可以分别使用如下方式来设置版本:

#设置v2版本
export ETCDCTL_API=2
#设置v3版本
export ETCDCTL_API=3

这里我们以只介绍etcdctl v3版本。

配置v3版本

sudo vi ~/.bashrc

#设置etcdctl为v3版本
export ETCDCTL_API=3

#设置etcd的端点信息,即etcd集群的ip:port,以逗号分隔
export ENDPOINTS=10.10.10.45:2379,10.10.10.46:2379,10.10.10.47:2379

常用命令

1)查看版本

查看版本的命令

输入:etcdctl version

2)获取etcd成员列表

输入:etcdctl member list

其中输出信息的格式有fields, json, protobuf, simple, table这几种,通过--write-out指定,这里我试下table格式

输入:etcdctl member list --write-out="table"

3)向etcd中写入kv

etcdctl put key value

例如:etcdctl --endpoints=$ENDPOINTS put web3 'hello world3'

4)向etcd查询数据

#精确查询某个key为web3的数据
etcdctl get web3 

#模糊查询匹配到前缀为web的数据
etcdctl get --prefix web

#模糊查询匹配到前缀为web的key(不返回value)
./etcdctl --prefix --keys-only=true get web

5)删除某个key

etcdctl del key

例如:etcdctl del web1

命令执行后打印的是实际删除的key的数量。

6)租约(ttl,过期时间)

a)查看租约列表

执行:etcdctl lease list

b) 创建一定时间的租约,单位为s:etcdctl lease grant n

执行:etcdctl lease grant 4000

c)为某个KV授予租约(即过期时间):etcdctl put --lease=name key value

执行:etcdctl  put web3 'hello world' --lease=1255775c01ff5f28

d)查看租约信息

执行:etcdctl lease timetolive 1255775c01ff5f28

e)重置租约(相当于重置了剩余过期时间,所有绑定租约的key的剩余过期时间又变成了4000s)

执行:etcdctl lease keep-alive 1255775c01ff5f28

f)撤销租约(租约撤销的同时,被授予租约的KV会被删除)

执行:etcdctl lease revoke 1255775c01ff5f28

 以上就是etcdctl的简单实用,有问题可以在后面留言~

博主:测试生财(一个不为996而996的测开码农)

座右铭:专注测试开发与自动化运维,努力读书思考写作,为内卷的人生奠定财务自由。

内容范畴:技术提升,职场杂谈,事业发展,阅读写作,投资理财,健康人生。

csdn:https://blog.csdn.net/ccgshigao

博客园:https://www.cnblogs.com/qa-freeroad/

51cto:https://blog.51cto.com/14900374

微信公众号:测试生财(定期分享独家内容和资源)