mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-10 11:54:37 +00:00
Restruct
This commit is contained in:
152
12_orchestration/etcd/etcdctl.md
Normal file
152
12_orchestration/etcd/etcdctl.md
Normal file
@@ -0,0 +1,152 @@
|
||||
## 使用 etcdctl
|
||||
|
||||
`etcdctl` 是一个命令行客户端,它能提供一些简洁的命令,供用户直接跟 `etcd` 服务打交道,而无需基于 `HTTP API` 方式。这在某些情况下将很方便,例如用户对服务进行测试或者手动修改数据库内容。我们也推荐在刚接触 `etcd` 时通过 `etcdctl` 命令来熟悉相关的操作,这些操作跟 `HTTP API` 实际上是对应的。
|
||||
|
||||
`etcd` 项目二进制发行包中已经包含了 `etcdctl` 工具,没有的话,可以从 [github.com/etcd-io/etcd/releases](https://github.com/etcd-io/etcd/releases) 下载。
|
||||
|
||||
`etcdctl` 支持如下的命令,大体上分为数据库操作和非数据库操作两类,后面将分别进行解释。
|
||||
|
||||
```
|
||||
NAME:
|
||||
etcdctl - A simple command line client for etcd3.
|
||||
|
||||
USAGE:
|
||||
etcdctl
|
||||
|
||||
VERSION:
|
||||
3.4.0
|
||||
|
||||
API VERSION:
|
||||
3.4
|
||||
|
||||
|
||||
COMMANDS:
|
||||
get Gets the key or a range of keys
|
||||
put Puts the given key into the store
|
||||
del Removes the specified key or range of keys [key, range_end)
|
||||
txn Txn processes all the requests in one transaction
|
||||
compaction Compacts the event history in etcd
|
||||
alarm disarm Disarms all alarms
|
||||
alarm list Lists all alarms
|
||||
defrag Defragments the storage of the etcd members with given endpoints
|
||||
endpoint health Checks the healthiness of endpoints specified in `--endpoints` flag
|
||||
endpoint status Prints out the status of endpoints specified in `--endpoints` flag
|
||||
watch Watches events stream on keys or prefixes
|
||||
version Prints the version of etcdctl
|
||||
lease grant Creates leases
|
||||
lease revoke Revokes leases
|
||||
lease timetolive Get lease information
|
||||
lease keep-alive Keeps leases alive (renew)
|
||||
member add Adds a member into the cluster
|
||||
member remove Removes a member from the cluster
|
||||
member update Updates a member in the cluster
|
||||
member list Lists all members in the cluster
|
||||
snapshot save Stores an etcd node backend snapshot to a given file
|
||||
snapshot restore Restores an etcd member snapshot to an etcd directory
|
||||
snapshot status Gets backend snapshot status of a given file
|
||||
make-mirror Makes a mirror at the destination etcd cluster
|
||||
migrate Migrates keys in a v2 store to a mvcc store
|
||||
lock Acquires a named lock
|
||||
elect Observes and participates in leader election
|
||||
auth enable Enables authentication
|
||||
auth disable Disables authentication
|
||||
user add Adds a new user
|
||||
user delete Deletes a user
|
||||
user get Gets detailed information of a user
|
||||
user list Lists all users
|
||||
user passwd Changes password of user
|
||||
user grant-role Grants a role to a user
|
||||
user revoke-role Revokes a role from a user
|
||||
role add Adds a new role
|
||||
role delete Deletes a role
|
||||
role get Gets detailed information of a role
|
||||
role list Lists all roles
|
||||
role grant-permission Grants a key to a role
|
||||
role revoke-permission Revokes a key from a role
|
||||
check perf Check the performance of the etcd cluster
|
||||
help Help about any command
|
||||
|
||||
OPTIONS:
|
||||
--cacert="" verify certificates of TLS-enabled secure servers using this CA bundle
|
||||
--cert="" identify secure client using this TLS certificate file
|
||||
--command-timeout=5s timeout for short running command (excluding dial timeout)
|
||||
--debug[=false] enable client-side debug logging
|
||||
--dial-timeout=2s dial timeout for client connections
|
||||
--endpoints=[127.0.0.1:2379] gRPC endpoints
|
||||
--hex[=false] print byte strings as hex encoded strings
|
||||
--insecure-skip-tls-verify[=false] skip server certificate verification
|
||||
--insecure-transport[=true] disable transport security for client connections
|
||||
--key="" identify secure client using this TLS key file
|
||||
--user="" username[:password] for authentication (prompt if password is not supplied)
|
||||
-w, --write-out="simple" set the output format (fields, json, protobuf, simple, table)
|
||||
```
|
||||
|
||||
### 数据库操作
|
||||
|
||||
数据库操作围绕对键值和目录的 CRUD (符合 REST 风格的一套操作:Create)完整生命周期的管理。
|
||||
|
||||
etcd 在键的组织上采用了层次化的空间结构(类似于文件系统中目录的概念),用户指定的键可以为单独的名字,如 `testkey`,此时实际上放在根目录 `/` 下面,也可以为指定目录结构,如 `cluster1/node2/testkey`,则将创建相应的目录结构。
|
||||
|
||||
>注:CRUD 即 Create, Read, Update, Delete,是符合 REST 风格的一套 API 操作。
|
||||
|
||||
#### put
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
$ etcdctl put /testdir/testkey "Hello world"
|
||||
OK
|
||||
```
|
||||
|
||||
#### get
|
||||
|
||||
获取指定键的值。例如
|
||||
|
||||
```bash
|
||||
$ etcdctl put testkey hello
|
||||
OK
|
||||
$ etcdctl get testkey
|
||||
testkey
|
||||
hello
|
||||
```
|
||||
|
||||
支持的选项为
|
||||
|
||||
`--sort` 对结果进行排序
|
||||
|
||||
`--consistent` 将请求发给主节点,保证获取内容的一致性
|
||||
|
||||
#### del
|
||||
|
||||
删除某个键值。例如
|
||||
|
||||
```bash
|
||||
$ etcdctl del testkey
|
||||
1
|
||||
```
|
||||
|
||||
### 非数据库操作
|
||||
|
||||
#### watch
|
||||
|
||||
监测一个键值的变化,一旦键值发生更新,就会输出最新的值。
|
||||
|
||||
例如,用户更新 `testkey` 键值为 `Hello world`。
|
||||
|
||||
```bash
|
||||
$ etcdctl watch testkey
|
||||
PUT
|
||||
testkey
|
||||
2
|
||||
```
|
||||
|
||||
#### member
|
||||
|
||||
通过 `list`、`add`、`update`、`remove` 命令列出、添加、更新、删除 etcd 实例到 etcd 集群中。
|
||||
|
||||
例如本地启动一个 `etcd` 服务实例后,可以用如下命令进行查看。
|
||||
|
||||
```bash
|
||||
$ etcdctl member list
|
||||
422a74f03b622fef, started, node1, http://172.16.238.100:2380, http://172.16.238.100:23
|
||||
```
|
||||
Reference in New Issue
Block a user