etcd集群搭建

本文摘自:http://blog.csdn.net/tzm1921995/article/details/52212168

對于通過apt或yum方式安裝etcd的,可以修改etcd.conf配置文件來配置各個參數。


Etcd集群簡介

etcd組件作為一個高可用強一致性的服務發現存儲倉庫。我們此次在三個主機上搭建了一個包含三個Etcd節點的集群,實現了集群的動態擴展和收縮,并測試和驗證了Etcd集群鍵——值存儲的一致性和高

一、環境準備

OS: Ubuntu 14.04

user: root

ipaddress:?

etcd01: 192.168.200.24

etcd02: 192.168.200.25

etcd03: 192.168.200.26

下載etcd 源碼包:https://github.com/coreos/etcd/releases/

這里用的是etcd-v2.3.7-Linux-amd64.tar.gz

二、安裝配置etcd

etcd01上安裝

tar xf etcd-v2.3.7-linux-amd64.tar.gz

cd?etcd-v2.3.7-linux-amd64

cp etcd* /usr/local/bin/

創建etcd01腳本,可方便配置etcd啟動參數

#cat etcd01

/usr/local/bin/etcd??-name?etcd01?\

-data-dir?/data/etcd01?\

-advertise-client-urls?http://192.168.200.24:2379,http://192.168.200.24:4001??\

-listen-client-urls??http://0.0.0.0:2379,http://192.168.200.24:4001?\

-initial-advertise-peer-urls?http://192.168.200.24:2380 \

-listen-peer-urls?http://0.0.0.0:2380?\

-initial-cluster-token?etcd-cluster-1?\

-initial-cluster?etcd01=http://192.168.200.24:2380,etcd02=http://192.168.200.25:2380,etcd03=http://192.168.200.26:2380?\

-initial-cluster-state?new

參數說明:-name 指定名字

-data-dir 指定數據保存目錄,默認是當前目錄

-initial-cluster-state 集群狀態 new為新創建集群 existing為已存在(可不指定)

在etcd02 etcd03上分別做相似操作

腳本中-advertise-client-urls 和 -initial-advertis-peer-urls 參數修改一下即可

然后分別運行腳本:nohup ./etcd01 &

三、測試

在任一臺主機上執行etcdctl member list

#etcdctl member list

6a223770249e927d:?name=etcd02?peerURLs=http://192.168.200.25:2380?clientURLs=http://192.168.200.25:2379,http://192.168.200.25:4001?isLeader=false

7e0ce16121dfea24:?name=etcd01?peerURLs=http://192.168.200.24:2380?clientURLs=http://192.168.200.24:2379,http://192.168.200.24:4001?isLeader=true

bfc28be8765b503e: name=etcd03 peerURLs=http://192.168.200.26:2380 clientURLs=http://192.168.200.26:2379,http://192.168.200.26:4001 isLeader=false

可以看到集群的節點情況,并能看出哪個是leader節點

我們在etcd01上設置一個key/value

root@etcd1:~# etcdctl set api_server http://192.168.5.44:8080

http://192.168.5.44:8080

這時就可以在任意一臺主機上獲取這個key/value

root@etcd2:~# etcdctl get api_server

http://192.168.5.44:8080

root@etcd3:~#?etcdctl?get?api_server

http://192.168.5.44:8080

在member list上看到etcd01是leader ,這時把etcd01停掉(kill)

用etcdctl cluster-health查看

root@etcd2:~# etcdctl cluster-health

member?6a223770249e927d?is?healthy:?got?healthy?result?from?http://192.168.200.25:2379

failed?to?check?the?health?of?member?7e0ce16121dfea24?on?http://192.168.200.24:2379:?Get?http://192.168.200.24:2379/health:?dial?tcp?192.168.200.24:2379:?getsockopt:?connection?refused

failed?to?check?the?health?of?member?7e0ce16121dfea24?on?http://192.168.200.24:4001:?Get?http://192.168.200.24:4001/health:?dial?tcp?192.168.200.24:4001:?getsockopt:?connection?refused

member?7e0ce16121dfea24?is?unreachable:?[http://192.168.200.24:2379?http://192.168.200.24:4001]?are?all?unreachable

member?bfc28be8765b503e?is?healthy:?got?healthy?result?from?http://192.168.200.26:2379

cluster?is?healthy

并且集群leader進行了重新選舉

root@etcd2:~# etcdctl member list

6a223770249e927d:?name=etcd02?peerURLs=http://192.168.200.25:2380?clientURLs=http://192.168.200.25:2379,http://192.168.200.25:4001?isLeader=true

7e0ce16121dfea24:?name=etcd01?peerURLs=http://192.168.200.24:2380?clientURLs=http://192.168.200.24:2379,http://192.168.200.24:4001?isLeader=false

bfc28be8765b503e: name=etcd03 peerURLs=http://192.168.200.26:2380 clientURLs=http://192.168.200.26:2379,http://192.168.200.26:4001 isLeader=false

現在etcd02是leader了,這時我們在群集中設置兩個key/value

root@etcd2:~# etcdctl set test01 123456

123456

root@etcd2:~#?etcdctl?set?test02?abcdefg

abcdefg

重新啟動etcd01

root@etcd1:~# etcdctl cluster-health

member?6a223770249e927d?is?healthy:?got?healthy?result?from?http://192.168.200.25:2379

member?7e0ce16121dfea24?is?healthy:?got?healthy?result?from?http://192.168.200.24:2379

member?bfc28be8765b503e?is?healthy:?got?healthy?result?from?http://192.168.200.26:2379

cluster?is?healthy

root@etcd1:~# etcdctl get test01

123456

root@etcd1:~#?etcdctl?get?test02

abcdefg

但這時在etcd01重新加入集群,并保持了key/value的全局一致性,由此可見 etcd 搭建的集群是可以實現高可用的。

Etcd集群的擴展與收縮

etcd集群如果收縮很簡單,直接在命令行輸入

etcdctl member remove {$memberID}

$memberID是你即將要刪除節點的etcd的ID,etcd的擴展有一些地方需要注意一下,我在這里操作的時候遇到了不少坑。從上文寫到現在,有一個文件夾很重要,幾乎每個坑都與它有關,那就是-data-dir所聲明的文件夾,注意要擴展一個etcd集群時,首先在集群內的任一臺機器上輸入

etcdctl member add $etcd_name $peer_url

$etcd_name:新加入的etcd節點的名字

$peer_url:一般為新加入的節點?IP:2380

下面為通過yum方式安裝后,/etc/etcd/etcd.conf配置文件的參考實例:


# 節點名稱

ETCD_NAME=etcd0

# # 數據存放位置

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"

# # 監聽其他 Etcd 實例的地址

ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"

# # 監聽客戶端地址

ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"

# # 通知其他 Etcd 實例地址

ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.212.140:2380"

# # 初始化集群內節點地址

ETCD_INITIAL_CLUSTER="etcd0=http://192.168.212.140:2380,etcd1=http://192.168.212.139:2380,etcd2=http://192.168.212.138:2380"

# # 初始化集群狀態,new 表示新建

ETCD_INITIAL_CLUSTER_STATE="new"

# # 初始化集群 token

ETCD_INITIAL_CLUSTER_TOKEN="mritd-etcd-cluster"

# # 通知 客戶端地址

ETCD_ADVERTISE_CLIENT_URLS="http://192.168.212.140:2379,http://192.168.212.140:4001"

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,797評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,179評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,628評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,642評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,444評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,948評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,040評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,185評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,717評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,602評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,794評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,045評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,418評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,671評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,414評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,750評論 2 370

推薦閱讀更多精彩內容