etcdctl 是 etcd 的命令行客户端工具,etcd 是一个分布式可靠的键值存储。此命令行接口提供了广泛的命令来与 etcd 集群进行交互,用于操作键值对、管理集群成员、处理身份验证、执行维护任务以及利用分布式并发原语。
有关程序化客户端 API 的信息,请参阅 客户端 API。
来源
来源
etcdctl 可以使用命令行标志和环境变量进行配置。环境变量的形式为 ETCDCTL_<FLAG_NAME>,其中连字符 (-) 被下划线 (_) 取代。
| 标志 | 环境变量 | 默认 | 描述 |
|---|---|---|---|
--endpoints | ETCDCTL_ENDPOINTS | 127.0.0.1:2379 | etcd 服务器端点的逗号分隔列表 |
--dial-timeout | ETCDCTL_DIAL_TIMEOUT | 2秒 | 客户端连接超时 |
--command-timeout | ETCDCTL_COMMAND_TIMEOUT | 5秒 | 短运行命令超时 |
--insecure-transport | ETCDCTL_INSECURE_TRANSPORT | true | 禁用传输安全 |
--insecure-skip-tls-verify | ETCDCTL_INSECURE_SKIP_TLS_VERIFY | false | 跳过服务器证书验证 |
--cacert | ETCDCTL_CACERT | 使用此 CA 捆绑包验证证书 | |
--cert | ETCDCTL_CERT | 使用此 TLS 证书文件标识安全客户端 | |
--key | ETCDCTL_KEY | 使用此 TLS 密钥文件标识安全客户端 | |
--user | ETCDCTL_USER | 用于身份验证的用户名[:密码] | |
--write-out | ETCDCTL_WRITE_OUT | simple | 输出格式 (fields, json, protobuf, simple, table) |
--hex | ETCDCTL_HEX | false | 将字节字符串打印为十六进制编码字符串 |
来源
etcdctl 提供用于管理 etcd 中键值数据的命令。
将值分配给一个键。
etcdctl put [options] <key> <value>
选项
--lease: 要附加到键的 Lease ID--prev-kv: 返回修改前的上一个键值对--ignore-value: 使用其当前值更新键--ignore-lease: 使用其当前 Lease 更新键来源
检索键或键范围的值。
etcdctl get [options] <key> [range_end]
选项
--hex: 将键和值打印为十六进制编码字符串--limit: 最大结果数--prefix: 获取具有匹配前缀的键--from-key: 获取大于或等于给定键的键--order: 结果顺序 (ASCEND 或 DESCEND)--sort-by: 排序目标 (CREATE, KEY, MODIFY, VALUE, VERSION)--rev: 指定 kv 版本--consistency: 可线性化 (l) 或可序列化 (s)--keys-only: 只获取键来源
删除一个键或键范围。
etcdctl del [options] <key> [range_end]
选项
--prefix: 删除具有匹配前缀的键--prev-kv: 返回已删除的键值对--from-key: 删除大于或等于给定键的键来源
将多个操作作为单个原子事务执行。
etcdctl txn [options]
选项
--interactive: 通过交互式提示输入事务事务格式包括
来源
监视键或前缀的变化。
etcdctl watch [options] [key or prefix] [range_end] [--] [exec-command arg1 arg2 ...]
选项
--hex: 将键和值打印为十六进制编码字符串--interactive: 开始一个交互式监视会话--prefix: 监视前缀--prev-kv: 获取事件前的上一个键值对--rev: 开始监视的版本来源
Lease 是带有时间限制的键,可以附加到键上。
创建具有指定生存时间的新 Lease。
etcdctl lease grant <ttl>
来源
销毁 Lease 并删除附加的键。
etcdctl lease revoke <leaseID>
来源
检索 Lease 信息。
etcdctl lease timetolive <leaseID> [options]
选项
--keys: 获取附加到此 Lease 的键来源
列出所有活动的 Lease。
etcdctl lease list
来源
刷新 Lease 以防止过期。
etcdctl lease keep-alive [options] <leaseID>
选项
--once: 将 KeepAlive 时间重置为其原始值并立即退出来源
用于管理 etcd 集群成员和状态的命令。
提供管理 etcd 集群成员的命令。
将新成员添加到集群。
etcdctl member add <memberName> [options]
选项
--peer-urls: 与新成员关联的 URL 列表,用逗号分隔--learner: 将成员添加为学习者(不参与投票)来源
将成员从集群中移除。
etcdctl member remove <memberID>
来源
更新现有成员的 peer URL。
etcdctl member update <memberID> [options]
选项
--peer-urls: 要更新成员的 URL 列表,用逗号分隔来源
列出集群中的所有成员。
etcdctl member list [options]
选项
--consistency: 可线性化 (l) 或可序列化 (s)来源
将学习者成员提升为投票成员。
etcdctl member promote <memberID>
来源
提供查询 endpoint 状态的命令。
检查 endpoint 的健康状况。
etcdctl endpoint health [options]
选项
--cluster: 从集群成员列表中获取并使用所有 endpoint来源
检索 endpoint 状态。
etcdctl endpoint status [options]
选项
--cluster: 从集群成员列表中获取并使用所有 endpoint来源
检索每个 endpoint 的 KV 存储的哈希值。
etcdctl endpoint hashkv [options]
选项
--cluster: 从集群成员列表中获取并使用所有 endpoint--rev: 要哈希的最大修订版本来源
管理 etcd 快照的命令。
拍摄 etcd 后端数据库的瞬时快照。
etcdctl snapshot save <filename>
来源
对 etcd 成员的存储进行碎片整理。
etcdctl defrag [options]
选项
--cluster: 对集群中的所有成员进行碎片整理来源
丢弃所有早于指定修订版本的 etcd 事件历史。
etcdctl compaction [options] <revision>
选项
--physical: 等待碎片整理完成以物理删除旧版本来源
提供管理 etcd 告警的命令。
解除所有告警。
etcdctl alarm disarm
来源
列出所有告警。
etcdctl alarm list
来源
将领导权从 Leader 转移到集群中的另一个成员。
etcdctl move-leader <target-member-id>
来源
管理集群范围内的降级到之前的小版本。
etcdctl downgrade <validate|enable|cancel> [options]
来源
etcdctl 提供分布式并发原语。
获取一个给定名称的分布式互斥锁。
etcdctl lock [options] <lockname> [command arg1 arg2 ...]
选项
--ttl: 锁会话的秒数锁的持有状态会一直保持,直到 etcdctl 终止或指定的命令完成。
来源
参与领导者选举。
etcdctl elect [options] <election-name> [proposal]
选项
--listen: 观察选举,而不是参与来源
管理 etcd 认证系统的命令。
启用或禁用认证。
etcdctl auth <enable|disable|status>
来源
管理 etcd 的 RBAC 系统中的角色。
创建新角色。
etcdctl role add <role-name>
来源
列出详细的角色信息。
etcdctl role get <role-name>
来源
删除角色。
etcdctl role delete <role-name>
来源
列出所有角色。
etcdctl role list
来源
授予角色键权限。
etcdctl role grant-permission [options] <role-name> <permission-type> <key> [end-key]
选项
--prefix: 授予前缀权限--from-key: 授予大于或等于给定键的键的权限来源
撤销角色的键权限。
etcdctl role revoke-permission <role-name> <permission-type> <key> [end-key]
选项
--prefix: 撤销前缀权限--from-key: 撤销大于或等于给定键的键的权限来源
管理 etcd 认证系统中的用户。
创建用户。
etcdctl user add <user-name or user:password> [options]
选项
--interactive: 从标准输入读取密码,而不是通过交互式终端来源
列出详细的用户信息。
etcdctl user get <user-name>
来源
删除用户。
etcdctl user delete <user-name>
来源
列出所有用户。
etcdctl user list
来源
授予用户角色。
etcdctl user grant-role <user-name> <role-name>
来源
撤销用户的角色。
etcdctl user revoke-role <user-name> <role-name>
来源
etcdctl 支持多种输出格式,可以通过 `--write-out` 标志指定。
默认输出格式,每对键值对一行。
以 JSON 对象格式输出。
显式标记每个字段的输出。
以 ASCII 表格格式输出(针对某些命令)。
来源
etcdctl 提供用于检查 etcd 集群性能和运行状况的工具。
检查 etcd 集群的性能。
etcdctl check perf [options]
选项
--load: 工作负载模型(s, m, l, xl)--prefix: 性能检查的键前缀--auto-compact: 测试后自动压缩存储--auto-defrag: 测试后自动碎片整理存储来源
检查不同工作负载的内存使用情况。
etcdctl check datascale [options]
选项
--load: 工作负载模型(s, m, l, xl)--prefix: 数据规模检查的键前缀--auto-compact: 测试后自动压缩存储--auto-defrag: 测试后自动碎片整理存储来源
将一个 etcd 键值存储镜像到另一个 etcd 集群。
etcdctl make-mirror [options] <destination>
选项
--prefix: 要镜像的键前缀--dest-prefix: 目标键前缀--no-dest-prefix: 镜像到目标集群的根目录来源
etcdctl 是一个使用 cobra 命令行库进行命令处理,并使用 etcd v3 客户端库 (clientv3) 与 etcd 服务器通信的 Go 程序。
来源
etcdctl 首先使用 cobra 库解析命令行参数,然后构建一个配置了指定选项的 clientv3.Client,通过客户端执行请求的操作,最后使用适当的打印程序格式化输出。
除了命令行标志,etcdctl 还可以通过环境变量进行配置。大多数命令行标志都有对应的环境变量,前缀为 ETCDCTL_,连字符(-)转换为下划线(_)。
例如
--endpoints 对应 ETCDCTL_ENDPOINTS--dial-timeout 对应 ETCDCTL_DIAL_TIMEOUT来源
刷新此 Wiki
最后索引时间2025 年 4 月 18 日(be71a8)