Linux搭建etcd集群

目錄

一湿滓、etcd 安裝

二、單節(jié)點(diǎn)etcd

三舌狗、部署etcd群集

四叽奥、群集搭建需注意的幾點(diǎn)

五、etcd web管理工具etcdkeeper

一把夸、etcd 安裝
1而线、下載安裝包

https://github.com/etcd-io/etcd/releases選擇自己需要的版本,我用的是3.3.18這個(gè)版本 ,可以用wget命令下載

wget https://github.com/etcd-io/etcd/releases/download/v3.3.18/etcd-v3.3.18-linux-amd64.tar.gz
2膀篮、解壓嘹狞、重命名

tar -zxvf etcd-v3.3.18-linux-amd64.tar.gz /usr/local/etcd
cd /usr/local/etcd
mv etcd-v3.3.18-linux-amd64 etcd-v3.3.18
3、進(jìn)入主目錄誓竿,查看文件

cd etcd-v3.3.18
ls

主要有兩個(gè)文件etcd和etcdctl,etcd用于啟動(dòng)服務(wù)磅网,etcdctl屬于客戶端命令行工具

4、查看etcd版本

./etcdctl --version

可以看到api默認(rèn)版本是V2筷屡,如果要切換到V3版本需要修改環(huán)境變量涧偷,將ETCDCTL_API設(shè)為3,

vim /etc/profile

使配置文件生效

source /etc/profile
再次查看版本毙死,可以看到已經(jīng)切換到V3了燎潮,注意:V2和V3的命令有所不同,查看版本不能再用--version

./etcdctl version

5扼倘、將etcd和etcdctl復(fù)制到/usr/local/bin中确封,方便在任何目錄下直接用調(diào)用

cp etcd etcdctl /usr/local/bin/
二、單節(jié)點(diǎn)etcd
1再菊、單節(jié)點(diǎn)啟動(dòng)etcd

etcd

默認(rèn)用2379端口接受客戶端請求爪喘,數(shù)據(jù)存儲(chǔ)路默認(rèn)為主目錄下的default.etcd,當(dāng)然我們可以自定義端口和路徑纠拔,可以直接在命令中指定秉剑,也可以定義在配置文件中,啟動(dòng)命令時(shí)執(zhí)行配置文件即可

a稠诲、指定參數(shù)啟動(dòng)

etcd --listen-client-urls "http://0.0.0.0:2381" --advertise-client-urls "http://0.0.0.0:2381" --data-dir "/var/lib/etcd/data"
b侦鹏、指定配置文件啟動(dòng)

etcd --config-file=/etc/etcd/etcd.conf

查看成員列表,注意:如果客戶端請求端口設(shè)置在非2379上吕粹,需要指定endpoints參數(shù)种柑,因?yàn)槟J(rèn)請求下查看的是2379端口下成員狀態(tài)

etcdctl --endpoints=http://127.0.0.1:2381 member list --write-out=table

可以看到服務(wù)已經(jīng)正常開啟

注意:如果指定了listen-client-urls,則必須同時(shí)指定advertise-client-urls匹耕,否則會(huì)報(bào)錯(cuò)

三、部署etcd群集
群集由三臺(tái)云ecs組成荠雕,分別為:

ecs1:49.111.111.111(公),172.17.0.15(私)

ecs2:47.111.11.111(公),72.16.178.96(私)

ecs3:101.111.111.111(公),192.168.1.14(私)

考慮到安全稳其,以上公網(wǎng)ip在真實(shí)ip的基礎(chǔ)上對后三個(gè)ip段做了更改

1、三臺(tái)機(jī)器配置

第一臺(tái)機(jī)器ecs1

a炸卑、/etc目錄下新建etcd目錄既鞠,再新建etcd.conf文件

vim /etc/etcd/etcd.conf
ETCD_NAME="etcd-1"
ETCD_DATA_DIR="/var/lib/etcd/data"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://49.111.111.111:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://172.17.0.15:2379,http://localhost:2379"
ETCD_INITIAL_CLUSTER="etcd-1=http://49.111.111.111:2380,etcd-2=http://47.111.111.111:2380,etcd-3=http://101.111.111.111:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-token"
ETCD_INITIAL_CLUSTER_STATE="new"
b、etcd配置為后臺(tái)服務(wù)配置文件:在/etc/systemd/system目錄下新建etcd.service文件

