03、Etcd 客户端常用命令
上一讲我们安装 etcd 服务端,这一讲我们来一起学学如何使用 etcd 客户端常见的命令。文章内容来源于参考资料,如若侵权,请联系删除,谢谢。
etcd可通过客户端命令行工具 etcdctl 对etcd进行请求操作
# 帮助命令,会列出所有的命令和选项,在记不太清命令的时候,可以使用
etcdctl ‐h
# 对某个命令进行更加详细的介绍
etcdctl put -h
这里给大家推荐一个小巧的 etcd 的可视化工具:ETCD Keeper。平常开发过程中使用还是比较方便的。
1、etcdctl 常见命令
1.1 键操作
键操作包括最常用的增删改查操作,包括PUT、GET、DELETE等命令。注意:etcd 中 PUT 当 key 不存在是新增,当 key 存在时是修改。
# PUT 新增或者修改某个键的值
etcdctl put /stu/name /xiaole
#GET获取指定键的值
etcdctl get /stu/name
#以16进制格式返回
etcdctl get /stu/name ‐‐hex
#获取key范围内的值 半开区间:左闭右开
etcdctl get /stu/name /xiaole3
#获取指定前缀的值 可以使用选项 ‐‐limit 限制返回的key数量。
etcdctl get ‐‐prefix /stu/name
etcdctl get ‐‐prefix /stu/name ‐‐limit3
#按key的字典顺序读取
#读取字典顺序大于或等于 name2 的key:
etcdctl get ‐‐from‐key name2
# etcd可通过读取一个key来获取当前etcd服务端的版本号,不管key是否存在
etcdctl get /stu ‐w=json
#访问以前版本的key
etcdctl get ‐‐rev=8 /test/name #访问第8个版本的key
返回结果字段解析:
cluster_id: 请求的etcd集群ID。
member_id: 请求的etcd节点ID。
revision: etcd 服务端当前
全局数据版本号。对任一 key 的 put 或 delete 操作都会使revision自增1。revision=1 是 etcd 的保留版本号,因此用户的key版本号将从2开始。raft_term: etcd当前raft
主节点任期号。create_revision: 当前 key 创建时全
局数据版本号revision的值。mod_revision: 当前key最后一次修改时
全局数据版本号revision的值。version: 当前key的数据版本号。
key创建时 version为1,对当前key进行put操作会使version自增1,将key删除后,重新创建,version又会从1开始计数。
# 删除一个键或者特定范围的键
etcdctl del /aaa/bbb
etcdctl del /test/name /test/name3
#可以通过选项 ‐‐prev‐kv 让命令返回对应的值
etcdctl del ‐‐prev‐kv name1
1.2 watch 操作
watch 监测一个键值的变化,一旦键值发生更新,就会输出最新的值并退出
etcdctl watch /test/name
另一个终端输入 etcdctl put /test/name fox
1.3 lease(租约)操作
类似 redis 的 TTL,etcd 中的键值对可以绑定到租约上,实现存活周期控制。应用客户端可以 为 etcd 集群里面的键授予租约,一旦租约的TTL到期,租约就会过期并且所有附带的键都将被删除
# 授予租约 TTL 为30s
etcdctl lease grant 30
#将 key 与 租约进行绑定
etcdctl put ‐‐lease=705b8474d1acd63b name fox
当然,应用通过租约ID可以撤销租约。撤销租约将删除所有附带的key
#撤销租约
etcdctl lease revoke 705b8474d1acd641
应用程序可以通过刷新其TTL保持租约存活,因此不会过期
# 刷新租约
etcdctl lease keep-alive 705b8474d1acd63b
应用客户端可以查询租约信息,检查续订或租约的状态,是否存在或者是否已过期
# 查询租约
etcdctl lease timetolive 705b8474d1acd647
etcdctl lease timetolive ‐‐keys 705b8474d1acd647
# 查看 etcd 的 revision 等信息
etcdctl endpoint status --write-out="json" --endpoints=localhost:12380
# 查看 etcd 那个节点是 leader
etcdctl -w table --endpoints=localhost:12380 endpoint status --cluster
1.4 compact 操作
# 查看告警信息,告警信息一般 memberID:8630161756594109333 alarm:NOSPACE
etcdctl --endpoints=http://127.0.0.1:2379 alarm list
# 获取当前版本
rev=$(etcdctl --endpoints=http://127.0.0.1:2379 endpoint status --write-out="json" | egrep -o '"revision":[0-9]*' | egrep -o '[0-9].*')
# 压缩掉所有旧版本
etcdctl --endpoints=http://127.0.0.1:2379 compact $rev
# 整理多余的空间
etcdctl --endpoints=http://127.0.0.1:2379 defrag
# 取消告警信息
etcdctl --endpoints=http://127.0.0.1:2379 alarm disarm
注意,compact 和 defrag 时, 都需要把集群中的所有 endpoint 添加上去, 否则不会减少磁盘空间

2、etcd权限管理
2.1 权限常用命令
2.1.1 用户管理
# 创建用户
etcdctl user add fox
# 删除用户
etcdctl user del fox
#修改密码
etcdctl user passwd fox
#查看所有用户
etcdctl user list
#查看指定用户及绑定角色
etcdctl user get fox
2.1.2 角色管理
# 创建角色
etcdctl role add test
# 给角色赋权,可读/可写/可读写
etcdctl grant‐permission role_name [read|write|readwrite] /name
# 回收角色赋权
etcdctl role revoke‐permission role_name /name
#删除角色
etcdctl role del test
#查询角色列表
etcdctl role list
#查询指定角色的权限
etcdctl role get test
#用户绑定角色
etcdctl user grant‐role 用户名 角色名
#回收用户绑定权限
etcdctl user revoke‐role 用户名 角色名
# 开启权限
etcdctl user add root
#root用户存在时才能开启权限控制
etcdctl auth enable
# 查看用户列表
etcdctl user list ‐‐user=root
# 权限使用
etcdctl ‐‐user='用户名' ‐‐password='密码' get /name
2.2 集群权限管理
2.2.1 root用户
root 用户是 etcd 默认就有的用户,拥有所有的权限
# root用户自带所有权限,因此只需创建该用户,开启认证即有所有权限
etcdctl ‐‐endpoints http://127.0.0.1:12379,http://127.0.0.1:22379,http://127.0.0.1:32379 user add root
# 开启身份验证
etcdctl ‐‐user='root' ‐‐password='123456' ‐‐endpoints http://127.0.0.1:12379,http://127.0.0.1:22379,http://127.0.0.1:32379 auth enable
# 操作
etcdctl ‐‐user='root' ‐‐password='123456' put name fox
etcdctl ‐‐user='root' ‐‐password='123456' get name
2.2.2 普通用户
# 创建普通用户
etcdctl ‐‐user='root' ‐‐password='123456' ‐‐endpoints http://127.0.0.1:12379,http://127.0.0.1:22379,http://127.0.0.1:32379 user add fox
# 创建角色
etcdctl‐‐user='root'‐‐password='123456'‐‐endpointshttp://127.0.0.1:12 379,http://127.0.0.1:22379,http://127.0.0.1:32379 role add test
# 用户绑定角色
etcdctl ‐‐user='root' ‐‐password='123456' ‐‐endpoints http://127.0.0.1:12
379,http://127.0.0.1:22379,http://127.0.0.1:32379 user grant‐role fox test
# 给角色赋权
etcdctl ‐‐user='root' ‐‐password='123456' ‐‐endpoints http://127.0.0.1:12379,http://127.0.0.1:22379,http://127.0.0.1:32379 role grant‐permission test readwrite /name
参考资料:
bilibili视频教程
ETCD数据空间压缩清理
03、Etcd 客户端常用命令的更多相关文章
- linux svn客户端 常用命令
查看文件或者目录状态: [root@v01 ~]# svn status online/ #正常情况下没显示 [root@v01 ~]# svn status online/ #如果有变动会有如下显示 ...
- SVN客户端常用命令
1. 将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如: cd /home/www #进入准备获取的项目路径 svn checkout svn: ...
- ETCD的常用命令
Note that any key that was created using the v2 API will not be able to be queried via the v3 API. A ...
- 锐捷linux客户端常用命令(主要用来连接校园网或公司局域网)
锐捷访问校园网,.sh脚本文件rjsu*.sh-u 用户名-P 密码-S 参数1保存密码参数0不保存密码 其实: 直接使用md5认证方式输入用户名密码并且配置好ip之后,重新打开网卡即可有一定 ...
- oozie 客户端常用命令
1.提交作业,作业进入PREP状态 oozie job -oozie http://localhost:11000/oozie -config job.properties -submit job: ...
- [sqoop1.99.7] sqoop入门-下载、安装、运行和常用命令
一.简介 Apache Sqoop is a tool designed for efficiently transferring data betweeen structured, semi-str ...
- SVN常用命令说明
本文转载至 http://www.blogjava.net/jasmine214--love/archive/2011/01/12/342839.html :1.5 及更新版本 名词说明: WC:W ...
- SVN常用命令说明(转载)
转自:http://www.blogjava.net/jasmine214--love/archive/2011/01/12/342839.html /** * 转载请注明作者longdick htt ...
- ZooKeeper 06 - ZooKeeper 的常用命令
目录 1 - 服务端常用命令 2 - 客户端常用命令 3 - 常用四字命令 4 - ZooKeeper 日志的可视化 版权声明 若要部署 ZooKeeper 单机环境,请查看此篇:https://ww ...
- ETCD快速入门-03 常用命令
3. ETCD 常用命令 etcdctl是一个命令行的客户端,它提供了一些命令,可以方便我们在对服务进行测试或者手动修改数据库内容.etcdctl与kubectl和systemctl的命令原理 ...
随机推荐
- 通过浪潮服务器序列号查询硬件配置以及CPU的价格
最近想知道具体CPU的配置和价格. 发现可以使用如此方式进行查询 https://www.intel.cn/content/www/cn/zh/products/details/processors/ ...
- Linux策略路由详解
概述 在Linux中,我们通常使用route命令来做路由信息的管理.但是该命令仅仅只能用于基本路由信息的管理,面对功能更加强大的基于策略的路由机制,route命令就显得捉襟见肘.在传统路由算法中,只能 ...
- 开源IM项目OpenIM每周迭代版本发布-群管理 阅后即焚等-v2.0.6
新特性介绍 OpenIM每周五发布新版,包括新特性发布,bug修复,同时合并PR,解决issue等 一个完善的IM系统,非常复杂,功能繁多,需求不一,比如对象存储有云端oss,cos,s3,私有化存储 ...
- 人工智能自然语言处理:N-gram和TF-IDF模型详解
人工智能自然语言处理:N-gram和TF-IDF模型详解 1.N-gram 模型 N-Gram 是一种基于统计语言模型的算法.它的基本思想是将文本里面的内容按照字节进行大小为 N 的滑动窗口操作,形成 ...
- python入门之后须掌握的知识点(excel文件处理+邮件发送+实战:批量化发工资条)【二】
相关文章: python处理Excel实现自动化办公教学(含实战)[一] python处理Excel实现自动化办公教学(含实战)[二] python处理Excel实现自动化办公教学(数据筛选.公式操作 ...
- Tomcat8安装手记
Tomcat安装虽然简单,稍不注意,就会坠入万丈深渊,记录痛苦的安装经历. 首先先介绍一下安装条件和正确的安装方式. 安装条件 系统已经安装jdk(前提) tomcat8压缩包 (可以去官网下载 或者 ...
- 三星发布990 EVO SSD:同时支持PCIe 4.0和PCIe 5.0
1月8日消息,三星发布了新款产品--990 EVO SSD,这是首款同时支持了PCIe 4.0 x4及PCIe 5.0 x2通道的SSD. 据了解,990 EVO面向中端市场,为2280 M.2规格, ...
- 一篇学会软硬链接|快捷方式|操作系统|centos7
前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助. 高质量博客汇总https://blog.cs ...
- docker容器-乌班图安装vim
apt-get update && apt-get install -y vim
- 优化利器In-Memory开启和效果
本文主要介绍Oracle In-Memory 选件,Oracle在12.1.0.2就已经推出了In-Memory这个选件,现在通常会建议所有使用19.8及之后版本的用户,有条件都要留给In-memor ...