Browse Source

Merge pull request #5073 from heyitsanthony/etcdctl-docs

doc: document many etcdctl commands
Anthony Romano 9 years ago
parent
commit
e913792d0f
1 changed files with 283 additions and 2 deletions
  1. 283 2
      etcdctl/READMEv3.md

+ 283 - 2
etcdctl/READMEv3.md

@@ -281,8 +281,221 @@ foo
 bar
 ```
 
+### LEASE \<subcommand\>
+
+LEASE provides commands for key lease management.
+
+### LEASE GRANT \<ttl\>
+
+LEASE GRANT creates a fresh lease with a server-selected time-to-live in seconds
+greater than or equal to the requested TTL value.
+
+#### Return value
+
+- On success, prints a message with the granted lease ID.
+
+- On failure, prints an error message and returns with a non-zero exit code.
+
+#### Example
+
+```bash
+./etcdctl lease grant 10
+lease 32695410dcc0ca06 granted with TTL(10s)
+```
+
+### LEASE REVOKE \<leaseID\>
+
+LEASE REVOKE destroys a given lease, deleting all attached keys.
+
+#### Return value
+
+- On success, prints a message indicating the lease is revoked.
+
+- On failure, prints an error message and returns with a non-zero exit code.
+
+#### Example
+
+```bash
+./etcdctl lease revoke 32695410dcc0ca06
+lease 32695410dcc0ca06 revoked
+```
+
+### LEASE KEEP-ALIVE \<leaseID\>
+
+LEASE KEEP-ALIVE periodically refreshes a lease so it does not expire.
+
+#### Return value
+
+- On success, prints a message for every keep alive sent.
+
+- On failure, returns a non-zero exit code if a keep-alive channel could not be established. Otherwise, prints a message indicating the lease is gone.
+
+#### Example
+```bash
+/etcdctl lease keep-alive 32695410dcc0ca0
+lease 32695410dcc0ca0 keepalived with TTL(100)
+lease 32695410dcc0ca0 keepalived with TTL(100)
+lease 32695410dcc0ca0 keepalived with TTL(100)
+...
+```
+
+
+### MEMBER \<subcommand\>
+
+MEMBER provides commands for managing etcd cluster membership.
+
+### MEMBER ADD \<memberName\>
+
+MEMBER ADD introduces a new member into the etcd cluster as a new peer.
+
+#### Options
+
+- peerURLs -- comma separated list of URLs to associate with the new member.
+
+#### Return value
+
+- On success, prints the member ID of the new member and the cluster ID.
+
+- On failure, prints an error message and returns with a non-zero exit code.
+
+#### Example
+
+```bash
+./etcdctl member add newMember --peerURLs=https://127.0.0.1:12345
+Member 2be1eb8f84b7f63e added to cluster ef37ad9dc622a7c4
+```
+
+
+### MEMBER UPDATE \<memberID\>
+
+MEMBER UPDATE sets the peer URLs for an existing member in the etcd cluster.
+
+#### Options
+
+- peerURLs -- comma separated list of URLs to associate with the updated member.
+
+#### Return value
+
+- On success, prints the member ID of the updated member and the cluster ID.
+
+- On failure, prints an error message and returns with a non-zero exit code.
+
+#### Example
+
+```bash
+./etcdctl member update 2be1eb8f84b7f63e --peerURLs=https://127.0.0.1:11112
+Member 2be1eb8f84b7f63e updated in cluster ef37ad9dc622a7c4
+```
+
+
+### MEMBER REMOVE \<memberID\>
+
+MEMBER REMOVE removes a member of an etcd cluster from participating in cluster consensus.
+
+#### Return value
+
+- On success, prints the member ID of the removed member and the cluster ID.
+
+- On failure, prints an error message and returns with a non-zero exit code.
+
+#### Example
+
+```bash
+./etcdctl member remove 2be1eb8f84b7f63e
+Member 2be1eb8f84b7f63e removed from cluster ef37ad9dc622a7c4
+```
+
+### MEMBER LIST
+
+MEMBER LIST prints the member details for all members associated with an etcd cluster.
+
+#### Return value
+
+##### Simple reply
+
+On success, prints a humanized table of the member IDs, statuses, names, peer addresses, and client addresses. On failure, prints an error message and returns with a non-zero exit code.
+
+##### JSON reply
+
+On success, prints a JSON listing of the member IDs, statuses, names, peer addresses, and client addresses. On failure, prints an error message and returns with a non-zero exit code.
+
+#### Examples
+
+```bash
+./etcdctl member list
++------------------+---------+--------+------------------------+------------------------+
+|        ID        | STATUS  |  NAME  |       PEER ADDRS       |      CLIENT ADDRS      |
++------------------+---------+--------+------------------------+------------------------+
+| 8211f1d0f64f3269 | started | infra1 | http://127.0.0.1:12380 | http://127.0.0.1:2379  |
+| 91bc3c398fb3c146 | started | infra2 | http://127.0.0.1:22380 | http://127.0.0.1:22379 |
+| fd422379fda50e48 | started | infra3 | http://127.0.0.1:32380 | http://127.0.0.1:32379 |
++------------------+---------+--------+------------------------+------------------------+
+```
+
+```bash
+./etcdctl -w json member list
+{"header":{"cluster_id":17237436991929493444,"member_id":9372538179322589801,"raft_term":2},"members":[{"ID":9372538179322589801,"name":"infra1","peerURLs":["http://127.0.0.1:12380"],"clientURLs":["http://127.0.0.1:2379"]},{"ID":10501334649042878790,"name":"infra2","peerURLs":["http://127.0.0.1:22380"],"clientURLs":["http://127.0.0.1:22379"]},{"ID":18249187646912138824,"name":"infra3","peerURLs":["http://127.0.0.1:32380"],"clientURLs":["http://127.0.0.1:32379"]}]}
+```
+
 ## Utility Commands
 
+### ENDPOINT \<subcommand\>
+
+ENDPOINT provides commands for querying individual endpoints.
+
+### ENDPOINT HEALTH
+
+ENDPOINT HEALTH checks the health of the list of endpoints with respect to cluster. An endpoint is unhealthy
+when it cannot participate in consensus with the rest of the cluster.
+
+#### Return value
+
+- If an endpoint can participate in consensus, prints a message indicating the endpoint is healthy.
+
+- If an endpoint fails to participate in consensus, prints a message indicating the endpoint is unhealthy.
+
+#### Example
+
+```bash
+./etcdctl endpoint health
+127.0.0.1:32379 is healthy: successfully committed proposal: took = 2.130877ms
+127.0.0.1:2379 is healthy: successfully committed proposal: took = 2.095242ms
+127.0.0.1:22379 is healthy: successfully committed proposal: took = 2.083263ms
+```
+
+### ENDPOINT STATUS
+
+ENDPOINT STATUS queries the status of each endpoint in the given endpoint list.
+
+#### Return value
+
+##### Simple reply
+
+On success, prints a humanized table of each endpoint URL, ID, version, database size, leadership status, raft term, and raft status. On failure, returns with a non-zero exit code.
+
+##### JSON reply
+
+On success, prints a line of JSON encoding each endpoint URL, ID, version, database size, leadership status, raft term, and raft status. On failure, returns with a non-zero exit code.
+
+#### Examples
+
+```bash
+./etcdctl endpoint status
++-----------------+------------------+-----------+---------+-----------+-----------+------------+
+|    ENDPOINT     |        ID        |  VERSION  | DB SIZE | IS LEADER | RAFT TERM | RAFT INDEX |
++-----------------+------------------+-----------+---------+-----------+-----------+------------+
+| 127.0.0.1:2379  | 8211f1d0f64f3269 | 2.3.0+git | 25 kB   | false     |         2 |      31563 |
+| 127.0.0.1:22379 | 91bc3c398fb3c146 | 2.3.0+git | 25 kB   | false     |         2 |      31563 |
+| 127.0.0.1:32379 | fd422379fda50e48 | 2.3.0+git | 25 kB   | true      |         2 |      31563 |
++-----------------+------------------+-----------+---------+-----------+-----------+------------+
+```
+
+```bash
+./etcdctl -w json endpoint status
+[{"Endpoint":"127.0.0.1:2379","Status":{"header":{"cluster_id":17237436991929493444,"member_id":9372538179322589801,"revision":2,"raft_term":2},"version":"2.3.0+git","dbSize":24576,"leader":18249187646912138824,"raftIndex":32623,"raftTerm":2}},{"Endpoint":"127.0.0.1:22379","Status":{"header":{"cluster_id":17237436991929493444,"member_id":10501334649042878790,"revision":2,"raft_term":2},"version":"2.3.0+git","dbSize":24576,"leader":18249187646912138824,"raftIndex":32623,"raftTerm":2}},{"Endpoint":"127.0.0.1:32379","Status":{"header":{"cluster_id":17237436991929493444,"member_id":18249187646912138824,"revision":2,"raft_term":2},"version":"2.3.0+git","dbSize":24576,"leader":18249187646912138824,"raftIndex":32623,"raftTerm":2}}]
+```
+
+
 ### LOCK \<lockname\>
 
 LOCK acquires a distributed named mutex with a given name. Once the lock is acquired, it will be held until etcdctl is terminated.
@@ -301,7 +514,7 @@ mylock/1234534535445
 
 ```
 