vim /etc/systemd/system/etcd.service
[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
Type=notify
WorkingDirectory=/var/lib/etcd/
EnvironmentFile=-/etc/etcd/etcd.conf
User=root

set GOMAXPROCS to number of processors

ExecStart=/usr/bin/etcd
--name={ETCD_NAME} \ --data-dir={ETCD_DATA_DIR}
--listen-client-urls={ETCD_LISTEN_CLIENT_URLS} \ --listen-peer-urls={ETCD_LISTEN_PEER_URLS}
--advertise-client-urls={ETCD_ADVERTISE_CLIENT_URLS} \ --initial-cluster-token={ETCD_INITIAL_CLUSTER_TOKEN}
--initial-advertise-peer-urls={ETCD_INITIAL_ADVERTISE_PEER_URLS} \ --initial-cluster-state={ETCD_INITIAL_CLUSTER_STATE}
--initial-cluster=${ETCD_INITIAL_CLUSTER}

Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
這種方式是在ExecStart命令中指定etcd參數(shù)盖文,參數(shù)值是變量嘱蛋,來源于上面EnvironmentFile指定的/etc/etcd/etcd.conf文件,也可以指定配置文件ExecStart=/usr/bin/etcd --config-file=/etc/etcd/etcd.conf,不過此時(shí)的配置內(nèi)容格式必須是yaml或json格式,跟上面單機(jī)運(yùn)行etcd時(shí)格式一樣洒敏,如下:

name: "etcd-1"
data-dir: "/var/lib/etcd/data"
listen-client-urls: "http://0.0.0.0:2379"
listen-peer-urls: "http://0.0.0.0:2380"
initial-advertise-peer-urls: "http://49.234.197.50:2380"
advertise-client-urls: "http://172.17.0.15:2379,http://localhost:2379"
initial-cluster: "etcd-1=http://49.234.197.50:2380,etcd-2=http://47.96.100.241:2380,etcd-3=http://101.91.206.223:2380"
initial-cluster-token: "etcd-cluster-token"
initial-cluster-state: "new"
否則會(huì)報(bào)配置文件格式不正確的錯(cuò)龄恋。個(gè)人推薦使用指定配置文件的方式,方便配置集中管理凶伙,且減少了ExecStart命令的代碼行數(shù)郭毕,簡單明了

c、創(chuàng)建systemd的工作目錄WorkingDirectory "/var/lib/etcd/" 和etcd的數(shù)據(jù)存儲(chǔ)目錄data-dir "/var/lib/etcd/data",記得賦予目錄操作權(quán)限

mkdir -m 777 /var/lib/etcd
mkdir -m 777 /var/lib/etcd/data

第二臺(tái)機(jī)器ecs2

a函荣、etcd配置文件:/etc目錄下新建etcd目錄显押,再新建etcd.conf文件

vim /etc/etcd/etcd.conf
ETCD_NAME="etcd-2"
ETCD_DATA_DIR="/var/lib/etcd/data"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://47.111.111.111:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://172.16.178.96:2379,http://localhost:2379"
ETCD_INITIAL_CLUSTER="etcd-1=http://49.111.111.111:2380,etcd-2=http://47.111.111.111:2380,etcd-3=http://101.111.111.111:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-token"
ETCD_INITIAL_CLUSTER_STATE="new"
b、etcd設(shè)置為后臺(tái)服務(wù)配置文件:同ecs1

c傻挂、同ecs1

第三臺(tái)機(jī)器ecs3

etcd配置文件:/etc目錄下新建etcd目錄乘碑,再新建etcd.conf文件

vim /etc/etcd/etcd.conf
ETCD_NAME="etcd-3"
ETCD_DATA_DIR="/var/lib/etcd/data"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://101.111.111.111:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.1.14:2379,http://localhost:2379"
ETCD_INITIAL_CLUSTER="etcd-1=http://49.111.111.111:2380,etcd-2=http://47.111.111.111:2380,etcd-3=http://101.111.111.111:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-token"
ETCD_INITIAL_CLUSTER_STATE="new"
b、etcd配置為后臺(tái)服務(wù)配置文件:同ecs1

c金拒、同ecs1

2蝉仇、逐個(gè)在三臺(tái)機(jī)器上執(zhí)行如下命令,啟動(dòng)etcd服務(wù)

systemctl daemon-reload --使etcd.service文件修改生效
systemctl enable etcd
systemctl start etcd --啟動(dòng)etcd服務(wù)
3殖蚕、查看服務(wù)狀態(tài)

systemctl status etcd

可以看到etcd服務(wù)處于active狀態(tài)轿衔,啟動(dòng)成功

我們還可以用journalctl -xe查看etcd運(yùn)行日志,有問題時(shí)通過日志查找問題

journalctl -xe
4睦疫、查看成員信息

etcdctl member list --write-out=table

5害驹、查看群集狀態(tài)

etcdctl --endpoints=http://127.0.0.1:2379,http://47.111.1111.111:2379,http://101.111.111.111:2379 endpoint status --write-out=table

可以看到ecs1機(jī)器是leader,其他兩臺(tái)為follower,群集成功運(yùn)行

另外執(zhí)行etcdctl命令如果加上--write-out=table表示以表格的形式輸出結(jié)果,有title蛤育,方便看數(shù)據(jù)宛官。

四、群集搭建需注意的幾點(diǎn)
1瓦糕、--listen-client-urls用于監(jiān)聽客戶端消息,必須設(shè)置為真實(shí)ip地址底洗,如果機(jī)器為云主機(jī),可以設(shè)置為云主機(jī)的私有ip地址或0.0.0.0(代表監(jiān)聽所有地址),不能設(shè)置為公網(wǎng)ip地址咕娄,因?yàn)樵浦鳈C(jī)的公網(wǎng)ip是虛擬的亥揖,如果設(shè)置為公網(wǎng)ip會(huì)報(bào)“bind: cannot assign requested address”的錯(cuò)

