下载:

HTTPS://github.com/etcd-io/etcd/releases/tag/v3.3.13

tar -zxvf etcd-v3.3.13-linux-amd64.tar.gz

启动:

./etcd --listen-client-urls 'http://0.0.0.0:2379' --advertise-client-urls 'http://0.0.0.0:2379'

etc安装和使用(etcd安装和使用)(1)

[root@localhost etcd-v3.3.13-linux-amd64]# ./etcd --listen-client-urls 'http://0.0.0.0:2379' --advertise-client-urls 'htt p://0.0.0.0:2379' 2019-08-03 16:27:40.261923 I | etcdmain: etcd Version: 3.3.13 2019-08-03 16:27:40.262093 I | etcdmain: Git SHA: 98d3084 2019-08-03 16:27:40.262107 I | etcdmain: Go Version: go1.10.8 2019-08-03 16:27:40.262128 I | etcdmain: Go OS/Arch: linux/amd64 2019-08-03 16:27:40.262144 I | etcdmain: setting maximum number of CPUs to 1, total number of available CPUs is 1 2019-08-03 16:27:40.262176 W | etcdmain: no data-dir provided, using default data-dir ./default.etcd 2019-08-03 16:27:40.263503 I | embed: listening for peers on http://localhost:2380 2019-08-03 16:27:40.264070 I | embed: listening for client requests on 0.0.0.0:2379 2019-08-03 16:27:40.273565 I | etcdserver: name = default 2019-08-03 16:27:40.273598 I | etcdserver: data dir = default.etcd 2019-08-03 16:27:40.273607 I | etcdserver: member dir = default.etcd/member 2019-08-03 16:27:40.273613 I | etcdserver: heartbeat = 100ms 2019-08-03 16:27:40.273618 I | etcdserver: election = 1000ms 2019-08-03 16:27:40.273624 I | etcdserver: snapshot count = 100000 2019-08-03 16:27:40.273638 I | etcdserver: advertise client URLs = http://0.0.0.0:2379 2019-08-03 16:27:40.273646 I | etcdserver: initial advertise peer URLs = http://localhost:2380 2019-08-03 16:27:40.273657 I | etcdserver: initial cluster = default=http://localhost:2380 2019-08-03 16:27:40.276843 I | etcdserver: starting member 8e9e05c52164694d in cluster cdf818194e3a8c32 2019-08-03 16:27:40.276890 I | raft: 8e9e05c52164694d became follower at term 0 2019-08-03 16:27:40.276911 I | raft: newRaft 8e9e05c52164694d [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0] 2019-08-03 16:27:40.276919 I | raft: 8e9e05c52164694d became follower at term 1 2019-08-03 16:27:40.281968 W | auth: simple token is not cryptographically signed 2019-08-03 16:27:40.287898 I | etcdserver: starting server... [version: 3.3.13, cluster version: to_be_decided] 2019-08-03 16:27:40.292469 I | etcdserver: 8e9e05c52164694d as single-node; fast-forwarding 9 ticks (election ticks 10) 2019-08-03 16:27:40.293629 I | etcdserver/membership: added member 8e9e05c52164694d [http://localhost:2380] to cluster cdf818194e3a8c32 2019-08-03 16:27:40.378709 I | raft: 8e9e05c52164694d is starting a new election at term 1 2019-08-03 16:27:40.378779 I | raft: 8e9e05c52164694d became candidate at term 2 2019-08-03 16:27:40.378823 I | raft: 8e9e05c52164694d received MsgVoteResp from 8e9e05c52164694d at term 2 2019-08-03 16:27:40.378855 I | raft: 8e9e05c52164694d became leader at term 2 2019-08-03 16:27:40.378876 I | raft: raft.node: 8e9e05c52164694d elected leader 8e9e05c52164694d at term 2 2019-08-03 16:27:40.399670 I | etcdserver: published {Name:default ClientURLs:[http://0.0.0.0:2379]} to cluster cdf818194e3a8c32 2019-08-03 16:27:40.401716 E | etcdmain: forgot to set Type=notify in systemd service file? 2019-08-03 16:27:40.401893 I | etcdserver: setting up the initial cluster version to 3.3 2019-08-03 16:27:40.403708 N | etcdserver/membership: set the initial cluster version to 3.3 2019-08-03 16:27:40.403871 I | etcdserver/api: enabled capabilities for version 3.3 2019-08-03 16:27:40.403922 I | embed: ready to serve client requests 2019-08-03 16:27:40.406114 N | embed: serving insecure client requests on [::]:2379, this is strongly discouraged!

