ETCD-常用命令介绍

时间:2024-10-13 08:11:40
0.查看etcdctl内部的命令:etcdctl --help
1.查看版本(版本2写法): etcd -version 或者 etcdctl -version(这个可查看api版本,这个可执行文件通常在etcd-v3.3.13-linux-amd64目录下【3.3.13是我这个etcd的版本,自己的版本键入etcd -verision命令可知】,该目录下一般是有etcd和etcdctl这两个可执行文件)
2. 查看成员列表(版本2写法):etcdctl member list(查看集群中的成员)
3. 查看集群状态(版本2写法):etcdctl cluster-health
4. curl(CommandLine Uniform Resource Locator):通过命令行访问url地址,并将内容下载到本地(文件、图片等),如果是文本形式的则直接输出到终端(tip:这只是一个命令行请求url的方式,不属于ETCD的内容)。
5. 查看集群leader的状态:curl http://127.0.0.1:2379/v2/stats/leader(v2是指ETCD的api版本是version2,如果是version3的应该改成v3,下同)
6. 查看自己的状态:curl http://127.0.0.1:2379/v2/stats/self
7. 使用curl设置键值对:curl http://127.0.0.1:2379/v2/keys/键 -XPUT -d value=值(若key不存在则创建value,若key存在则修改value)
8. 使用curl通过key获取value:curl http://127.0.0.1:2379/v2/keys/键 -XGET
9. 使用curl通过key删除value:curl http://127.0.0.1:2379/v2/keys/键 -XDELETE
10. 修改ETCDCTL的api版本:export ETCDCTL_API=3
11. 查看ETCDCTL的api版本(版本3写法):etcdctl version(后面不再是-v或者-verison,这些是版本2的操作符,在改成api版本3之后单纯一个version即可,否则报错)
12. 设置键值对(版本2写法):etcdctl set key value(作用同7)(若key不存在则创建value,若key存在则修改value)
13. 通过key获取value(版本2和版本3写法相同):etcdctl get key(作用同8)
14. 通过key删除value(版本2写法):etcdctl rm key(作用同9)
15. 设置key/value的过期时间(版本2写法):etcdctl set key value -ttl 10 (ttl是time to live-表示生存时间,10表示10秒,即这个key/value的生存期是10秒,在10秒后将被删除)
16. 查看集群中存储的数据(不管在哪个节点中更新数据,在同一个集群内所有的节点都能共享最新的数据状态,因为处于同一个集群内的所有节点是数据共享的,这就是所谓的分布式):
①curl http://127.0.0.1:2379/v2/keys(查看所有的键值对数据)
②curl http://127.0.0.1:2379/v2/keys/key(通过具体的key找到对应的键值对数据)
17.观察者:通过让某个节点处于等待状态(即作为观察者,设定观察某个值得状态,当其他节点对其发生修改的时候将会收到修改(增、删、改)后的信息,当然如果观察的key因为设置超时时间而被删除了,则不会返回任何信息,而只是处于等待状态)
某节点作为观察者方(处于阻塞状态,观察指定数据的变化,一旦发生变化就会收到修改后的信息):
curl http://127.0.0.1:2379/v2/keys/key?wait=true
其他节点操作被观察数据:可直接对该数据做增、删、改,均会让观察者收到修改后的数据信息
18.原子操作(涉及到prevIndex、prevValue、prevExist),在执行增、删、改、查的时候通过这三个字段进行选择判断,如果成立则执行操作,否则爆出操作失败信息。例:
curl http://127.0.0.1:2379/v2/keys/键?prevExist=true -XPUT -d value=值(当键存在时修改其值)
curl http://127.0.0.1:2379/v2/keys/键?prevValue=foo -XDELETE(当键对应的值为foo得时候删除该键值对)
curl http://127.0.0.1:2379/v2/keys/键?prevIndex=100 -XGET(当最新的修改操作的索引为100的时候获取键值对信息)
19.设置键值对(版本3写法):etcdctl put key value(因为版本2和版本3并非完全兼容,因此数据存储的位置不一样,如果使用版本2命令存数据,使用版本3操作数据是操作不到的,因为找不到数据;反之亦然)
20.通过key获取value(版本2和版本3相同):etcdctl get key
21.通过key删除value(版本3写法):etcdctl del key
22.事务操作:在操作之前先设立一个条件,并要求设置成功场景和失败场景,当条件成立时进入成功场景,反之进入失败场景(场景中的操作为get、put、del)
步骤(下面是版本3的写法,版本2的以后遇到事务操作再补充):
①进入事务操作:etcdctl txn --interactive(或者etcdctl txn -i)
②输入判断条件(通过键拿到值,然后与等号右侧的值做相等判断,若相等则进入成功分支,不相等则进入失败分支):value(“键”) = “值”此时会在一个空行等待再次输入判断条件,如果没有判断条件了直接回车进入成功分支设置
③成功分支(和失败分支2选1):有(get、put、del选项),例:get key、put key value、del key
③失败分支(和成功分支2选1):操作同成功分支
23.查看成员列表(版本3写法,作用同2):etcdctl --endpoints=$ENDPOINTS member list
24.观察者(版本3写法,作用同17,但17的是版本2的写法,只能监听一次数据的变化,收到数据变化信息之后退出监听状态;版本3可以一直监听下去,即使收到一次变化结果了依然能够监听下去):让某节点处于阻塞状态,从而监控某个键值对的变化:etcdctl watch 键
25.租约(版本3的概念–这里的租约就相当于一个容器,可以添加若干个键值对,一旦租约到期则所有的键值对将被销毁,表示到期了。简单来说租约设置了一个有效期,即ttl-生存时间,将键值对添加至租约中,就可以由一个租约来约定这些键值对的生存时间。一旦租约到期,则所有的键值对将被统一销毁
①创建一个租约:etcdctl lease grant 10(lease表示租约,是操作租约的命令,10表示生存时间10秒)
②查看租约列表:etcdctl lease list(查看当前存活的租约)
③查看租约的信息:etcdctl lease timetolive leaseID(查看租约信息,主要是租约的设置时间以及剩余时间,leaseID是租约的id)
④删除某个租约:etcdctl lease revoke leaseID(删除指定id的租约)
⑤租约保活:etcdctl lease keep-alive leaseID(让租约恢复到设置的生存时间重新开始倒计时,但并不是只有一次,而是无限次,只要到期就重新刷新生存时间重新开始倒计时)
⑥往租约内注册一个键值对:etcdctl put key value --lease=leaseID(key即键值对的键,value即键值对的值,leaseID即租约id)