docker_practice/etcd/install.md

96 lines
2.8 KiB
Go
Raw Normal View History

#
2014-12-31 17:11:09 +08:00
2019-08-31 22:57:43 +08:00
`etcd` `Go` [](https://github.com/etcd-io/etcd) 下载源代码自行编译,也可以下载编译好的二进制文件,甚至直接使用制作好的 `Docker` 镜像文件来体验。
2017-12-03 13:57:02 +08:00
2019-08-31 22:57:43 +08:00
> etcd `3.4.x`
2014-12-31 17:11:09 +08:00
##
2014-12-31 17:11:09 +08:00
2019-08-31 22:57:43 +08:00
[github.com/etcd-io/etcd/releases](https://github.com/etcd-io/etcd/releases/) 页面,用户可以选择需要的版本,或通过下载工具下载。
2014-12-31 17:11:09 +08:00
2017-12-03 13:57:02 +08:00
使 `curl`
2014-12-31 17:11:09 +08:00
2017-11-13 18:54:38 +08:00
```bash
2019-08-31 22:57:43 +08:00
$ curl -L https://github.com/etcd-io/etcd/releases/download/v3.4.0/etcd-v3.4.0-linux-amd64.tar.gz -o etcd-v3.4.0-linux-amd64.tar.gz
$ tar xzvf etcd-v3.4.0-linux-amd64.tar.gz
$ cd etcd-v3.4.0-linux-amd64
2014-12-31 17:11:09 +08:00
```
2017-12-03 13:57:02 +08:00
2017-11-13 18:54:38 +08:00
```bash
2014-12-31 17:11:09 +08:00
$ ls
2017-12-03 13:57:02 +08:00
Documentation README-etcdctl.md README.md READMEv2-etcdctl.md etcd etcdctl
2014-12-31 17:11:09 +08:00
```
2017-12-03 13:57:02 +08:00
`etcd` `etcdctl`
2014-12-31 17:11:09 +08:00
2017-12-03 13:57:02 +08:00
`etcd` `etcdctl` `/usr/local/bin/`
2014-12-31 17:11:09 +08:00
2017-11-13 18:54:38 +08:00
```bash
2014-12-31 17:11:09 +08:00
$ sudo cp etcd* /usr/local/bin/
```
2017-12-03 18:53:35 +08:00
`2379` `2380` `etcd`
2017-12-03 13:57:02 +08:00
2017-11-13 18:54:38 +08:00
```bash
2017-12-03 13:57:02 +08:00
$ etcd
2019-08-31 22:57:43 +08:00
...
2017-12-03 13:57:02 +08:00
2017-12-03 11:18:34.411579 I | embed: listening for peers on http://localhost:2380
2017-12-03 11:18:34.411938 I | embed: listening for client requests on localhost:2379
2014-12-31 17:11:09 +08:00
```
2017-12-03 18:53:35 +08:00
使 `etcdctl` `testkey: "hello world"` `etcd`
2017-12-03 13:57:02 +08:00
2017-11-13 18:54:38 +08:00
```bash
$ ETCDCTL_API=3 etcdctl member list
2017-12-03 13:57:02 +08:00
8e9e05c52164694d, started, default, http://localhost:2380, http://localhost:2379
$ ETCDCTL_API=3 etcdctl put testkey "hello world"
2017-12-03 13:57:02 +08:00
OK
$ etcdctl get testkey
testkey
2014-12-31 17:11:09 +08:00
hello world
```
2017-12-03 13:57:02 +08:00
2014-12-31 17:11:09 +08:00
etcd
## Docker
2017-12-03 13:57:02 +08:00
`quay.io/coreos/etcd` `etcd` `2379` `2380`
2017-11-13 18:54:38 +08:00
```bash
2019-08-31 22:57:43 +08:00
$ docker run \
-p 2379:2379 \
-p 2380:2380 \
--mount type=bind,source=/tmp/etcd-data.tmp,destination=/etcd-data \
--name etcd-gcr-v3.4.0 \
quay.io/coreos/etcd:v3.4.0 \
/usr/local/bin/etcd \
--name s1 \
--data-dir /etcd-data \
--listen-client-urls http://0.0.0.0:2379 \
--advertise-client-urls http://0.0.0.0:2379 \
--listen-peer-urls http://0.0.0.0:2380 \
--initial-advertise-peer-urls http://0.0.0.0:2380 \
--initial-cluster s1=http://0.0.0.0:2380 \
--initial-cluster-token tkn \
--initial-cluster-state new \
--log-level info \
--logger zap \
--log-outputs stderr
2014-12-31 17:11:09 +08:00
```
2017-12-03 18:53:35 +08:00
`etcd`
2017-12-03 13:57:02 +08:00
## macOS
2014-12-31 17:11:09 +08:00
2017-11-13 18:54:38 +08:00
```bash
2017-12-03 13:57:02 +08:00
$ brew install etcd
$ etcd
$ etcdctl member list
2014-12-31 17:11:09 +08:00
```