etc安装和使用(etcd安装和使用)(2)

nohup ./etcd --listen-client-urls 'http://0.0.0.0:2379' --advertise-client-urls 'http://0.0.0.0:2379' &

[root@localhost etcd-v3.3.13-linux-amd64]# ./etcdctl

etc安装和使用(etcd安装和使用)(3)

[root@localhost etcd-v3.3.13-linux-amd64]# ./etcdctl NAME: etcdctl - A simple command line client for etcd. WARNING: Environment variable ETCDCTL_API is not set; defaults to etcdctl v2. Set environment variable ETCDCTL_API=3 to use v3 API or ETCDCTL_API=2 to use v2 API. USAGE: etcdctl [global options] command [command options] [arguments...] VERSION: 3.3.13 COMMANDS: backup backup an etcd directory cluster-health check the health of the etcd cluster mk make a new key with a given value mkdir make a new directory rm remove a key or a directory rmdir removes the key if it is an empty directory or a key-value pair get retrieve the value of a key ls retrieve a directory set set the value of a key setdir create a new directory or update an existing directory TTL update update an existing key with a given value updatedir update an existing directory watch watch a key for changes exec-watch watch a key for changes and exec an executable member member add, remove and list subcommands user user add, grant and revoke subcommands role role add, grant and revoke subcommands auth overall auth controls help, h Shows a list of commands or help for one command GLOBAL OPTIONS: --debug output cURL commands which can be used to reproduce the request --no-sync don't synchronize cluster information before sending request --output simple, -o simple output response in the given format (simple, `extended` or `json`) (default: "simple") --discovery-srv value, -D value domain name to query for SRV records describing cluster endpoints --insecure-discovery accept insecure SRV records describing cluster endpoints --peers value, -C value DEPRECATED - "--endpoints" should be used instead --endpoint value DEPRECATED - "--endpoints" should be used instead --endpoints value a comma-delimited list of machine addresses in the cluster (default: "http://127.0.0.1:2379,http://127.0.0.1:4001") --cert-file value identify HTTPS client using this SSL certificate file --key-file value identify HTTPS client using this SSL key file --ca-file value verify certificates of HTTPS-enabled servers using this CA bundle --username value, -u value provide username[:password] and prompt if password is not supplied. --timeout value connection timeout per request (default: 2s) --total-timeout value timeout for the command execution (except watch) (default: 5s) --help, -h show help --version, -v print the version

etc安装和使用(etcd安装和使用)(4)

ETCDCTL_API=3

etc安装和使用(etcd安装和使用)(5)

[root@localhost etcd-v3.3.13-linux-amd64]# ETCDCTL_API=3 ./etcdctl NAME: etcdctl - A simple command line client for etcd3. USAGE: etcdctl VERSION: 3.3.13 API VERSION: 3.3 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 endpoint hashkv Prints the KV history hash for each endpoint in --endpoints move-leader Transfers leadership to another etcd cluster member. 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 list List all active leases 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 -d, --discovery-srv="" domain name to query for SRV records describing cluster endpoints --endpoints=[127.0.0.1:2379] gRPC endpoints -h, --help[=false] help for etcdctl --hex[=false] print byte strings as hex encoded strings --insecure-discovery[=true] accept insecure SRV records describing cluster endpoints --insecure-skip-tls-verify[=false] skip server certificate verification --insecure-transport[=true] disable transport security for client connections --keepalive-time=2s keepalive time for client connections --keepalive-timeout=6s keepalive timeout 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)

