原文地址:Setting up local clusters
設置單節點集群
對於測試環境與開發環境,最快速與簡單的方式是配置一個本地集群。對於生產環境,參考集群部分。
本地單節點集群
啟動一個集群
運行以下命令來部署一個單節點的etcd集群:
$ ./etcd
...
如果etcd
二進制文件不在當前工作目錄,那可能位於$GOPATH/bin/etcd
或者是/usr/local/bin/etcd
.合適地運行命令。
運行的etcd
成員在localhost:2379
監聽客戶端的請求。
與集群進行交互
使用etcdctl
與運行中的集群進行交互操作
1. 例子:在集群中存儲一個鍵值對:
$ ./etcdctl put foo bar
OK
如果OK
被打印在控制台,說明已經成功存儲Key-Value對。
2. 獲取鍵foo
對應的值:
$ ./etcdctl get foo
bar
如果bar
被返回,說明與etcd
集群的交互操作和期望中的相同。
本地多節點集群
啟動一個集群
在etcd
的git
倉庫中存在一個Procfile
文件提供一種簡單的方式可以對本地多節點集群進行配置。在啟動多節點集群之前,將工作目錄導向etcd
的根目錄並執行以下操作:
1. 安裝`goreman`控制基於`Procfile`的應用:
```
$ go get github.com/mattn/goreman
```
2. 使用 `etcd`的配置文件`Procfile`通過`goreman`啟動一個集群:
```
$ goreman -f Procfile start
```
集群成員已經啟動了,並在`localhost:2379`,localhost:22379`,localhost:32379`監聽客戶端的請求。
與集群進行交互
使用etcdctl
與運行中的集群進行交互操作:
1. 打印成員列表:
$ `etcdctl --write-out=table --endpoints=localhost:2379 member list`
`etcd`集群中的成員列表顯示如下:
ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS |
---|---|---|---|---|
8211f1d0f64f3269 | started | infra1 | http://127.0.0.1:2380 | http://127.0.0.1:2379 |
91bc3c398fb3c146 | started | infra1 | http://127.0.0.1:22380 | http://127.0.0.1:22379 |
fd422379fda50e48 | started | infra1 | http://127.0.0.1:32380 | http://127.0.0.1:32379 |
2. 例子:在集群中存儲一個Key-Value對:
$ ./etcdctl put foo bar
OK
如果OK
被打印在控制台,說明已經成功存儲鍵-值對。
容錯測試
關閉一個成員然后嘗試通過鍵獲取值來進行容錯測試:
- 獲取一個運行中的成員的名字然后停止它:
Procfile
列出了多節點集群的屬性信息。例如,名稱為etcd2
的運行中的成員。 - 停止該成員:
#kill etcd2
$ goreman run stop etcd2
3.存儲一個鍵:
$ etcdctl put key hello
OK
4.獲取前一步所存儲的鍵:
$ etcdctl get key
hello
5.從已經停止的成員處獲取鍵:
$ etcdctl --endpoints=localhost:22379 get key
該命令應該由於連接失敗展示一個錯誤:
2017/06/18 23:07:35 grpc: Conn.resetTransport failed to create client transport: connection error: desc = "transport: dial tcp 127.0.0.1:22379: getsockopt: connection refused"; Reconnecting to "localhost:22379"
Error: grpc: timed out trying to connect
6.重啟停止的成員:
$ goreman run restart etcd2
7.從重啟的成員處獲取鍵:
$ etcdctl --endpoints=localhost:22379 get key
hello
重啟的成員重新建立了連接.etcdctl
將能夠成功地從重啟的成員處接受鍵,讀與etcd進行交互部分學習更多關於與etcd交互的內容。