ETCD:單機單節點


原文地址: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集群的交互操作和期望中的相同。

本地多節點集群

啟動一個集群

etcdgit倉庫中存在一個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被打印在控制台,說明已經成功存儲鍵-值對。

容錯測試

關閉一個成員然后嘗試通過鍵獲取值來進行容錯測試:

  1. 獲取一個運行中的成員的名字然后停止它:
    Procfile列出了多節點集群的屬性信息。例如,名稱為etcd2的運行中的成員。
  2. 停止該成員:
#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交互的內容。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM