etcdctl的使用方法

etcdctl 是由 etcd 提供的命令行工具,用于直接与 etcd 服务器交互。它提供了一系列命令来管理 etcd 集群,包括添加或删除成员、获取或设置值以及监控集群健康等。不同版本之间的具体选项和命令可能略有不同,但以下是 etcdctl 版本 3.5.9 中可用命令的概述。此版本遵循 API v3 语义。

下方会列举命令的使用方法,不同环境根据各自环境进行更改参数

通用用法

etcdctl <命令>

常用命令

  • member

    • add - 向集群中添加成员
    • list - 列出集群中的所有成员
    • remove - 从集群中删除成员
    • update - 更新集群中的成员
    • promote - 提升集群中的非投票成员
  • endpoint

    • health - 检查端点的健康状况
    • status - 打印端点的状态
  • alarm

    • list - 列出所有警报
    • disarm - 解除警报
  • snapshot

    • save - 将 etcd 节点后端快照存储到指定文件
    • restore - 将 etcd 成员快照恢复到 etcd 目录
    • status - 获取给定文件的后端快照状态
  • lease

    • grant - 创建租约
    • revoke - 撤销租约
    • keep-alive - 保持租约活跃
    • list - 列出所有租约
    • timetolive - 获取租约的剩余 TTL
  • put - 将键值放入存储

  • get - 从存储中获取键的值

  • del - 从存储中删除键

  • txn - 在单个事务中处理所有请求

  • compaction - 压缩 etcd 键值存储中的事件历史

  • defrag - 碎片整理指定端点的 etcd 成员的存储

  • watch - 监视键或前缀上的事件流

  • version - 打印 etcdctl 的版本

  • check

    - 检查 etcd 集群的配置和状态

    • perf - 检查 etcd 集群的性能

标志和配置

  • --endpoints - etcd 端点列表
  • --cacert - CA 证书文件的路径
  • --cert - 客户端证书文件的路径
  • --key - 客户端密钥文件的路径
  • --write-out - 设置输出格式(jsonprotobuftablesimple
  • --peer-urls - 对等 URL

设置 ETCDCTL 环境变量

为方便起见,避免对每个命令传递证书,您可以设置环境变量:

  • ETCDCTL_API - API 版本(对于 etcdctl 3.x,默认为 3
  • ETCDCTL_CACERT - CA 证书文件的路径
  • ETCDCTL_CERT - 客户端证书文件的路径
  • ETCDCTL_KEY - 客户端密钥文件的路径
  • ETCDCTL_ENDPOINTS - etcd 端点的逗号分隔列表

示例命令

1. 查看集群成员

列出集群中所有成员的详细信息。

ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
                      --cacert=/path/to/ca.crt \
                      --cert=/path/to/client.crt \
                      --key=/path/to/client.key \
                      member list --write-out=table

2. 添加集群成员

向集群中添加新成员,此命令返回新成员的 ID 和其他信息。

ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
                      --cacert=/path/to/ca.crt \
                      --cert=/path/to/client.crt \
                      --key=/path/to/client.key \
                      member add new-member-name --peer-urls=http://new-member-peer-url:2380

3. 更新集群成员

更新现有集群成员的对等 URL。

ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
                      --cacert=/path/to/ca.crt \
                      --cert=/path/to/client.crt \
                      --key=/path/to/client.key \
                      member update memberID --peer-urls=http://new-member-peer-url:2380

4. 删除集群成员

从集群中移除成员。

ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
                      --cacert=/path/to/ca.crt \
                      --cert=/path/to/client.crt \
                      --key=/path/to/client.key \
                      member remove memberID

5. 检查端点健康

检查集群中所有端点的健康状况。

ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379,https://127.0.0.2:2379 \
                      --cacert=/path/to/ca.crt \
                      --cert=/path/to/client.crt \
                      --key=/path/to/client.key \
                      endpoint health

6. 获取键值

从 etcd 存储中获取键的值。

ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
                      --cacert=/path/to/ca.crt \
                      --cert=/path/to/client.crt \
                      --key=/path/to/client.key \
                      get /path/to/key

7. 设置键值

在 etcd 存储中设置键的值。

ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
                      --cacert=/path/to/ca.crt \
                      --cert=/path/to/client.crt \
                      --key=/path/to/client.key \
                      put /path/to/key "value"

8. 删除键值

从 etcd 存储中删除键。

ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
                      --cacert=/path/to/ca.crt \
                      --cert=/path/to/client.crt \
                      --key=/path/to/client.key \
                      del /path/to/key

9. 创建和撤销租约

创建一个新租约,并使用该租约将键保持活跃状态。

# 创建租约
ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
                      --cacert=/path/to/ca.crt \
                      --cert=/path/to/client.crt \
                      --key=/path/to/client.key \
                      lease grant 60

# 使用租约 ID 保持租约活跃
ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
                      --cacert=/path/to/ca.crt \
                      --cert=/path/to/client.crt \
                      --key=/path/to/client.key \
                      lease keep-alive LEASE_ID
  • 19
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值