docker部署etcd
$ docker run -d --name etcd-server -p 2379:2379 -p 2380:2380 quay.io/coreos/etcd:v3.5.0 /usr/local/bin/etcd -name my-etcd-1 -advertise-client-urls http://0.0.0.0:2379 -listen-client-urls http://0.0.0.0:2379 -initial-advertise-peer-urls http://0.0.0.0:2380 -listen-peer-urls http://0.0.0.0:2380 -initial-cluster my-etcd-1=http://0.0.0.0:2380
Unable to find image 'quay.io/coreos/etcd:v3.5.0' locally
v3.5.0: Pulling from coreos/etcd
6022c6b01d76: Pull complete
1d97b1ec77fc: Pull complete
99ef4b690837: Pull complete
435b7bf0967c: Pull complete
17e4a5f7c1b5: Pull complete
5b0292999756: Pull complete
Digest: sha256:28759af54acd6924b2191dc1a1d096e2fa2e219717a21b9d8edf89717db3631b
Status: Downloaded newer image for quay.io/coreos/etcd:v3.5.0
ddcbe3db8e832a366d37a75f15ed35618e82928e79d31fe9e33f39627e97c114
验证 etcd 服务
可以使用 etcdctl
命令行工具验证 etcd 服务是否正常工作。
在主机上安装 etcdctl,安装方式如下:
macos:
$ brew install etcd
其他系统:
-
访问etcd的GitHub发布页面(https://github.com/etcd-io/etcd/releases)来找到你想要的版本。
-
下载对应版本的etcdctl二进制文件。
-
将下载的文件移动到你的
PATH
中的一个目录,例如/usr/local/bin
。下载etcdctl,替换<version>为实际版本号
$ curl -L https://github.com/etcd-io/etcd/releases/download/v{version}/etcd-v{version}-darwin-amd64.tar.gz -o etcd-v{version}-darwin-amd64.tar.gz
解压缩
$ tar xzvf etcd-v{version}-darwin-amd64.tar.gz
将etcdctl移动到/usr/local/bin目录
$ sudo mv etcd-v{version}-darwin-amd64/etcdctl /usr/local/bin/
替换<version>为你想要安装的etcdctl版本。
验证:
$ etcdctl --endpoints=http://localhost:2379 endpoint health --write-out="json"
如果返回 {"endpoint":"http://localhost:2379","health":"true"}
,表示 etcd 服务运行正常。
常用使用命令
-
存储键值对:
etcdctl --endpoints=http://localhost:2379 put mykey "myvalue"
-
读取键值对:
etcdctl --endpoints=http://localhost:2379 get mykey
-
列出所有键值对:
etcdctl --endpoints=http://localhost:2379 get --prefix ""
-
删除键值对:
etcdctl --endpoints=http://localhost:2379 del mykey
-
查看 etcd 集群状态:
etcdctl --endpoints=http://localhost:2379 endpoint status
-
备份 etcd 数据:
etcdctl --endpoints=http://localhost:2379 snapshot save backup.db
-
恢复 etcd 数据:
etcdctl snapshot restore backup.db --data-dir /path/to/etcd/data-dir