-### Notes
+#### Notes
 
 The lease length of a lock defaults to 60 seconds. If LOCK is abnormally terminated, lock progress may be delayed
 by up to 60 seconds.
@@ -333,12 +546,52 @@ foo
 
 ```
 
-### Notes
+#### Notes
 
 The lease length of a leader defaults to 60 seconds. If a candidate is abnormally terminated, election
 progress may be delayed by up to 60 seconds.
 
 
+### COMPACTION \<revision\>
+
+COMPACTION discards all etcd event history prior to a given revision. Since etcd uses a multiversion concurrency control
+model, it preserves all key updates as event history. When the event history up to some revision is no longer needed,
+all superseded keys may be compacted away to reclaim storage space in the etcd backend database.
+
+#### Return value
+
+- On success, prints the compacted revision and returns a zero exit code.
+
+- On failure, prints an error message and returns with a non-zero exit code.
+
+#### Example
+```bash
+./etcdctl compaction 1234
+compacted revision 1234
+```
+
+### DEFRAG
+
+DEFRAG defragments the backend database file for a set of given endpoints. When an etcd member reclaims storage space
+from deleted and compacted keys, the space is kept in a free list and the database file remains the same size. By defragmenting
+the database, the etcd member releases this free space back to the file system.
+
+#### Return value
+
+- If successfully defragmented an endpoint, prints a message indicating success for that endpoint.
+
+- If failed defragmenting an endpoint, prints a message indicating failure for that endpoint.
+
+- DEFRAG returns a zero exit code only if it succeeded defragmenting all given endpoints.
+
+#### Example
+```bash
+./etcdctl --endpoints=localhost:2379,badendpoint:2379 defrag
+Finished defragmenting etcd member[localhost:2379]
+Failed to defragment etcd member[badendpoint:2379] (grpc: timed out trying to connect)
+```
+
+
 ### MAKE-MIRROR [options] \<destination\>
 
 [make-mirror][mirror] mirrors a key prefix in an etcd cluster to a destination etcd cluster.
@@ -435,6 +688,34 @@ bin/etcd --name sshot2 --listen-client-urls http://127.0.0.1:22379 --advertise-c
 bin/etcd --name sshot3 --listen-client-urls http://127.0.0.1:32379 --advertise-client-urls http://127.0.0.1:32379 --listen-peer-urls http://127.0.0.1:32380 &
 ```
 
+### SNAPSHOT STATUS \<filename\>
+
+SNAPSHOT STATUS lists information about a given backend database snapshot file.
+
+#### Return value
+
+##### Simple Reply
+
+On success, prints a humanized table of the database hash, revision, total keys, and size. On failure, return with a non-zero exit code.
+
+##### JSON reply
+
+On success, prints a line of JSON encoding the database hash, revision, total keys, and size. On failure, return with a non-zero exit code.
+
+#### Examples
+```bash
+./etcdctl snapshot status file.db
++----------+----------+------------+------------+
+|   HASH   | REVISION | TOTAL KEYS | TOTAL SIZE |
++----------+----------+------------+------------+
+| cf1550fb |        3 |          3 | 25 kB      |
++----------+----------+------------+------------+
+```
+
+```bash
+./etcdctl -write-out=json snapshot status file.db
+{"hash":3474280699,"revision":3,"totalKey":3,"totalSize":24576}
+```
 
 ## Notes