mirror of
https://github.com/yeasy/docker_practice.git
synced 2024-11-28 01:08:53 +00:00
Update etcd
This commit is contained in:
parent
10a9cf5687
commit
12ab87c248
@ -1,3 +1,3 @@
|
|||||||
# etcd
|
# etcd
|
||||||
|
|
||||||
etcd 是 CoreOS 团队发起的一个管理配置信息和服务发现(`Service Discovery`)的项目,在这一章里面,我们将基于 `etcd 3.x` 版本介绍该项目的目标,安装和使用,以及实现的技术。
|
`etcd` 是 `CoreOS` 团队发起的一个管理配置信息和服务发现(`Service Discovery`)的项目,在这一章里面,我们将基于 `etcd 3.x` 版本介绍该项目的目标,安装和使用,以及实现的技术。
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
## etcd 集群
|
## etcd 集群
|
||||||
|
|
||||||
下面我们使用 [Docker Compose](../compose/) 模拟启动一个 3 节点的 etcd 集群。
|
下面我们使用 [Docker Compose](../compose/) 模拟启动一个 3 节点的 `etcd` 集群。
|
||||||
|
|
||||||
编辑 `docker-compose.yml` 文件
|
编辑 `docker-compose.yml` 文件
|
||||||
|
|
||||||
@ -119,7 +119,7 @@ networks:
|
|||||||
subnet: 172.16.238.0/24
|
subnet: 172.16.238.0/24
|
||||||
```
|
```
|
||||||
|
|
||||||
使用 `docker exec` 命令登录到任一节点测试 etcd 集群。
|
使用 `docker-compose up` 启动集群之后使用 `docker exec` 命令登录到任一节点测试 `etcd` 集群。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
/ # etcdctl member list
|
/ # etcdctl member list
|
||||||
|
@ -129,7 +129,7 @@ $ etcdctl del testkey
|
|||||||
|
|
||||||
监测一个键值的变化,一旦键值发生更新,就会输出最新的值。
|
监测一个键值的变化,一旦键值发生更新,就会输出最新的值。
|
||||||
|
|
||||||
例如,用户更新 testkey 键值为 Hello world。
|
例如,用户更新 `testkey` 键值为 `Hello world`。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ etcdctl watch testkey
|
$ etcdctl watch testkey
|
||||||
@ -142,7 +142,7 @@ testkey
|
|||||||
|
|
||||||
通过 `list`、`add`、`update`、`remove` 命令列出、添加、更新、删除 etcd 实例到 etcd 集群中。
|
通过 `list`、`add`、`update`、`remove` 命令列出、添加、更新、删除 etcd 实例到 etcd 集群中。
|
||||||
|
|
||||||
例如本地启动一个 etcd 服务实例后,可以用如下命令进行查看。
|
例如本地启动一个 `etcd` 服务实例后,可以用如下命令进行查看。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ etcdctl member list
|
$ etcdctl member list
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
## 安装
|
## 安装
|
||||||
|
|
||||||
`etcd` 基于 Go 语言实现,因此,用户可以从 [项目主页](https://github.com/coreos/etcd) 下载源代码自行编译,也可以下载编译好的二进制文件,甚至直接使用制作好的 Docker 镜像文件来体验。
|
`etcd` 基于 `Go` 语言实现,因此,用户可以从 [项目主页](https://github.com/coreos/etcd) 下载源代码自行编译,也可以下载编译好的二进制文件,甚至直接使用制作好的 `Docker` 镜像文件来体验。
|
||||||
|
|
||||||
>注意:本章节内容基于 etcd `3.x` 版本
|
>注意:本章节内容基于 etcd `3.x` 版本
|
||||||
|
|
||||||
@ -31,7 +31,7 @@ Documentation README-etcdctl.md README.md READMEv2-etcdctl.md etcd etcdctl
|
|||||||
$ sudo cp etcd* /usr/local/bin/
|
$ sudo cp etcd* /usr/local/bin/
|
||||||
```
|
```
|
||||||
|
|
||||||
默认 `2379` 端口处理客户端的请求,`2380` 端口用于集群各成员间的通信。启动 etcd 显示类似如下的信息:
|
默认 `2379` 端口处理客户端的请求,`2380` 端口用于集群各成员间的通信。启动 `etcd` 显示类似如下的信息:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ etcd
|
$ etcd
|
||||||
@ -47,7 +47,7 @@ $ etcd
|
|||||||
2017-12-03 11:18:34.411938 I | embed: listening for client requests on localhost:2379
|
2017-12-03 11:18:34.411938 I | embed: listening for client requests on localhost:2379
|
||||||
```
|
```
|
||||||
|
|
||||||
此时,可以使用 `etcdctl` 命令进行测试,设置和获取键值 `testkey: "hello world"`,检查 etcd 服务是否启动成功:
|
此时,可以使用 `etcdctl` 命令进行测试,设置和获取键值 `testkey: "hello world"`,检查 `etcd` 服务是否启动成功:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ etcdctl member list
|
$ etcdctl member list
|
||||||
@ -84,7 +84,7 @@ $ docker run --name etcd \
|
|||||||
|
|
||||||
>注意:etcd 官方标注 `quay.io/coreos/etcd` 即将废弃,启用新的 `gcr.io/etcd-development/etcd` 镜像,但后者由于网络原因,国内不能下载到该镜像,这里仍然使用前者作为演示。
|
>注意:etcd 官方标注 `quay.io/coreos/etcd` 即将废弃,启用新的 `gcr.io/etcd-development/etcd` 镜像,但后者由于网络原因,国内不能下载到该镜像,这里仍然使用前者作为演示。
|
||||||
|
|
||||||
打开新的终端按照上一步的方法测试 etcd 是否成功启动。
|
打开新的终端按照上一步的方法测试 `etcd` 是否成功启动。
|
||||||
|
|
||||||
### macOS 中运行
|
### macOS 中运行
|
||||||
|
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
![](_images/etcd_logo.png)
|
![](_images/etcd_logo.png)
|
||||||
|
|
||||||
`etcd` 是 `CoreOS` 团队于 2013 年 6 月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库,基于 Go 语言实现。我们知道,在分布式系统中,各种服务的配置信息的管理分享,服务的发现是一个很基本同时也是很重要的问题。`CoreOS` 项目就希望基于 `etcd` 来解决这一问题。
|
`etcd` 是 `CoreOS` 团队于 2013 年 6 月发起的开源项目,它的目标是构建一个高可用的分布式键值(`key-value`)数据库,基于 `Go` 语言实现。我们知道,在分布式系统中,各种服务的配置信息的管理分享,服务的发现是一个很基本同时也是很重要的问题。`CoreOS` 项目就希望基于 `etcd` 来解决这一问题。
|
||||||
|
|
||||||
`etcd` 目前在 [github.com/coreos/etcd](https://github.com/coreos/etcd) 进行维护。
|
`etcd` 目前在 [github.com/coreos/etcd](https://github.com/coreos/etcd) 进行维护。
|
||||||
|
|
||||||
受到 [Apache ZooKeeper](http://zookeeper.apache.org/) 项目和 [doozer](https://github.com/ha/doozerd) 项目的启发,`etcd` 在设计的时候重点考虑了下面四个要素:
|
受到 [Apache ZooKeeper](http://zookeeper.apache.org/) 项目和 [doozer](https://github.com/ha/doozerd) 项目的启发,`etcd` 在设计的时候重点考虑了下面四个要素:
|
||||||
|
|
||||||
* 简单:支持 `REST` 风格的 `HTTP+JSON API`
|
* 简单:具有定义良好、面向用户的 `API` ([gRPC](https://github.com/grpc/grpc))
|
||||||
|
|
||||||
* 安全:支持 `HTTPS` 方式的访问
|
* 安全:支持 `HTTPS` 方式的访问
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user