etc安装和使用(etcd安装和使用)(6)

get put简单操作

etc安装和使用(etcd安装和使用)(7)

[root@localhost etcd-v3.3.13-linux-amd64]# ETCDCTL_API=3 ./etcdctl put "name" "sunlong" OK [root@localhost etcd-v3.3.13-linux-amd64]# ETCDCTL_API=3 ./etcdctl delete "name" "sunlong" Error: unknown command "delete" for "etcdctl" Run 'etcdctl --help' for usage. Error: unknown command "delete" for "etcdctl" [root@localhost etcd-v3.3.13-linux-amd64]# ETCDCTL_API=3 ./etcdctl del "name" "sunlong" 1 [root@localhost etcd-v3.3.13-linux-amd64]#

etc安装和使用(etcd安装和使用)(8)

etc安装和使用(etcd安装和使用)(9)

[root@localhost etcd-v3.3.13-linux-amd64]# ETCDCTL_API=3 ./etcdctl get "name" name sunlong [root@localhost etcd-v3.3.13-linux-amd64]# ETCDCTL_API=3 ./etcdctl get "name" name sunlong [root@localhost etcd-v3.3.13-linux-amd64]# ETCDCTL_API=3 ./etcdctl get "name"

etc安装和使用(etcd安装和使用)(10)

[root@localhost etcd-v3.3.13-linux-amd64]# ETCDCTL_API=3 ./etcdctl get -h

etc安装和使用(etcd安装和使用)(11)

NAME: get - Gets the key or a range of keys USAGE: etcdctl get [options] <key> [range_end] OPTIONS: --consistency="l" Linearizable(l) or Serializable(s) --from-key[=false] Get keys that are greater than or equal to the given key using byte compare --keys-only[=false] Get only the keys --limit=0 Maximum number of results --order="" Order of results; ASCEND or DESCEND (ASCEND by default) --prefix[=false] Get keys with matching prefix --print-value-only[=false] Only write values when using the "simple" output format --rev=0 Specify the kv revision --sort-by="" Sort target; CREATE, KEY, MODIFY, VALUE, or VERSION GLOBAL 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 -d, --discovery-srv="" domain name to query for SRV records describing cluster endpoints --endpoints=[127.0.0.1:2379] gRPC endpoints --hex[=false] print byte strings as hex encoded strings --insecure-discovery[=true] accept insecure SRV records describing cluster endpoints --insecure-skip-tls-verify[=false] skip server certificate verification --insecure-transport[=true] disable transport security for client connections --keepalive-time=2s keepalive time for client connections --keepalive-timeout=6s keepalive timeout 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) [root@localhost etcd-v3.3.13-linux-amd64]#

etc安装和使用(etcd安装和使用)(12)

[root@localhost etcd-v3.3.13-linux-amd64]# ETCDCTL_API=3 ./etcdctl put "/cron/jobs/job1" "{...job1}" OK [root@localhost etcd-v3.3.13-linux-amd64]# ETCDCTL_API=3 ./etcdctl put "/cron/jobs/job2" "{...job2}" OK

[root@localhost etcd-v3.3.13-linux-amd64]# ETCDCTL_API=3 ./etcdctl get "/cron/jobs/" --prefix /cron/jobs/job1 {...job1} /cron/jobs/job2 {...job2}

ETCDCTL_API=3 ./etcdctl watch "/cron/jobs/" --prefix

[root@localhost etcd-v3.3.13-linux-amd64]# ETCDCTL_API=3 ./etcdctl put "/cron/jobs/job2" "{...job2...111}" OK [root@localhost etcd-v3.3.13-linux-amd64]# ETCDCTL_API=3 ./etcdctl del "/cron/jobs/job2" 1

etc安装和使用(etcd安装和使用)(13)

[root@localhost etcd-v3.3.13-linux-amd64]# ETCDCTL_API=3 ./etcdctl watch "/cron/jobs/" --prefix PUT /cron/jobs/job2 {...job2...111} DELETE /cron/jobs/job2

etc安装和使用(etcd安装和使用)(14)

,