2、--listen-peer-urls用于監(jiān)聽其他member發(fā)送過來的消息圣勒,跟listen-client-urls一樣费变,必須設(shè)置為真實(shí)ip地址,如果機(jī)器為云主機(jī),不能設(shè)置為公網(wǎng)ip

3、--initial-advertise-peer-urls用于監(jiān)聽其他member同步信號圣贸,該地址其他member必須能直接訪問挚歧,所以如果是云主機(jī)該地址必須設(shè)置為云主機(jī)的公網(wǎng)ip地址

4、--initial-cluster群集列表吁峻,該列表中的值必須跟各個(gè)member的initial-advertise-peer-urls值一樣
————————————————
版權(quán)聲明:本文為CSDN博主「peachesTao」的原創(chuàng)文章滑负,遵循CC 4.0 BY-SA版權(quán)協(xié)議在张,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/taoerchun/article/details/104446800

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末矮慕,一起剝皮案震驚了整個(gè)濱河市帮匾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌凡傅,老刑警劉巖辟狈,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異夏跷,居然都是意外死亡哼转,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進(jìn)店門槽华,熙熙樓的掌柜王于貴愁眉苦臉地迎上來壹蔓,“玉大人,你說我怎么就攤上這事猫态∮度兀” “怎么了?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵亲雪,是天一觀的道長勇凭。 經(jīng)常有香客問我,道長义辕,這世上最難降的妖魔是什么虾标? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮灌砖,結(jié)果婚禮上璧函,老公的妹妹穿的比我還像新娘。我一直安慰自己基显,他們只是感情好蘸吓,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著撩幽,像睡著了一般库继。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上摸航,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天制跟,我揣著相機(jī)與錄音,去河邊找鬼酱虎。 笑死,一個(gè)胖子當(dāng)著我的面吹牛擂涛,可吹牛的內(nèi)容都是我干的读串。 我是一名探鬼主播聊记,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼恢暖!你這毒婦竟也來了排监?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤杰捂,失蹤者是張志新(化名)和其女友劉穎舆床,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嫁佳,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡挨队,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蒿往。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盛垦。...
    茶點(diǎn)故事閱讀 38,626評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖瓤漏,靈堂內(nèi)的尸體忽然破棺而出腾夯,到底是詐尸還是另有隱情,我是刑警寧澤蔬充,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布蝶俱,位于F島的核電站,受9級特大地震影響饥漫,放射性物質(zhì)發(fā)生泄漏榨呆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一趾浅、第九天 我趴在偏房一處隱蔽的房頂上張望愕提。 院中可真熱鬧,春花似錦皿哨、人聲如沸浅侨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽如输。三九已至,卻和暖如春央勒,著一層夾襖步出監(jiān)牢的瞬間不见,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工崔步, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留稳吮,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓井濒,卻偏偏與公主長得像灶似,于是被迫代替她去往敵國和親列林。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容